Когда я пытаюсь получить доступ uncaughtErrorEvents
диспетчер при прямой загрузке все работает хорошо. Но когда я пробую тот же код при загрузке другим swf я получаю ссылочную ошибку.
protected function onAddedToStage(e:Event):void {
trace("Flash version: " + Capabilities.version);
try {
loaderInfo.uncaughtErrorEvents.addEventListener("uncaughtError", onUncaughtError);
trace("YAY!");
} catch (e:Error) {
trace(e);
}
}
Вывод при прямой загрузке (в браузере):
Flash version: MAC 10,1,53,64
YAY!
Вывод при загрузке другим "загрузчиком" SWF:
Flash version: MAC 10,1,53,64
ReferenceError: Error #1069: Property uncaughtErrorEvents not found on flash.display.LoaderInfo and there is no default value.
Если бы другие могут копировать это, я был бы благодарен.
Править: Также попробовали это stage.loaderInfo
, вместо просто loaderInfo
. Та же проблема...
loaderInfo загруженного объекта отличается от такового для инициализированного объекта, а содержимое через класс Loader изменяется по-другому. в документации указано, что вы должны добавить слушателя в uncaughtErrorEvents на загрузчике, а не в связанный с ним loaderInfo:
Для обнаружения возникающих неперехваченных ошибок в загруженном SWF используйте Loader.uncaughtErrorEvents свойство, не Loader.contentLoaderInfo.uncaughtErrorEvents имущество.
поэтому, по-видимому, вам нужно либо добавить его в загрузчик, а не загруженный, либо определить, загружен ли он, а затем добавить его в родительский элемент или что-то вместо этого. неэлегантно я знаю, но все, что я могу придумать, чтобы обойти это.