问题
i would like to know what is the more practical way to embed many images using actionscript. Firstly, i don't want to download an image every time from the server, and then, i would like to change the number of images and/or their names. What do you propose for these requirements?
ps: I have been alerted for the Embed tag but it seems a little inconvenient in its use as you have to declare a new class for each asset and instantiate the class separately.
回答1:
Met the problem above, the solution I use is a little straightforward, but simple. You write a batch file (.cmd) that goes through a directory, generating as3 code, then it runs the compiler to create .swf.
it looks something like this:
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%
it generates something like:
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;
}
}
回答2:
If you want to embed images, then you need to use the Embed tag, and the image files will be added to the builded swf. I do not understand how you want to have images embeded but load them from server or change their names? Once they are embeded you cannot rename or unload them. They will act like a hardcoded static variable.
If you want to dynamically load them from server then you just pass the url of the image to a mx:IMAGE source and there you have it...
来源:https://stackoverflow.com/questions/3908929/how-to-embed-a-lot-of-images-using-actionscript-3