AS3:加载外部资产和内部资产有什么区别?

时间:2011-12-06 10:47:16

标签: actionscript-3

我在编程上生气,并不理解内部加载和外部加载之间的区别。使用Flash Develop制作的游戏,我的所有资产都将放在包中。它们不是很多(20个图像和小型mp3~2 MB)。使用下面的代码加载我的资产有什么问题?或者为什么我必须使用等待计时器创建一个URL加载器?任何意见将不胜感激。

public class ImageLoader 
{       
    private var alImages:Array = new Array;     

    public function ImageLoader() 
    {
        [Embed(source = "../lib/greenbutton.png")] 
        var imgGreenButton:Class;
        alImages.push(["imgGreenButton", imgGreenButton]);

        [Embed(source = "../lib/tray.jpg")]
        var imgTray:Class;
        alImages.push(["imgTray", imgTray]);    

    }

    public function getBitmap (search:String):Bitmap {          

        // Create Cyan square for load fails
        var tempData:BitmapData = new BitmapData(40, 40, false, 0x000FFFF);
        var tempBitmap:Bitmap = new Bitmap (tempData);

        for (var i:int = 0; i < alImages.length; i++) {         
            if (alImages[i][0] == search) {             
                tempBitmap = new alImages[i][1];                    
            }
        }
        return tempBitmap;
    }
}

1 个答案:

答案 0 :(得分:3)

何时添加任何资源(意味着)MovieClip / Image作为* .Fla文件的设计时Flash库的一部分。它被称为内部资产。

如果要使用ActionScript从Swf文件外部加载编译swf中的任何内容,则称为外部资源。

内部资产: 1.它将在Fla文件编译时编译。 2.你的swf文件与外部资产相比变得很大。 3.与外部资产比较,初始加载时间会很长。

对于外部资产: 1.在Fla文件编译时不会编译它。 2.你的swf文件与内部资产相比变得很小。 3.与内部资产比较,初始加载时间会很短。