【发布时间】:2011-04-23 23:05:46
【问题描述】:
我想知道使用 actionscript 嵌入许多图像的更实用的方法是什么。首先,我不想每次都从服务器下载图像,然后,我想更改图像的数量和/或它们的名称。您对这些要求有何建议?
ps:我收到了 Embed 标签的警告,但它的使用似乎有点不方便,因为您必须为每个资产声明一个新类并分别实例化该类。
【问题讨论】:
标签: actionscript-3 flex4 flash-cs4
我想知道使用 actionscript 嵌入许多图像的更实用的方法是什么。首先,我不想每次都从服务器下载图像,然后,我想更改图像的数量和/或它们的名称。您对这些要求有何建议?
ps:我收到了 Embed 标签的警告,但它的使用似乎有点不方便,因为您必须为每个资产声明一个新类并分别实例化该类。
【问题讨论】:
标签: actionscript-3 flex4 flash-cs4
遇到了上面的问题,我使用的解决方案有点直截了当,但是很简单。你编写一个批处理文件 (.cmd),它通过一个目录,生成 as3 代码,然后它运行编译器来创建 .swf。
看起来像这样:
set target=a.as
@echo package { >%target%
@echo import flash.display.Sprite; >>%target%
@echo import flash.system.Security; >>%target%
@echo public class %classname% extends Sprite{ >>%target%
@echo Security.allowDomain('*'); >>%target%
for %%a in (*.png) do @echo [Embed("%%~na.png")] public var %1_%%~na: Class; >>%target%
@echo } >>%target%
@echo } >>%target%
它会生成类似的东西:
package {
import flash.display.Sprite;
import flash.system.Security;
public class extends Sprite{
Security.allowDomain('*');
[Embed("a.png")] public var _beauty_nails: Class;
[Embed("b.png")] public var _club_dance: Class;
[Embed("c.png")] public var _club_date: Class;
}
}
【讨论】:
如果要嵌入图片,则需要使用 Embed 标签,图片文件会被添加到构建好的 swf 中。我不明白您希望如何嵌入图像但从服务器加载它们或更改它们的名称?嵌入它们后,您将无法重命名或卸载它们。它们的行为就像一个硬编码的静态变量。
如果您想从服务器动态加载它们,那么您只需将图像的 url 传递给 mx:IMAGE 源就可以了...
【讨论】: