перехват асинхронных событий в as3, которые вызывают ошибки - PullRequest
0 голосов
/ 29 августа 2011

Я использую библиотеку astra, которая использует библиотеку fl.

Проблема, с которой я столкнулся, заключается в том, что я получаю ошибки, некоторые воспроизводимые, некоторые на первый взгляд случайные.

I 'Я полагаюсь на большое количество данных, управляемых таймерами, но есть все эти компоненты UIC, с которыми можно взаимодействовать одновременно.

Проблема 1: У меня есть представление, которое имееттекстовая область в нем, и куча вкладок выше.Если я прокручиваю текстовую область, в то время как вид переходит к другому кадру, я получаю # 1009 ошибку нулевого объекта в fl.controls::ScrollBar/thumbReleaseHandler()

Проблема 2: вторая кажется прерывистой, и я не могупоследовательно воспроизводить его, но я уверен, что таймеру нравится перерисовывать текущий вид вкладки, когда пользователь взаимодействует с ним.

TypeError: Error #2007: Parameter child must be non-null.
at flash.display::DisplayObjectContainer/addChildAt()
at fl.controls::BaseButton/drawBackground()
at fl.controls::LabelButton/draw()
at fl.controls::Button/draw()
at fl.core::UIComponent/callLaterDispatcher()

Есть ли способ перехватить эти события, прежде чем они вызовут объектывыбросить эти ошибки?

1 Ответ

1 голос
/ 30 августа 2011

Если вам может потребоваться Flash Player 10.1, вы можете попробовать использовать новый глобальный API обработки исключений: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/UncaughtErrorEvents.html

Он по-прежнему не перехватывает всех необработанных ошибок (наиболее заметноОшибки AS2, возникающие после загрузки в SWF-файл AS3), но они могут обрабатывать ваши ошибки.

Кроме этого, вы можете просмотреть свой код и отладить эти экземпляры.Если вы используете отладочную версию своего SWF-файла, вы должны получить номера строк, указывающие на неправильный код.Решение часто состоит в том, чтобы просто выполнить нулевую проверку и игнорировать действие, если у вас нет ссылки на объект.

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