我已将我的组件编入SWC并将其添加到Flash专业版中。
如果我想调试这个SWC组件,该怎么做? trace()
和MMExecute()
似乎无效。
谢谢!
答案 0 :(得分:0)
你可以说SWC是你库的一种可执行文件。它是在编译库(源代码)后生成的,编译器会删除所有跟踪,注释并最小化swc文件大小。所以你想知道swc组件的执行情况。你必须实现登录。写一个日志,按照步骤
private var _fs:FileStream = new FileStream();
protected function windowedapplication1_closeHandler(event:Even
吨):void`
{
var prefsFile:File = File.desktopDirectory;
prefsFile = prefsFile.resolvePath("logfile.txt");
fs.open(prefsFile,FileMode.WRITE);
fs.writeUTFBytes(logString);
fs.close();
}`
3.制作另一个名为logString的变量,并根据想要的日期联系字符串
示例:
logString += 'onAttitones_creationCompleteHandler'+'\n';
这将在桌面上写一个日志文件,文件名是logfile.txt
这可能会对你有所帮助
答案 1 :(得分:0)
您可以通过在其中传递自定义记录器来调试已编译的组件。仅使用两种方法创建ILoggable接口:setLogger(logger: ILogger)
和log(value: *)
。在所需组件中实现接口。
public function log(value:*):void{
if(_logger != null){
_logger.log(value);
}
}
public function setLogger(logger:ILogger):void {
_logger= logger;
}
现在您可以在组件的每个有趣位置使用log(something)
,但不要忘记分配记录器:
//Create logger
logger = new TraceLogger();
//...
//Use it somewhere with components, that can produce logs
myComponent = new MyComponent();
myComponent.setLogger(logger);
在项目的某处声明你的史诗跟踪记录器:
public class TraceLogger implements ILogger{
public function log(value:*):void{
trace(value);
}
}