首先我们区分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(0x0000ff,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版本编译

OK,此文讲完了,你看懂了吗?不懂请留言
[最后修改由 sunbright, 于 2010-04-19 12:05:40]
评论Feed 评论Feed: http://www.xiaos8.com/feed.asp?q=comment&id=556
怎么一页才显示这么点文章?点快速检索查看更多的文章: 显示全部 | 评论: 3 | 排序 | 观看的: 796
游客*
[ 2010-04-25 16:18:59 ]
[表情12] 好东西,转走了啊
kundouzhishou*
[ 2010-05-14 14:50:35 ]
fb里面不是有export release build么?
sunbright
[ 2010-05-14 15:17:26 ]
那个不是区分版本编译,编译出来的代码还是一样的,不会变
而这个编译出来的两个版本,完全不一样。

发表
表情图标
[表情01] [表情02] [表情03] [表情04] [表情05] [表情06] [表情07] [表情08] [表情09] [表情10] [表情11] [表情12] [表情13] [表情14] [表情15] [表情16] [表情17] [表情18] [表情19] [表情20] [表情21] [表情22] [表情23] [表情24]
UBB代码
转换链接
表情图标
悄悄话
昵称:   验证码: *
 
快速浏览
类别
标题
评论/流量
日期