【问题标题】:Can I have Flash Builder compile different files in Debug and Release mode?我可以让 Flash Builder 在调试和发布模式下编译不同的文件吗?
【发布时间】:2011-07-28 16:02:41
【问题描述】:

我想将一些变量设置为不同的值,具体取决于我是在 Debug 还是在 Release 模式下编译:这可能吗?

包括不同的文件或类似#DEFINE 的东西都可以。


编辑

如果不清楚,这必须自动发生:如果每次编译时都必须手动更改某些内容,那完全没有意义。这个问题的全部点是完全必须这样做。

  • 我编译了DEBUG --> 我已经设置了[x]
  • 我编译了RELEASE --> 我已经设置了[y]


另一种看待它的方式是:从程序本身,我可以检测到它是在调试还是发布模式下编译的?

【问题讨论】:

    标签: compilation flash-builder release


    【解决方案1】:

    Here's some code,您可以使用它来检查运行时的编译模式:

        public static function isDebugBuild() : Boolean
        {
            return new Error().getStackTrace().search(/:[0-9]+]$/m) > -1;
        }
    
        public static function isReleaseBuild() : Boolean
        {
            return !isDebugBuild();
        }
    

    【讨论】:

    • 我查看了您链接的文档,但没有说明任何内容。它只是说,就像@eclps 所说,您可以在编译时设置它们,但不会自动设置它们。
    • 感谢您的编辑,但我很抱歉:问题的全部点(如果不清楚,很抱歉)是 NOT手工完成。如果每次都得手动改,完全没有意义。
    • 哦,没注意到“Alternatively”,就是这样!我正在尝试,谢谢:)
    • 它的行为很奇怪:如果我在发布模式下运行它,它会“跳过”当前主循环到下一个主循环调用,就像我 returned 一样(不知道是不是清楚,我发现很难解释这一点)。尽管如此,这还是让我能够做到这一点——不过,我会等着看是否有更好的方法出现。
    • 我也看到了这种行为,如果您在调试播放器中运行它似乎可以工作,但是当您在发布播放器中运行它时,它的行为会很奇怪。抱歉,我找不到您的问题的解决方案。
    【解决方案2】:

    您可以使用编译参数将变量传递给 ActionScript。以下将在“CONFIG”命名空间中传入一个名为“debugging”的常量:

    -define=CONFIG::debugging,true
    

    您可以在 ActionScript 中创建条件:

    CONFIG::debugging {
        // Perform debug code
    }
    

    还要注意有一个调试标志来启用/禁用编译调试信息:

    -debug=true|false
    

    【讨论】:

    • 呃?我在哪里配置调试和发布的不同编译参数?
    • 我一直在寻找一种在编译时访问编译器设置 -debug=true|false 的值的方法,就像使用自定义 CONFIG 设置一样。似乎它应该很简单,但到目前为止,没有乐趣......这将允许,例如,只需按下运行按钮与调试按钮即可从发布版本中删除调试代码......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    相关资源
    最近更新 更多