将编译AS3区分Debug版本和Release版本

来源:互联网 发布:什么是网络代理 编辑:程序博客网 时间:2024/05/13 23:32

首先我们区分AS3的编译版本,目的是让同样的code,如果使用debug编译,则会含有很多测试代码方便调试;如果使用release编译,则不会将调试代码编译进去。
用过Visual Studio(以下简称VS)的程序员都知道,VS在编译时有个debug和release的选项,而flash builder(以下简称fb)在编译时,虽然可以选择不同路径编译,但无法像VS那样真正的区分编译版本。
下面我依然要说,fb的确没办法像VS那样真正的去区分版本进行编译,但fb可以条件编译!

什么是条件编译
  一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件下才进行编译,即对一部分内容指定编译条件,这就是“条件编译”。

接下来看看,我们怎么样使用条件编译来完成区分编译Debug版本和Release版本:
1、首先来看一段代码:

package {
  import flash.display.Sprite;

  public class TestBuild extends Sprite
  {
    CONFIG::debug
    public function TestBuild()
    {
      graphics.beginFill(0xff0000,1);
      graphics.drawRect(0,0,100,100);
    }
    
    CONFIG::release
    public function TestBuild()
    {
      graphics.beginFill(0×0000ff,1);
      graphics.drawRect(0,0,100,100);
    }
  }
}

2、TestBuild有两个构造函数,不同的是一个构造函数上有CONFIG::debug,一个有CONFIG::release;
通过理解,如果是debug编译画出来的是红色的正方形,而release编译是蓝色正方形。

3、然后我们使用mxmlc命令行对这段代码进行debug编译

mxmlc src/TestBuild.as -define=CONFIG::debug,true -define=CONFIG::release,false -output bin-release/TestBuild.swf

4、得到一个swf文件,打开一看是红色正方形,的确是debug版本编译

5、然后改一下编译参数,进行release编译

mxmlc src/TestBuild.as -define=CONFIG::debug,false -define=CONFIG::release,true -output bin-release/TestBuild.swf

6、得到一个swf文件,打开一看是蓝色正方形,的确是release版本编译