Flash AS3.0載入外部資源(圖片、MP3、SWF)的兩種方式
關於AS3載入圖片等外部自言,大部分人常用的有兩種方式:Loader 和Embed ,各自的特點,總結如下:
Embed :在Flash編譯階段就將資源嵌入,也就是說圖片資源是會被編譯進swf檔案裡面去的;這樣子的好處是程式碼比較簡潔,使用方便,也不存在載入順序的問題,缺點是會增大swf檔案的體積
Loader:在Flash執行階段動態載入資源,這種方式不會影響swf檔案的體積,而且可以很靈活地更改你要載入的資源,但是有可能會遇到路徑更改或者跨域問題,同時,過多地使用Loader去動態載入無疑會加重伺服器負擔,因此需要和Embed權衡使用
書寫例子:
Embed:
[Emberd(source = "../asset/images/closeBtn.png")]
private var closeBtnImage:Class;//需要嵌入的圖片物件
private var btnSprite:Sprite = new Sprite();
private function test(){
var bmp:Bitmap = new closeBtnImage();
btnSprite.addChild(bmp);
}
Loader:
private function addItem():void{
var loader:Loader = new Loader();
loader.load(new URLRequest("http://zhufei.de/something.png"));
loader.contentInfo.addEventListener(Event.COMPLETE,loadComplete);
}
//監聽到Loader載入完畢以後執行的函式
private function loadComplete(e:Event){
var l:Loader = Loader(e.target.loader); //得到Loader物件
var bm:Bitmap = Bitmap(l.content);//Loader裡面的內容
}