在 swf 加载完成后将数据传递给子 swf
pass data to child swf after swf loading completed
我正在使用 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";
}
有2个选项。
如果您只需要简单的启动值,您可以在加载程序字符串中传递参数,让 TestFile2 在启动时获取它们。
new URLRequest("/view/flex/TestFile2.swf?param1=val1")
如果需要与子交互,需要在application complete事件后抓取对它的引用。 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";
}
我正在使用 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";
}
有2个选项。
如果您只需要简单的启动值,您可以在加载程序字符串中传递参数,让 TestFile2 在启动时获取它们。
new URLRequest("/view/flex/TestFile2.swf?param1=val1")
如果需要与子交互,需要在application complete事件后抓取对它的引用。
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"; }