我在编程上生气,并不理解内部加载和外部加载之间的区别。使用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;
}
}
答案 0 :(得分:3)
何时添加任何资源(意味着)MovieClip / Image作为* .Fla文件的设计时Flash库的一部分。它被称为内部资产。
如果要使用ActionScript从Swf文件外部加载编译swf中的任何内容,则称为外部资源。
内部资产: 1.它将在Fla文件编译时编译。 2.你的swf文件与外部资产相比变得很大。 3.与外部资产比较,初始加载时间会很长。
对于外部资产: 1.在Fla文件编译时不会编译它。 2.你的swf文件与内部资产相比变得很小。 3.与内部资产比较,初始加载时间会很短。