我正在使用swfloader在主swf中加载一个swf文件,我想将参数传递给加载的swf。如何获取加载的子引用以传递数据。 我的示例代码如下
TestFile1.mxml
public var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, myFun);
loader.load(new URLRequest("/view/flex/TestFile2.swf"), new LoaderContext(false, ApplicationDomain.currentDomain));
viewId.addChild(loader);
public function myFun(event:Event):void{
Alert.show("loader.content-"+loader.content); // here alert coming like this [object_TestFile2_mx_managers_SystemManager]
var testfile2:TestFile2 = loader.content as TestFile2; // here testfile2 is null
testfile2.param1 = "val1";
}
答案 0 :(得分:0)
有两种选择。
如果您只需要简单的启动值,则可以在加载器字符串中传递参数,并让TestFile2在启动时抓取它们。
新的URLRequest(" /view/flex/TestFile2.swf?param1 = val1")
如果您需要与孩子互动,则需要在应用完成事件后获取对它的引用。 Event.COMPLETE
仅在加载加载器时触发。在Event.COMPLETE
事件中,在内容准备就绪时添加要触发的事件。
public function myFun(event:Event):void{
Alert.show("loader.content-"+loader.content); // here alert coming like this [object_TestFile2_mx_managers_SystemManager]
loader.content.addEventListener(FlexEvent.APPLICATION_COMPLETE, appCreationComplete);
}
private function appCreationComplete(event:FlexEvent):void
{
var testfile2:TestFile2 = loader.content["application"] as TestFile2; // here testfile2 is not null
testfile2.param1 = "val1";
}