1

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

IE。转换这个:

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

变成类似的东西:

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

其中 CONFIG::gfx_path 是 'mypath/'

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

谢谢!

4

1 回答 1

0

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

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

您不能在编译时执行运行时代码,反之亦然。所有嵌入必须在编译时显式定义才能成功。这可能很痛苦,但应用程序必须在编译之前确切知道要嵌入什么。这就是嵌入的全部意义所在。

于 2012-11-02T16:22:46.257 回答