出自:http://www.cnblogs.com/top5/archive/2012/08/04/2623464.html
關于AS3加載圖檔等外部資源,我常用的有兩種方式:Loader和Embed,各自的特點,總結如下:
Embed:在Flash編譯階段就将資源嵌入,也就是說圖檔資源是會被編譯進swf檔案裡面去的;這樣子的好處是代碼比較簡潔,使用友善,也不存在加載順序的問題,缺點是會增大swf檔案的體積
Loader:在Flash運作階段動态加載資源,這種方式不會影響swf檔案的體積,而且可以很靈活地更改你要加載的資源,但是有可能會遇到路徑變更或者跨域問題,同時,過多地使用Loader去動态加載無疑會加重伺服器負擔,是以需要和Embed權衡使用
書寫的例子如下:
Embed:
[Embed(source = "../assets/images/closeBtn.png")]
private var closeBtnImage:Class //需要嵌入的圖檔對象
private var btnSprite:Sprite = new Sprite();
private function test():void {
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.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
//監聽到Loader加載完畢以後執行的函數
private function loadComplete(e:Event):void {
var l:Loader=Loader(e.target.loader);//得到Loader對象
var bm:Bitmap = Bitmap(l.content);//Loader裡面的内容
trace(l);
trace(bm);