События as3 - сбой приведения типа? - PullRequest
3 голосов
/ 12 сентября 2009

Я отправляю события от дочернего к родительскому 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 ]

4 голосов
/ 12 сентября 2009

Похоже, проблема 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 голос
/ 13 сентября 2009

почему прерывается обработка событий при переносе основного swf в загрузчик?

Это на самом деле не «ломается» ... более того, методы и свойства имеют пространство имен для каждого SWF-файла, чтобы не возникало конфликта в случае загрузки случайного SWF-файла - скажем, рекламы - в вашу оболочку app и беспредел, потому что события в дочернем элементе перехватываются родителем, когда они перемещаются вверх по списку отображения.

Это это своего рода вуду, так что не беспокойтесь, если не смущаете. Вы можете найти хороший обзор здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...