gpt4 book ai didi

apache-flex - 与 SWF 加载程序交互

转载 作者:行者123 更新时间:2023-12-04 07:06:21 26 4
gpt4 key购买 nike

我在我的应用程序中嵌入了一个 swf 文件

<mx:SWFLoader source="@Embed(source='mod/VideoModule.swf')" width="50" height="50" id="loader" creationComplete="initLoader()" />

现在在 flex 文档的帮助下,我想通过创建 SystemManager 与我加载的 swf 进行交互
[Bindable]
public var loadedSM:SystemManager;

private function initLoader() : void {
trace(loader.content);
loadedSM = SystemManager(loader.content);
var b: Button = loadedSM.application["button1"] as Button;
b.addEventListener(MouseEvent.CLICK, test);
}

但是在启动应用程序时出现错误#1034 并说 Main__embed_mxml_mod_VideoModule_swf_856293516@33f53c1 无法转换为 mx.managers.SystemManager

有任何想法吗?

提前致谢

塞巴斯蒂安

最佳答案

所以首先我会使用 SWF 加载器的 complete 事件,并且在创建 swf 加载器时将触发 creationComplete 事件,而不是加载它的内容。

<mx:SWFLoader source="@Embed(source='mod/VideoModule.swf')" width="50" height="50" id="loader" complete="loaderCompleteHandler(event)" />

然后我也会在事件触发时传递 FlexEvent 参数。该事件使您可以访问 SWFLoader 的实例。 SwfLoader 然后有一个名为 content 的属性,它可以让您访问加载的 swf。如果 swf 然后公开一个名为 button1 的属性,您可以执行以下操作:
private function loaderCompleteHandler(event : FlexEvent) : void 
{
var swfLaoder : SWFLoader = SWFLoader(event.target);
swfLaoder.content["button1"].addEventListener(MouseEvent.CLICK, test);
}

关于apache-flex - 与 SWF 加载程序交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1091342/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com