AS3 条件编译法
2013-01-09 14:09
169 查看
条件编译:根据条件,有选择编译程序中的部分代码.不是很清楚的可以
baidu.下面是百度百科中的定义.
一般情况下,源程序中所有的行都参加编译。但有时希望对其中一部分内容只在满足一定条件下才进行编译,即对一部分内容指定编译条件,这就是“条件编译”(conditional compile)
条件编译一般用来控制同一个项目的多个版本,如游戏中,上不同平台的版本需要实现不同的平台接口.条件编译可以在一个项目方便的控制版本的同时不增加编译后的程序文件大小(这对
web 游戏很重要,第一次加载的速度越快,则可能完成游戏新手引导的人会越多.),同时还不损耗程序的性能.
具体的实现方式见下面的示例代码:代码中有很详细的注释,在FB中建个项目试一下就知道了.
package
{
import flash.display.Sprite;
import flash.text.TextField;
/**
* 条件编译演示(在多版本控制中比较好用,比如下面指定的"中文版","日文版","英文版".在项目中也可以用来控制 web 版和 pad 版)
* <p>编译后的代码量不会增加,因它是编译时进行处理的.<b>所谓的条件编译是指:<font color="#ff0000">根据指定的条件:选择性的编译其中的某一部分</font></b></p>
* <p>需要在项目的编译选项中附加如下编译常量:</p>
* <listing version="3.0">
* -define=CONFIG::CHINESE,false
* -define=CONFIG::JAPANESE,false
* -define=CONFIG::ENGLISH,true
* </listing>
* 编译选项的设置:
* <table>
* <tr>
* <td>flash builder</td><td>选择要进行设置的项目 -> 右击 -> 选择"属性" -> 选择"ActionScript编译器" -> "附加的编译器参数"中指定</td>
* </tr>
* <tr>
* <td colspan="2">其它的参见:<a href="http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_21.html">http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_21.html</a></td>
* </tr>
* @author blank
*
*/
public class conditionCompile extends Sprite
{
/**
* 名字
* @return
*
*/
private function get pName():String{
CONFIG::CHINESE{
return "小明";
}
CONFIG::JAPANESE{
return "梅川库子";
}
CONFIG::ENGLISH{
return "鸡姆";
}
}
/**
* 国籍
* @return
*/
CONFIG::CHINESE{
private function get nationality():String{
return "中国"
}
}
CONFIG::JAPANESE{
private function get nationality():String{
return "日本"
}
}
CONFIG::ENGLISH{
private function get nationality():String{
return "英国"
}
}
public function conditionCompile()
{
var txf:TextField=new TextField();
txf.text="名字:" + pName + "\n" +
"国籍:" + nationality;
txf.width=txf.textWidth + 4;
txf.height=txf.textHeight + 4;
addChild(txf);
}
}
}
复制代码
baidu.下面是百度百科中的定义.
一般情况下,源程序中所有的行都参加编译。但有时希望对其中一部分内容只在满足一定条件下才进行编译,即对一部分内容指定编译条件,这就是“条件编译”(conditional compile)
条件编译一般用来控制同一个项目的多个版本,如游戏中,上不同平台的版本需要实现不同的平台接口.条件编译可以在一个项目方便的控制版本的同时不增加编译后的程序文件大小(这对
web 游戏很重要,第一次加载的速度越快,则可能完成游戏新手引导的人会越多.),同时还不损耗程序的性能.
具体的实现方式见下面的示例代码:代码中有很详细的注释,在FB中建个项目试一下就知道了.
package
{
import flash.display.Sprite;
import flash.text.TextField;
/**
* 条件编译演示(在多版本控制中比较好用,比如下面指定的"中文版","日文版","英文版".在项目中也可以用来控制 web 版和 pad 版)
* <p>编译后的代码量不会增加,因它是编译时进行处理的.<b>所谓的条件编译是指:<font color="#ff0000">根据指定的条件:选择性的编译其中的某一部分</font></b></p>
* <p>需要在项目的编译选项中附加如下编译常量:</p>
* <listing version="3.0">
* -define=CONFIG::CHINESE,false
* -define=CONFIG::JAPANESE,false
* -define=CONFIG::ENGLISH,true
* </listing>
* 编译选项的设置:
* <table>
* <tr>
* <td>flash builder</td><td>选择要进行设置的项目 -> 右击 -> 选择"属性" -> 选择"ActionScript编译器" -> "附加的编译器参数"中指定</td>
* </tr>
* <tr>
* <td colspan="2">其它的参见:<a href="http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_21.html">http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_21.html</a></td>
* </tr>
* @author blank
*
*/
public class conditionCompile extends Sprite
{
/**
* 名字
* @return
*
*/
private function get pName():String{
CONFIG::CHINESE{
return "小明";
}
CONFIG::JAPANESE{
return "梅川库子";
}
CONFIG::ENGLISH{
return "鸡姆";
}
}
/**
* 国籍
* @return
*/
CONFIG::CHINESE{
private function get nationality():String{
return "中国"
}
}
CONFIG::JAPANESE{
private function get nationality():String{
return "日本"
}
}
CONFIG::ENGLISH{
private function get nationality():String{
return "英国"
}
}
public function conditionCompile()
{
var txf:TextField=new TextField();
txf.text="名字:" + pName + "\n" +
"国籍:" + nationality;
txf.width=txf.textWidth + 4;
txf.height=txf.textHeight + 4;
addChild(txf);
}
}
}
复制代码
相关文章推荐
- AS3中的条件编译
- FB AS3 中,使用条件编译,实现debug、release的代码分离编译。
- AS3 条件编译
- AS3中的条件编译,让您的项目能轻松的控制多个版本
- AS3中的条件编译
- AS3 条件编译
- [AIR] as3 之条件编译多平台妙用
- AS3 条件编译
- Object-c:预定义,条件编译,数组
- VC的条件编译,它有好多用处,主要有以下几点
- 4.19、C++条件编译
- C语言条件编译及编译预处理阶段
- VS设置多个条件编译符号
- 【黑马程序员】iOS学习之路——C语言之宏定义、条件编译和条件包含及typedef
- C++03、条件编译
- 条件编译
- 2014-03-13周四:ifndef条件编译和宏开关解析
- 关于c语言中的条件编译
- Delphi 的编译指令(3): 常用的预定义条件标识符
- 头文件之辨条件编译(二)