AS3 / FlashDevelop - 在Embed中使用编译器常量

时间:2012-11-01 22:41:39

标签: actionscript-3 flex flashdevelop

我想使用编译器常量来修改某些嵌入文件的路径,这对于不同的项目(共享相同的源代码)是不同的

IE中。转换这个:

[Embed(source ='mypath / myfile.png')] public static const myimage:Class;

成像:

[Embed(source = CONFIG :: gfx_path +'myfile.png')] public static const myimage:Class;

其中CONFIG :: gfx_path是'mypath /'

问题是不编译它(错误:元数据无效)。实际上你甚至不能这样做:“mypath /”+“myfile.png”,因为它会给出同样的错误。

谢谢!

1 个答案:

答案 0 :(得分:0)

您不能在Embed标记(或任何元数据)中使用可执行代码。

Embed元数据标记(以及无数其他特定代码类型)在编译时执行。涉及变量/方法的普通代码在运行时执行。如果您不知道差异,则在构建项目时执行编译时代码,并且实际上是构建的一部分。运行时在应用程序运行时执行。

您无法在编译时执行运行时代码,反之亦然。必须在编译时明确定义所有嵌入,才能使它们成功。这可能很痛苦,但是应用程序必须确切知道在编译之前嵌入的内容。这就是嵌入的全部内容。