在任何浏览器中运行Flash/Flex电影时,查看trace()
输出的简单方法是什么?
在任何浏览器中运行Flash/Flex电影时,查看trace()
输出的简单方法是什么?
下载并安装Flash Player的内容调试器版本。
通过添加mm.cfg文件来启用跟踪日志记录 (官方指南):
ErrorReportingEnable=1
TraceOutputFileEnable=1
mm.cfg文件保存的位置取决于操作系统:
/Library/Application Support/Macromedia
%HOMEDRIVE%\%HOMEPATH%
/home/用户名
日志文件flashlog.txt可在以下位置找到:
C:\Documents and Settings\用户名\Application Data\Macromedia\Flash Player\Logs
C:\Users\用户名\AppData\Roaming\Macromedia\Flash Player\Logs
/Users/用户名/Library/Preferences/Macromedia/Flash Player/Logs/
/home/用户名/.macromedia/Flash_Player/Logs/
我只使用console.log函数(大多数现代浏览器都已实现);
import flash.external.ExternalInterface;
public static function log(msg:String, caller:Object = null):void{
var str:String = "";
if(caller){
str = getQualifiedClassName(caller);
str += ":: ";
}
str += msg;
trace(str);
if(ExternalInterface.available){
ExternalInterface.call("console.log", str);
}
}
flash.utils.getQualifiedClassName;
。 - SiZiOUS可以尝试使用De Monster的MonsterDebugger进行调试,它是一个可爱的AIR应用程序,可以调试跟踪对象、跟踪记录和显示链。非常好用,而且是开源的!
您也可以配置Flash和Flex以将日志写入日志文件。了解如何操作请查看以下链接:
http://livedocs.adobe.com/flex/3/html/help.html?content=logging_04.html
最近我一直在使用MonsterDebugger,但我曾经有一个别名,运行unix上的“tail”命令来实现对flashlog文件的跟踪,从而有效地为我提供了一个“在浏览器中”跟踪窗口:
alias flashlog='tail -f /PATH/TO/flashlog.txt'
或者,如果你有一个日志查看器(比如Mac OS上的Console),你可以在那里查看日志。我建议这些选项的唯一原因是FlashTracer很容易"崩溃" ;)
也许不如其他方案花哨或先进,但我曾经在flash动画中创建了自己的日志函数(有趣的是,叫做log),它调用trace并使用页面上的js函数(使用您熟悉的任何方法)。页面上的函数只是一个简单的console.log(),带有Firebug。 简单而且非常实用。
自从Macromedia被Adobe收购后,我以为应该是'D:\Documents and Settings\user_name\Application Data\Adobe\Flash Player\Logs\flashlog.txt'。这让我浪费了几分钟的时间。最终,我决定尝试查看'D:\Documents and Settings\user_name\Application Data\Macromedia\Flash Player\Logs\flashlog.txt',结果我成功地看到了Flash trace()输出。
我想知道为什么Adobe仍然将日志文件位置保留在Macromedia文件夹中。无论如何,我可以看到在浏览器中运行的Flash应用程序的trace输出,我很开心 :)
import flash.external.*; /*....*/ ExternalInterface.call('console.log', '这很棘手');
与 trace? - Ejaz