有没有办法在Actionscript 3的编译期间从配置文件中设置private static const
标识符的值?在编译期间可以从配置文件设置常量值吗?
另外,如果我可以在mxmlc ANT任务中执行此操作,那将会很好。
有没有办法在Actionscript 3的编译期间从配置文件中设置private static const
标识符的值?在编译期间可以从配置文件设置常量值吗?
另外,如果我可以在mxmlc ANT任务中执行此操作,那将会很好。
找到了解决自己 - 条件编译
http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_21.html
这是你的动作做什么 -
private static const CONST_PARAM:String = CONFIG::CONST_VALUE;
而且你mxmlc的命令/任务需要使用-define
选项来定义参数。
对于ANT预编译,你可以把你的目标的元素:
<replaceregexp
file="yourFile.as"
match="private static const CONST_PARAM:String = '.*';"
replace="private static const CONST_PARAM:String = 'Your new const value';">
</replaceregexp>
如果你想要一个独特的建造时间每次编译时这是非常有用的。在您的ANT预编译:
<tstamp>
<format property="timestamp" pattern="MM/dd/yyyy hh:mm:ss" />
</tstamp>
<replaceregexp
file="../src/Main.as"
match="private const BUILD_TIME:String = '.*';"
replace="private const BUILD_TIME:String = '${timestamp}';">
</replaceregexp>
在Main.as类
然后:
package Main{
import flash.display.Sprite;
public class Main extends Sprite{
private const BUILD_TIME:String = 'dummy value';
public function Main() {
trace("\n Main.as build-time:" + BUILD_TIME);
}
}
}
它有助于解决您的SWF意外行为,因为它没有更新的常见问题登台服务器。