Debugging 如何确定mxmlc编译的SWF文件是在调试或发布模式下构建的

Debugging 如何确定mxmlc编译的SWF文件是在调试或发布模式下构建的,debugging,flash,release,mxmlc,Debugging,Flash,Release,Mxmlc,首先,我不是说玩家是否是调试器。(编辑:它实际上与调试器播放器相关) 我使用mxmlc编译一个非常简单的swf文件,其中-debug=false: mac-108:tmp admin$ "/Applications/Adobe Flash Builder 4.7/sdks/4.6.0/bin/mxmlc" +configname flex -debug=true -static-link-runtime-shared-libraries=true Main.as Loading configur

首先,我不是说玩家是否是调试器。(编辑:它实际上与调试器播放器相关)

我使用
mxmlc
编译一个非常简单的swf文件,其中
-debug=false

mac-108:tmp admin$ "/Applications/Adobe Flash Builder 4.7/sdks/4.6.0/bin/mxmlc" +configname flex -debug=true -static-link-runtime-shared-libraries=true Main.as
Loading configuration file /Applications/Adobe Flash Builder 4.7/sdks/4.6.0/frameworks/flex-config.xml
/Users/admin/tmp/Main.swf (987 bytes)
mac-108:tmp admin$
Main.as

package {
    import flash.display.MovieClip;
    import flash.text.*;

    public class Main extends MovieClip {

        public function Main() {
            // Reference: http://stackoverflow.com/questions/185477/determine-if-swf-is-in-a-debug-player-or-mode
            var st:String = new Error().getStackTrace();
            var isDebugBuild:Boolean = (st && st.search(/:[0-9]+]$/m) > -1);
            var my_st:String = "st: " + (st == null ? 'Null' : st);
            var my_DR:String = isDebugBuild?"Debug":"Release";

            var obj:TextField = new TextField();
            obj.text = my_st + "\n" + my_DR;
            this.addChild(obj);
        }
    }
}
然后我在Chrome浏览器中打开
Main.swf
,但我看到:

st:Null
Release
这太奇怪了,显然,我已经设置了
-debug=true
,为什么确定swf是否处于调试或发布状态的流行方法不起作用呢


但是,如果我将代码移动到Flash Builder 4.7,它将给我
调试
输出(而不是
发布
)。

事实证明,当SWF在调试模式下构建时,为了测试它是否处于调试模式,Flash播放器还必须是使用
功能的调试器。isDebugger