as3事件 - 类型强制失败?

时间:2009-09-12 17:50:48

标签: flash actionscript-3 events

我正在将一个孩子的事件发送到父母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包装在装载机中时才会发生?谢谢你的帮助 - 我很绝望!

2 个答案:

答案 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