
最近在开发的过程中比较多的用到了程序测试,有一些经验,希望和大家分享,不过这些也都只是我个人的一些方法,如果有更好的建议,一定要告诉我啊。废话不多说,开始!
一、trace方法的使用
最简单的就是这样:
trace("hello word!"); trace("my name is " + name);
其次你还可以这样:
trace("my name is ",name);
也就是说可以采用逗号分开来输出一组信息.
另外我比较喜欢采用数组:
trace([name,city,zip]);
二、利用Flex输出trace信息
这个是我最常用也是最方便的了,如何使用Flex我就不说了。
在Flex开发环境中,按F11开始测试,利用Eclipse的Console面板来输出。
这里值的一提的是,我之前采用Flex独立版开发,原因是性能比插件版要快,后来采用Eclipse插件版后,发先并没有慢多少,而且有更多好用的功能,不过这些不是我今天要讲的,所以有兴趣的话自己去体验吧。
三、使用fdb来输出trace信息
其实Flex也是利用这个东西来输出信息的,只是如果你不想打开Flex就可以对你的程序进行测试,那么fdb是比较轻量级的。
fdb是什么呢?应该算是flash player测试信息的接收器,它可以与你的debug程序建立连接,从而获取trace信息并显示出来。
fdb在你Flex 3.0的安装目录里面,具体位置是:\Adobe\Flex Builder 3 Plug-in\sdks\moxie\bin\fdb.exe
如何开始测试呢?我有写一个批处理,这样就不需要每次都去敲那个又长又复杂的cmd了。
@echo off "F:\Adobe\Flex Builder 3 Plug-in\sdks\moxie\bin\fdb.exe" file myApp-debug.swf pause
具体使用步骤:
-
在你的swf文件目录建立一个新的文件,命名为 debug.bat ,右键选择编辑,将上面的代码拷贝到文件中。
-
修改
F:\Adobe\Flex Builder 3 Plug-in\sdks\moxie\bin\fdb.exe
为你的Flex安装目录中的fdb文件位置。
-
修改
myApp-debug.swf
为你需要测试的swf文件
注意:指定的文件必须是debug版本
- 双击 debug.bat 执行。如果输出类似一下信息,说明你成功运行:
Adobe fdb (Flash Player Debugger) [build 172357] Copyright (c) 2004-2006 Adobe, Inc. All rights reserved.
Attempting to launch and connect to Player using URL TWViewer_Pro_Pre-debug.swf Player connected;
session starting. Set breakpoints and then type ‘continue’ to resume the session.
[SWF] E:\IRIS\trunk\deploy\TWViewer_Pro_Pre-debug.swf – 562,219 bytes after deco mpression Session already in progress (fdb)
- 提示输入”continue”继续。那么就继续咯。此时,测试程序就跑起来了,你大概可以看到类似这样的信息,这些信息都是你在编码时trace抛出的。
[trace] [DEBUG] 10:30:49 关闭当前加载的VT文件!
[trace] [INFO] 10:30:49 加载图片所需时间 : 389
[trace] [INFO] 10:30:49 设置数据时间1 : 202
[trace] [DEBUG] 10:30:49 加载场景数据完成!
[trace] [DEBUG] 10:30:49 删除加载页面完成!
[trace] [DEBUG] 10:30:49 过渡效果完成,设置新场景!
[trace] [INFO] 10:30:50 切换 地图:2e70f16a
[trace] [DEBUG] 10:30:50 开始地图过度效果:1,2
[trace] [DEBUG] 10:30:50 继续播放Movie! [trace] [INFO] 10:30:50 movie playing : true
这里只是介绍了如何测试了连接,更多的方法可以参考Flex帮助信息:Using the Command-Line Debugger
四、利用mm.cfg和flashlog.txt保存测试信息
这个方法 peterd 提到过。简单说来就是在mm.cfg中设置两个参数,是flash player将trace信息保存到flashlog.txt中,这样方便你查看。
flashlog.txt 只保存你最后运行过的flash信息。
flashlog.txt 可以保存非debug版本的trace信息,这个是fdb所不能的。
具体还可以参考Flex帮助:Configuring the debugger version of Flash Player to record trace() output
as3, debug, flashlog, trace