我正在将一个孩子的事件发送到父母swf。它工作正常,直到我使用预加载器swf加载父级,然后父级停止从子级获取事件。我现在收到这个错误:
TypeError: Error #1034: Type Coercion failed: cannot convert com.company.events::MyCustomEvent@22494251 to com.company.events.MyCustomEvent.
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
这是什么意思?为什么只有当我将主SWF包装在装载机中时才会发生?谢谢你的帮助 - 我很绝望!
答案 0 :(得分:4)
听起来像是ApplicationDomain问题。
尝试这样的事情:
public function loadSWF(url:String):void
{
var req:URLRequest = new URLRequest(url);
var cxt:LoaderContext = new LoaderContext();
cxt.applicationDomain = ApplicationDomain.currentDomain;
var ldr:Loader = new Loader();
ldr.load(req, cxt);
}
答案 1 :(得分:1)
为什么在将主SWF包装到装载程序中时事件处理会中断?
它并没有真正“破解”...更多的是为每个swf命名方法和属性,以便在你将一个随机swf(比如一个广告)加载到你的shell中时没有冲突应用程序和混乱随之发生,因为当父母在显示列表中向上移动时,父母会抓住孩子的事件。
有点巫术,所以不要担心发现它令人困惑。您可以找到一个很好的概述here。