3
我在編程上很生疏,不理解內部和外部加載的區別。通過使用Flash Develop製作的遊戲,我的所有資產都將包含在該包中。沒有很多(20張圖片和小mp3〜2 MB)。使用下面的代碼加載我的資產有什麼問題?或者爲什麼我必須創建一個帶有等待計時器的URL加載器?任何意見將不勝感激。AS3:加載外部和內部資產有什麼區別?
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;
}
}
我不知道我是否理解你的問題:)。在這個例子中你沒有加載你的資產。你在嵌入它們(這意味着它們在編譯時被編譯到你的swf中,並直接從你的代碼中訪問)。要加載外部資產,您需要創建Loader類實例,創建URLRequest對象等等,然後您需要實現一些事件處理程序。至於你的代碼 - 使用Dictionary而不是Array來存儲位圖。字典會讓你直接訪問位圖,而不是遍歷所有項目。 – ncreated
感謝rincewind。我會看一下字典。 – Darrin