调试嵌入式Flash(SWF)

塔曼布鲁

我有一个Windows窗体应用程序,可以“播放” Flash SWF文件。我看到随机方法:FlashMethodInvocation异常:System.AccessViolationException错误。输出只给了我Windows窗体应用程序的堆栈跟踪信息,而不是我认为真正的错误正在发生的动作脚本。

我也有swf的源代码,它们全部用ActionScript 3编写,并且我使用flashbuilder来创建它。

Windows窗体应用程序是用C#编写的。Windows窗体应用程序创建ShockWave ActiveX控件的实例,然后告知该实例加载swf。通过动作脚本中提供的外部接口,SWF和C#代码之间存在交互。

SWF动作脚本可以在崩溃前几个小时正常播放。不幸的是,当动作脚本堆栈跟踪气泡到Windows窗体应用程序时,它不包含在错误中。

我想看看异常发生时动作脚本中发生了什么。有什么想法可以找到actionscript堆栈跟踪吗?

马特

克劳迪奥·雅各布

我曾经遇到过与您类似的情况,并且我记得已经通过用其“调试器”版本代替“常规” Flash Player解决了该问题。您说您正在使用ActiveX版本的播放器,所以

1)首先下载此文件:

用于Internet Explorer的Flash Player内容调试器-ActiveX

2)安装它,然后导航到:“ c:\ Windows \ SysWOW64 \ Macromed \ Flash \”,在那里您应该找到一个名为“ FlashUtil * _ActiveX.dll ”的文件,该文件刚刚被替换(检查文件的日期) )。这是您刚安装的Flash Player的调试器版本。

3)在Windows窗体应用程序中覆盖此文件(我假设您在应用程序中包含Flash Player,而不是依赖主机系统上可用的播放器,我不建议这样做)。

4)然后,在您的ActionScript项目(在Flash Builder中)中,创建SWF的调试器版本(只需在“调试模式”下启动该项目,然后将生成的SWF文件复制到Windows窗体应用程序中即可。

5)保持调试器在FlashBuilder中运行,与Windows窗体应用程序互动,直到它生成RTE。您应该在Flash Builder中看到ActionScript错误的痕迹。当然,您可以在Flash Builder中设置断点并照常进行调试。

您可能想使用一种重复整个过程的自动化形式(我在想ANT或Flash Builder的外部工具(这是正确的名称吗?)—您甚至可以在FB之后自动启动Windows应用程序首先创建一个新的SWF文件,并将其放置在正确的文件夹中)。

希望这足够清楚。

祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章