Flash as3事件-类型强制失败?

Flash as3事件-类型强制失败?,flash,actionscript-3,events,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

我正在将事件从孩子发送到家长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封装在加载器中时才会发生这种情况?谢谢你的帮助,我很绝望

听起来像是应用程序领域的问题

试着这样做:

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);
}
为什么在装入器中包装主swf时事件处理会中断

它并不是真的“断裂”。。。更重要的是,每个swf的方法和属性都有名称空间,这样当你将一个随机swf(比如广告)加载到你的shell应用程序中时,就不会发生冲突,随后就会发生混乱,因为孩子中的事件在显示列表中向上移动时会被家长捕获


不过这有点像巫毒,所以别担心会让人困惑。您可以找到一个很好的概览。

非常感谢您。我正在使用BulkLoader,所以我添加了相应的修改,但它现在可以工作了。你能告诉我为什么吗?我无法理解这个上下文/应用程序领域的东西。我在加载子swf之前很好-为什么在将主swf包装到加载程序中时事件处理会中断?ApplicationDomains表示类的独立“世界”。当您在外部SWF中加载时,通常它的类将与加载它的SWF中的类都存在于单独的ApplicationDomain中。这就是您的原始代码所做的,它导致加载的SWF中名为“MyCustomEvent”的类被视为与加载SWF中的“MyCustomEvent”完全不同的类,因为每个类都位于不同的ApplicationDomain中。CodedSignal的代码使SWF的类应加载到相同的应用程序域中,因此其MyCustomEvent不会被视为不同的类您保存了我的一天!非常感谢。