Actionscript 3 如何使用Actionscript 3嵌入大量图像
我想知道使用actionscript嵌入许多图像的更实际的方法是什么。首先,我不想每次都从服务器下载一个图像,然后,我想更改图像的数量和/或名称。您对这些要求有何建议Actionscript 3 如何使用Actionscript 3嵌入大量图像,actionscript-3,flex4,flash-cs4,Actionscript 3,Flex4,Flash Cs4,我想知道使用actionscript嵌入许多图像的更实际的方法是什么。首先,我不想每次都从服务器下载一个图像,然后,我想更改图像的数量和/或名称。您对这些要求有何建议 ps:我已经收到了嵌入标记的警告,但它的使用似乎有点不方便,因为您必须为每个资产声明一个新类并分别实例化该类。如果您想嵌入图像,那么您需要使用嵌入标记,并且图像文件将添加到构建的swf中。我不明白你想如何嵌入图像,但从服务器加载它们或更改它们的名称?一旦它们被嵌入,您就无法重命名或卸载它们。它们将像硬编码的静态变量一样工作 如果您
ps:我已经收到了嵌入标记的警告,但它的使用似乎有点不方便,因为您必须为每个资产声明一个新类并分别实例化该类。如果您想嵌入图像,那么您需要使用嵌入标记,并且图像文件将添加到构建的swf中。我不明白你想如何嵌入图像,但从服务器加载它们或更改它们的名称?一旦它们被嵌入,您就无法重命名或卸载它们。它们将像硬编码的静态变量一样工作
如果您想从服务器动态加载它们,那么您只需将图像的url传递到mx:image源,就可以了…如果您想嵌入图像,那么您需要使用嵌入标记,图像文件将添加到构建的swf中。我不明白你想如何嵌入图像,但从服务器加载它们或更改它们的名称?一旦它们被嵌入,您就无法重命名或卸载它们。它们将像硬编码的静态变量一样工作
如果您想从服务器动态加载它们,那么只需将图像的url传递到mx:image源,就可以了……遇到上述问题,我使用的解决方案有点简单,但简单。您编写一个批处理文件(.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;
}
}
遇到上述问题,我使用的解决方案有点简单明了。您编写一个批处理文件(.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;
}
}
对不起,我的英语让人困惑。我做了一个引擎,根据一些规格,每次都会产生不同的swf。我的意思是,有时我必须用不同的图形来支持引擎。因此,在swf的每个新建筑之前,我必须修改很多包含图形的文件夹。我读了你对这条线索的回答:但我无法复制!你能举个例子吗?也可以给我看fzip方法吗?具体来说,我不明白你说的:myImage.source=Resource.SHIPS_1;关于线程中提供的示例,以及如何将MyZip:类实例化的嵌入的zip传递给FZip构造函数?那么我恐怕这是不可能的。。。至少我没有;我不知道实现它的方法(对不起!对不起,我的英语让人困惑。我做了一个引擎,根据一些规范,每次都会产生不同的swf。我的意思是,偶尔我必须用不同的图形来支持引擎。因此,在swf的每个新建筑之前,我将不得不修改很多包含图形的文件夹。我是说d你对此线程的回答:但我无法复制!你可以做一个例子吗?也可以给我展示fzip方法吗?具体来说,我不明白你所说的:myImage.source=Resource.SHIPS_1;与线程中呈现的示例有关,以及我如何传递嵌入的即时zip被MyZip:类延迟到FZip构造函数?那么我恐怕这是不可能的…至少我不知道实现它的方法。:(对不起!