如何使用Actionscript 3嵌入大量图像

时间:2010-10-11 18:29:31

标签: actionscript-3 flex4 flash-cs4

我想知道使用actionscript嵌入许多图像的更实用的方法是什么。首先,我不想每次从服务器下载图像,然后,我想更改图像和/或其名称的数量。你对这些要求有什么建议?

ps:我已收到Embed标签的警告,但它的使用似乎有点不方便,因为您必须为每个资产声明一个新类并单独实例化该类。

2 个答案:

答案 0 :(得分:1)

遇到上面的问题,我使用的解决方案有点简单,但很简单。你编写一个批处理文件(.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; 
    } 
} 

答案 1 :(得分:0)

如果要嵌入图像,则需要使用Embed标记,图像文件将添加到构建的swf中。我不明白你想如何嵌入图像但是从服务器加载它们或更改它们的名字?嵌入后,您无法重命名或卸载它们。它们将像一个硬编码的静态变量。

如果您想从服务器动态加载它们,那么您只需将图像的网址传递给mx:IMAGE源,然后就可以了...