在过去,有一个简单的技巧,通过在flex makefile中添加以下行来包含flash-cs4 mxmlc
模块:
-include-libraries “/absolute/path/to/my/assets/assets.swc”
这使您能够使用getDefinitionByName
,一个辅助函数来访问嵌入的swc
资产库(而不是创建手写类的所有资产)。
不幸的是,自flash-cs4以来,已停止工作。有人知道另一种解决方案吗?
答案 0 :(得分:4)
不幸的是,我发现的唯一解决方法是在代码中的某处明确引用每个资产类。您可以创建这样的虚拟类:
public class AssetsExporter extends Sprite
{
public static function export()
{
AssetClass1;
AssetClass2;
//etc
trace( "DEBUG AssetsExporter.export()" );
}
}
在Flash IDE中将此类指定为Document类,因此它将被编译为生成的swc。然后在您的应用程序调用的主代码中
AssetsExporter.export();
执行此操作后,您将能够使用getDefinitionByName()。
答案 1 :(得分:1)
您可以在发布设置中将它们添加到库中。
(来自http://wiki.gigya.com/的图片来自Google图片)
顺便说一句,如果你使用SWC文件,你也可以
new somepackage.SomeClass();
而不是
new getDefinitionByName("somepackage.SomeClass")
适用的地方。这是因为SWC文件包含在编译时,而不是运行时。
答案 2 :(得分:0)
即使您可以手动更改编译器设置,如果您使用FlashDevelop也很容易,因为这很容易修复。
右键单击项目列表中包含的swc。选择选项,然后“包含库(完整库)”。
..您现在可以使用getDefinitionByName从swc文件中获取未引用的类。