0
我在ActionScript中加載一個SWF文件。到目前爲止沒有問題,但我沒有找到一種方法來訪問它的一個函數,最好的情況是,如果我可以訪問swf的mxml部分中的主函數。Flex 3(動作腳本):如何從加載的SWF文件訪問功能?
這裏是主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語句 「如果(swfApp.hasOwnProperty(」 initApp「)) {「永遠不會是真的,並且調用」swfApp.initApp()「表示該函數不存在。
在原始版本中,我爲HTTPStatusEvent.HTTP_STATUS,IOErrorEvent.IO_ERROR和SecurityErrorEvent.SECURITY_ERROR添加了事件偵聽器。但是除了HTTP_STATUS = 0之外,它們都不會被調用。
我是如何嘗試做這個錯誤的整個想法?