Je charge en ActionScript un fichier swf. Jusqu'à présent, aucun problème, mais je n'ai pas trouvé un moyen d'accéder à l'une de ses fonctions, la meilleure chose serait si je pouvais accéder à la fonction principale dans la partie mxml du swf.Flex 3 (Action Script): Comment accéder à une fonction à partir d'un fichier swf chargé?
Voici le code du fichier principal MXML qui appartient à la swf qui doit charger et accéder à un autre swf:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="basket();">
<mx:Script>
<![CDATA[
import mx.controls.SWFLoader;
private function basket(): void
{
var swfLoader: SWFLoader = new SWFLoader();
swfLoader.addEventListener(Event.COMPLETE, handleSWFLoaded);
try {
swfLoader.load("../../data/InternalSWF.swf");
} catch (error: Error) {
trace("Couldn't load file !");
}
}
private function handleSWFLoaded(event: Event): void
{
var swfApp:* = event.target.content;
// This both ways don't work...
//if (swfApp.hasOwnProperty("initApp")) {
// var initApp:Function = (swfApp["initApp"] as Function);
// initApp();
//}
// swfApp.initApp();
}
]]>
</mx:Script>
<mx:Text id="output" width="100%" textAlign="center" />
</mx:Application>
Le if "if (swfApp.hasOwnProperty (" initApp ")) {"n'est jamais vrai et l'appel" swfApp.initApp() "indique que cette fonction n'existe pas.
Dans la version originale, j'ai ajouté des écouteurs d'événement pour HTTPStatusEvent.HTTP_STATUS, IOErrorEvent.IO_ERROR et SecurityErrorEvent.SECURITY_ERROR. Mais à l'exception de HTTP_STATUS = 0, aucun d'entre eux n'est appelé.
Est-ce que l'idée est de savoir comment j'essaye de faire ça?