Я создаю глобальный загрузчик, который загружает разные SWF-файлы.
У меня нет доступа к детскому SWF-коду.
Я пытаюсь избежать ошибок ссылки на нулевой объект в коде внутри дочернего SWF, который может ссылаться на «этап» и т. Д.
Я добавил всех возможных прослушивателей событий, добавил try/catch, попробовал все перестановки applicationDomains и LoaderContexts , например:Избегайте ошибок ссылок на объекты в коде внутри дочернего SWF
applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
var con:LoaderContext = new LoaderContext(false, applicationDomain);
con.allowCodeImport = true;
var _loader:Loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoad);
_loader.load(new URLRequest(fileName + ".swf"), con);
Я просто не могу поймать ошибку или отключить/удалить код из такого SWF.
, например, следующий класс Main:
package {
import flash.display.MovieClip;
public class Main extends MovieClip {
public function Main() {
var h = this.stage.stageHeight;
trace(h);
}
}
}
раздавит любого SWF, который будет пытаться загрузить его как часть другого SWF.
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Main()
Любая помощь с ловлей Ошибка, отключение/удаление кода или любой другой идеи будут оценены.
Спасибо.
Зачем нужны конструкторы со ссылками на 'stage'? что нецелесообразно в любом сценарии. Вы должны уловить ошибки асинхронно с событиями – BadFeelingAboutThis
См. Этот вопрос: http://stackoverflow.com/questions/2228034/swfloader-can-i-catch-all-the-exceptions-from-the-loaded-swf – BadFeelingAboutThis