在编译时在swf中注入数据

时间:2010-11-29 14:00:34

标签: flex actionscript-3 bytecode mxmlc

是否可以在编译时在swf中注入数据,例如资产集合(视频,图像......)?

我们有一个flex应用程序需要能够在运行时导出包含所有必要数据的swf,因为它需要作为独立应用程序运行(在线和离线)。

到目前为止,我们的想法是创建一个服务器端脚本,该脚本调用flex编译器并为其提供所需的数据。这种方法似乎使用单个文件的[Embed]标签可以正常工作,但是当尝试为每个导出的swf注入长度不同的数据集时,它会变得很麻烦。

我们可以为每个资产生成一个带有一个嵌入变量的mxml文件,并在编译时将其包含在内,但这种方法似乎是理想的。

我们已经查看了一些actionscript字节码库,但那些似乎不适合这个。

针对此类问题的任何建议或其他方法?

THX,

伯特

4 个答案:

答案 0 :(得分:3)

[Embed]绝对是最佳选择。您可以生成具有大量嵌入的AS文件。虽然生成的代码可能有点难看,但您也可以生成更好的API。例如,如果您想要一个数组,请生成如下代码:

[Embed(...)]
private var img_0:Class;

[Embed(...)]
private var img_1:Class;

[Embed(...)]
private var img_2:Class;

public var images:Array = [img_0, img_1, img_2];

这样唯一的丑陋是私有变量只有代码生成器会看到。公共变量是一个数组。

答案 1 :(得分:0)

我不确定你为什么要这样做,但我想我会尝试从模板或类似的东西生成所需的actionscript文件,然后调用flex编译器。 希望这有助于你...

答案 2 :(得分:0)

尝试as3swf它可以从空ByteArray生成一个swf文件,并且可以在那里插入嵌入图形

答案 3 :(得分:0)

像萨姆说的那样,[嵌入]可以工作,但是你想要加载什么?我的第一反应是对每个请求进行重新编译会对服务器产生很大的影响。