ActionScript に swf ファイルをロードします。これまでのところ問題はありませんが、関数の 1 つにアクセスする方法が見つかりませんでした。swf の mxml 部分でメイン関数にアクセスできれば最善です。
別の swf をロードしてアクセスする必要がある swf に属する main-mxml ファイルのコードを次に示します。
<?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 を除いて、それらのどれも呼び出されません。
私がこれを間違ってやろうとする方法の全体的な考えはありますか?