我有一个SWF文件sample.swf,它的动作类在Main.as.这Main.as有各种对象声明为公共的。例如,让我们考虑一个类MyData的对象myData(在MyData.as中)。如何在我的Flex应用程序的swfLoader中加载的swf文件中调用actionscript函数?
我正在使用swfLoader在我的AIR应用程序中加载此swf文件。我想知道如何使用swfLoader.loaderInfo.content访问myData.func()。
在此先感谢... :)
我有一个SWF文件sample.swf,它的动作类在Main.as.这Main.as有各种对象声明为公共的。例如,让我们考虑一个类MyData的对象myData(在MyData.as中)。如何在我的Flex应用程序的swfLoader中加载的swf文件中调用actionscript函数?
我正在使用swfLoader在我的AIR应用程序中加载此swf文件。我想知道如何使用swfLoader.loaderInfo.content访问myData.func()。
在此先感谢... :)
,它应该是这样的:
function myLoadHandler(e:Event)
{
MyData(e.target.content.myDataInstance).func();
}
其中myLoadHandler
是为Event.INIT
事件的事件处理程序(当所有字节加载后的SWF是COMPLETE
被激发,INIT
被解雇初始化并且其成员可以访问),并且myDataInstance
是您的子SWF中的MyData
实例的公共引用。
我以前做过这件事。我无法记起数据的确切路径,但找到的方法是在flex中使用调试器。为加载器添加一个Event.Complete事件,并在您调用的完整函数内添加一个断点。然后将swfLoader.loaderInfo.content添加到表达式观察列表并开始深入查找您要查找的内容。注意路径并尝试在测试函数中给它一个调用。
Thanks @gthmb。只需添加您的宝贵信息。如果不是MyData(如果这个类只存在于swf中而不是flex中),则可以使用Object typecasting。我甚至尝试过这个对象(swfLoader.content).myDataInstance.func();它也起作用。 – Goje87 2010-11-27 06:06:27