转自:Danger's blog
1,右键点击我的电脑,添加环境变量->用户变量
变量名:HOMEDRIVE 值 "C:\" (无引号)
变量名:HOMEPATH 值 "Documents and Settings\登录用户名" (也无引号)
2,在"C:\Documents and Settings\登录用户名" 目录下创建一个文件命名为"mm.cfg"
内容为:
ErrorReportingEnable=0
TraceOutputFileEnable=1
TraceOutputFileName=C:\flashlog.log
3,然后用 Flash 调试播放器打开任何一个允许调试的SWF,Trace()内容就自动记录到C:\flashlog.txt文件中了.
以下是自己配置的总结:
以上的环境变量是默认的,你不设置就是上面的了,但是你可以通过环境变量,重新配置(估计是可行的)。
自己定义的文件flashlog.txt是有大小限制的,默认的最大值是100,你可以通过MaxWarnings来设置其最大值,
如:MaxWarnings=500,也可以设置为0,那样就无限制了。
文件的存储时间直到重新用debug flashplayer开一个swf就自动清空。
根据以上的原理,我就想写一个flash放到与flexlog.log相同的目录下,实时的读取文件的内容,这样每次调试就可以得到更新了。唯一的不足是,不能手动对文件进行清楚。只能重新关闭swf文件,重新再开才能清楚。
1、在舞台上放一个动态文本框,命名为trace_text:
2、在第一帧插入以下代码。
代码如下:
1 System.useCodepage = true;
2 var my_lv:LoadVars = new LoadVars();
3 var duration:Number = 20;
4 my_lv.onData = function(src:String) {
5 if (src == undefined) {
6 trace_text.text = ("数据出错");
7 return;
8 }
9 trace_text.text = (src.split("\n")).join("");
10 };
11 function run_load():Void {
12 my_lv.load("flexLog.log");
13 }
14 intervalId = setInterval(this, "run_load", duration);
2 var my_lv:LoadVars = new LoadVars();
3 var duration:Number = 20;
4 my_lv.onData = function(src:String) {
5 if (src == undefined) {
6 trace_text.text = ("数据出错");
7 return;
8 }
9 trace_text.text = (src.split("\n")).join("");
10 };
11 function run_load():Void {
12 my_lv.load("flexLog.log");
13 }
14 intervalId = setInterval(this, "run_load", duration);
发现一个bug,会出现一个警告,原因查找中.......
把我写的文件都放上来:mm.rar(mm.cfg,flexlog.log),只要按以上的说明放到相应的路径下就可以,在把这个swf做个快捷方式就可以了,当然每次要看trace的时候,先开这个flexlog.swf,再开你要调试的swf,当你重新开另一个swf,那flexlog.log会重新清空。