问题描述:如何判断一个swf自身是调试版还是发布版
问题解决:
调试版SWF文件的stackTrace结果包含行号,可通过搜索在错位堆栈结果中的行号信息来判断是何版本,核心代码如下:
isDebug = newError().getStackTrace().search(/:[0-9]+]$/m) > -1;
isDebug值true为调试版,false为release版本。
在发布时有多种方式来发布release版本:
a. 用Flash Builder
1) 采用例如-define=CONFIG::DEBUG,true这样的条件编译选项
2) 在编译器参数里添加-debug=true|false来指定是否是调试版
3) 用开发工具中的project/Export Release Build方式进行发布
b. 用flash cs
Flash cs默认发布就是release版本,如果要发布debug版本,反而要在发布设置面板中进行设置(把允许调试选项勾上)
引申问题:
以上判断只能判断自身是debug版还是release版本,而无法判断被加载的文件是何版本,目前还未寻找到方法。