2015-08-21 2 views
0

У меня есть приложение для окон, которое «воспроизводит» Flash SWF-файл. Я вижу случайный метод: Исключение FlashMethodInvocation: ошибки System.AccessViolationException. Выход только дает мне стек стека приложения формы окна, а не actioncript, где я считаю, что происходит настоящая ошибка.Отладка встроенной вспышки (swf)

У меня есть исходный код swf, его все написано в ActionScript 3, и я использую flashbuilder для его создания.

Приложение для формы окон написано на C#. Приложение формы Windows создает экземпляр элемента управления ShockWave ActiveX, который затем передается для загрузки swf. Существует взаимодействие между кодом SWF и C# через внешний интерфейс, предоставляемый в ActionScript.

Аккаунт SWF отлично работает в течение нескольких часов до крушения. К сожалению, трассировка стека actionscript не включается в ошибку, когда она пузырится до приложения формы окна.

Я хотел бы видеть, что происходит в ActionScript на момент исключения. Любые идеи, как я могу найти трассировку стека actionscript?

Matt

+0

Прочтите описания тегов перед добавлением! – Olaf

+0

На этот вопрос может ответить только человек/программное обеспечение, скомпилировавшее SWF, поскольку параметры компиляции определяют, что информация о стеке содержится в SWF. И только тогда можно будет получить «трассировку стека событий»: например.[mxmlc options] (http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7a92.html) (ищите 'debug') – karfau

+0

Я написал исходный код и скомпилировал SWF. Все мое. – tatmanblue

ответ

0

Я был когда-то в ситуации, подобной вашей, и я помню, разрешив его, заменив «регулярный» Flash Player с «Debuger» версии. Вы говорите, что вы используете версию ActiveX проигрывателя, так

1) первый скачать этот файл:

Flash Player content debugger for Internet Explorer - ActiveX

2) Установите его, а затем перейти к: «C: \ Windows \ SysWOW64 \ Macromed \ Flash \ ", там вы должны найти файл с именем« FlashUtil * _ActiveX.dll », который был только что заменен (проверьте дату файла). Это версия отладчика только что установленного проигрывателя Flash.

3) Перезапишите этот файл в приложении Windows Forms (предположим, что вы включили Flash Player в приложение, вместо того чтобы полагаться на игрока, доступного в хост-системе, что я бы не рекомендовал).

4) Затем, в проекте ActionScript (в программе Flash Builder) создать отладочную версию вашего SWF (только запустить проект в «режиме отладки» и скопировать полученный SWF-файл в ваши окна образуют приложение.

5) Сохраняя отладчик, запущенный в FlashBuilder, вставляйте его в приложение формы Windows, пока оно не выдаст RTE. Вы должны увидеть трассировку ошибки ActionScript в Flash Builder. Конечно, вы можете установить точки останова в Flash Builder и отлаживать, как обычно.

Возможно, вы захотите использовать форму автоматизации, которая повторяет весь процесс (я думаю об ANT или внешних инструментах Flash Builder (это правильное имя?) - вы даже можете запустить приложение Windows автоматически FB, после того, как он сначала создает новый SWF-файл и помещает его в нужную папку).

Надеюсь, что это было достаточно ясно.

Удачи вам!

Смежные вопросы