Flash网站开发中常常遇到loading功能、deeplinking、js与flash交互等问题,而这些问题只有在在真实的网络环境下才能进行有效的测试。还在为上传—测试—再上传—测试的重复劳动而烦恼吗?本文告诉你一个更简单有效的debug解决方案。
1.开发Flash网站就应该用网页(而不是swf文件)来进行测试。只需要在FDT的Run Configrations里面按照下图进行设置,就能在项目编译好之后自动打开浏览器来测试(请设置为Firefox,flash插件为debug版本,后面你就知道为什么了)。 
2.如果是用debug模式运行,FDT的控制台应该就能接收到Flash传递出来的各种信息了。这里有使用FDT来debug的详细教程,我就不复述了。但即使不用debug模式,我们也可以得到trace信息的,只要我们祭出这两件两件法宝:Firebug和Flashbug。Firebug是网页开发者必备的插件,功能非常强大。而Flashbug是Firebug的扩展,专门负责输出Flash文件的trace信息。我们来看看这两个插件工作中的截图:

3.除了简单的输出信息以外,我们还有更专业的调试工具De MonsterDebugger。如果你和我们一样使用Gaia Framework来构建网站的话,其实你已经用上这个方便的工具了。只要把代码中的trace()换成GaiaDebug.log(),你就能在De MonsterDebugger的窗口中看到更为详尽的信息。
![]()
除此之外,De MonsterDebugger还有个非常棒的资源监视器:帧频、内存占用情况一目了然,你还能看到用户操作对整个程序执行时间造成的影响。我们在开发Mercedes-Benz Autoshow 2010 Web Special的过程中就是通过它来排查内存泄漏的问题。
4.接下来让我们更进一步:是否怀念Flash IDE中提供的模拟下载功能?以前我们测试loading都靠要它。现在用FDT作为主要开发工具,我们有了更好的替代方法。首先需要搭建一个本地的服务器环境。我用的是xampp,很简单易用的一个组合程序包。装好之后你的电脑就有Apache、MySql等服务器环境(如下图)。开启Apache服务后,就可以访问http://localhost或者http://127.0.0.1。

如果一切正常,那么接下来你就可以复制项目文件去xampp安装目录下的htdocs准备测试了。
5.虽然现在你有了一个服务器环境,但是访问本地网站的速度实在太快,所以在正式开始前,你还需要安装一个Firefox插件:Firefox Throttle。这是一个限速插件,通过它你可以任意选择想要模拟的带宽速度:

还要在第二个选项页勾选限制本地连接的速度:

6.到此我们的Flash Website Debug环境就要大功告成了。最后还要记得每次测试以后都要清空缓存。推荐装一个Cache Status扩展,能够进一步简化这个操作。

总结:在真实的网络测试环境下,我们可以去分析Firebug中输出的各项信息,这对批量加载、队列加载等复杂loading逻辑的debug非常有用。此外我们还可以很方便地测试浏览器的前进后退等deeplinking相关功能。当然,测试与js之间的交互传值控制也完全没有问题。
如果你也有调试方面的好方法,欢迎留言探讨。下载文中提到的软件/插件:
« Use .bat to Switch Flash Player FDT Configurations Best Practice »












我在Complier Arguments里面加了一行 -debug=true ,运行的时候返回以下错误,网上查了一下在flex和fd里面,只要Main.as为默认启动项就可以了,在FDT里面要怎么弄呢?
在 调试配置 里面已经设置了 Main Class 为 src/Main.as
Error: a target file must be specified
貌似Complier Arguments那边多了换行或空格的问题,现在可以了。:D
很详细,学习了~
“如果一切正常,那么接下来你就可以复制项目文件去xampp安装目录下的htdocs准备测试了。”
有另一种更好的方法来替代“复制”,就是用硬链接/符号链接,windows7自带支持的。有兴趣的可以去看看http://www.howtogeek.com/howto/16226/complete-gui…
最近一直在关注你的网站,是你带着我走进了FDT和GAIA世界,如此崇高和无私的分享精神值得我们学习。
正好,在为Debug的设置而叫苦的时候你又出了这么一篇好文,而且还坐上沙发。
只能用一个词来感激你,及时雨。