Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何使用Actionscript 3嵌入大量图像_Actionscript 3_Flex4_Flash Cs4 - Fatal编程技术网

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

Actionscript 3 如何使用Actionscript 3嵌入大量图像,actionscript-3,flex4,flash-cs4,Actionscript 3,Flex4,Flash Cs4,我想知道使用actionscript嵌入许多图像的更实际的方法是什么。首先,我不想每次都从服务器下载一个图像,然后,我想更改图像的数量和/或名称。您对这些要求有何建议 ps:我已经收到了嵌入标记的警告,但它的使用似乎有点不方便,因为您必须为每个资产声明一个新类并分别实例化该类。如果您想嵌入图像,那么您需要使用嵌入标记,并且图像文件将添加到构建的swf中。我不明白你想如何嵌入图像,但从服务器加载它们或更改它们的名称?一旦它们被嵌入,您就无法重命名或卸载它们。它们将像硬编码的静态变量一样工作 如果您

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


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构造函数?那么我恐怕这是不可能的…至少我不知道实现它的方法。:(对不起!