在 Flex 中投射到接口时出现问题
我正在使用模块通信接口,如 adobe flex 文档。当我在 mxml 中有 ModuleLoader 时,一切都工作得很好。
<mx:TabNavigator id="testNav"
height="100%"
width="100%">
<s:ModuleLoader id="firstTab"
label="ONE"
width="100%"
url="path/to/module/Mod1.swf"/>
<s:ModuleLoader id="secondTab"
label="TWO"
width="100%"
url="path/to/module/Mod2.swf"/>
</mx:TabNavigator>
我有这段代码
var someChild:* = firstTab.child as ISomeModule;
ISomeModule 是接口。 但是,当我在另一个文件的actionscript中有一个ModuleLoader时,当我做同样的事情时,someChild在转换为ISomeModule时变为null,
var myLoader:ModuleLoader=new ModuleLoader();
myLoader.percentHeight=50;
myLoader.percentWidth=50;
myLoader.loadModule(moduleURL + "?attr=value&attr2=" + parentDocument.attr2);
而在另一个函数中,我的
var childMod:* = myLoader.child as ISomeModule;
myLoader.child
不为null,但是当转换为ISomeModule,它变为空。 有谁知道如何解决这个问题? 谢谢
I am using interfaces for module communication like in adobe flex documentation. When I have a ModuleLoader in mxml, everything works great.
<mx:TabNavigator id="testNav"
height="100%"
width="100%">
<s:ModuleLoader id="firstTab"
label="ONE"
width="100%"
url="path/to/module/Mod1.swf"/>
<s:ModuleLoader id="secondTab"
label="TWO"
width="100%"
url="path/to/module/Mod2.swf"/>
</mx:TabNavigator>
and i have this code
var someChild:* = firstTab.child as ISomeModule;
ISomeModule is the interface.
But when I have a ModuleLoader in actionscript in another file, when I do the same thing, someChild becomes null when cast to ISomeModule
var myLoader:ModuleLoader=new ModuleLoader();
myLoader.percentHeight=50;
myLoader.percentWidth=50;
myLoader.loadModule(moduleURL + "?attr=value&attr2=" + parentDocument.attr2);
and in another function, I have
var childMod:* = myLoader.child as ISomeModule;
myLoader.child
is not null but when cast to ISomeModule, it becomes null.
Does anyone have an idea about how to solve this?
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
两件事:
firstChild.content
而不是firstChild.child
。2 things:
<s:ModuleLoader url="someURL" applicationDomain="{ApplicationDomain.currentDomain}" />
firstChild.content
and notfirstChild.child
for the actual module itself.这篇文章已经有很多年了,但目前我通过使用 AS3 动态创建 ModuleLoader 遇到了类似的问题。
上面设置 ApplicationDomain 的提示救了我的命...谢谢!
谢谢,
奥拉夫
This post is quite some years old but currently I ran into a similar issue by creating ModuleLoader dynamically with AS3.
The above hint to set the ApplicationDomain saved my day... thanks!
Thanks,
Olaf