Я загружаю в ActionScript SWF-файл. Пока проблем нет, но я не нашел способа получить доступ к одной из ее функций, лучше всего было бы, если бы я мог получить доступ к основной функции в части mxml swf.
Вот код файла main-mxml, который принадлежит SWF, который должен загрузить и получить доступ к другому 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>
Оператор if "if (swfApp.hasOwnProperty (" initApp ")) {" никогда не выполняется и
вызов swfApp.initApp () говорит, что эта функция не существует.
В оригинальной версии я добавил прослушиватели событий для HTTPStatusEvent.HTTP_STATUS, IOErrorEvent.IO_ERROR и SecurityErrorEvent.SECURITY_ERROR. Но кроме HTTP_STATUS = 0 ни один из них не вызывается.
Вся идея, как я пытаюсь сделать это неправильно?