Search code examples
actionscript-3flex4flash-cs4

How to embed a lot of images using Actionscript 3


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.


Solution

  • 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; 
        } 
    }