PDA

Volledige versie bekijken : functies van een API aanroepen vanuit ingeladen SWF


robinthehood
%Europe/Berlin %432 %2009, 10:22
Hoi allemaal,

Ik loop al een tijdje met dit probleem rond en hoop dat jullie me hiermee verder kunnen helpen. Samen met 3 andere studenten ben ik bezig met het maken van een multi-touch tafel. Om voor andere studenten ook de mogelijkheid te bieden om applicaties voor de tafel te maken hadden we het idee om een framework/applicatie op te zetten in Flash waarmee je SWFjes kan inladen in de tafel.
In deze applicatie worden alle benodigden componenten en API's ingeladen die de applicatie nodig heeft om met de hardware van de tafel te communiceren (dit is een AIR-app in Cairngorm maar heeft voor mijn vraag niet veel van doen)

Nou is mijn vraag hoe ik het voor elkaar krijg om SWFjes die in de app worden geladen te laten communiceren met de door de app ingeladen API's en componenten?

jaspermuts
%Europe/Berlin %928 %2009, 22:16
De swf's van anderen die je inlaadt, kun je zien als een Sprite of MovieClip, dus de public methods die de (document class van de) swf heeft, kun je aanroepen binnen je app. Aangezien jouw app eerder is ontwikkeld dan de in te laden swf kun je niet weten welke public methods de swf heeft (op die van Sprite na dan).
Maar als jij zelf bepaalt welke methodes een swf moet/mag hebben kan dat wel.
Je kunt bijvoorbeeld eisen dat elke swf een start(), run() en/of quit() methode heeft.
Je zou hierbij ook methodes kunnen maken die argumenten verwachten die vanuit jouw app komen.
Om dat nog vaster te leggen kun je een interface maken waarin je definieert welke methodes er geimplementeerd moeten worden en eisen dat elke swf deze interface implementeert.

Ik denk wel dat je er niet eenvoudig onderuit komt om je eigen classes te delen als je de swf's methodes uit jouw classes wil laten kunnen aanroepen, want de 'derden' moeten toch kunnen ontwikkelen, dus zul je er denk ik altijd wel je classes als mapje of als swc moeten delen.

nuvorm
%Europe/Berlin %420 %2009, 10:05
je kunt een event dispatchen vanuit de ingeladen swf, je hangt dan in de clip die de movie laadt een eventlistener aan het ingeladen object.

robinthehood
%Europe/Berlin %433 %2009, 10:24
Hmm als ik t inderdaad zo bekijk kom ik er niet onderuit om mijn eigen classes te moeten gaan schrijfen. Het gebruiken van een interface is daarbij inderdaad een goed idee.