Я пытаюсь использовать новый (ish) AS3 глобальный класс обработки ошибок.Я пытаюсь использовать его в приложении Flex mxml.Я не могу заставить его работать на всех.Ниже приведена целая программа, которая показывает проблему.Я установил это для использования Flash Player 10.2 и скомпилировал с Flex 4.5 SDK.
Я пытался использовать Flex SDK 4.0 и 4.5, но я получаю ошибку в любом случае.Я должен упустить что-то очевидное здесь.Это обычный SWF-файл Flex, который будет отображаться на веб-странице.Предполагая, что я могу импортировать UncaughtErrorEvent, я бы затем сделал что-то вроде этого для настройки обработчика событий:
if(systemManager.loaderInfo.hasOwnProperty("uncaughtErrorEvents")) {
IEventDispatcher(
systemManager.loaderInfo["uncaughtErrorEvents"]).addEventListener(
"uncaughtError", uncaughtErrorHandler);
}
это все кажется ужасно грязным, но я мог бы с этим смириться, за исключением того, что он не работает!Я просмотрел сеть и не могу найти никаких документов или примеров, которые объясняют, как заставить это работать в моем контексте.Любой совет?
Полная программа:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" applicationComplete="onApplicationComplete();"
>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
private function onApplicationComplete() : void {
systemManager.loaderInfo.uncaughtErrorEvents.addEventListener("uncaughtError", uncaughtErrorHandler);
}
private function uncaughtErrorHandler(event:Event) : void {
trace(event.toString());
}
]]>
</fx:Script>
<s:Button x="153" y="64" label="Trigger Error" id="triggerButton" click="throw new Error('myError')"/>
</s:Application>