private function loadImage(url:String,movie:*):void<br />{<br />var loader:Loader=new Loader();<br />if (movie is flash.display.MovieClip || movie is flash.display.Sprite)<br />{<br />movie.addChild(loader);<br />}<br />else<br />{<br />throw new Error("類型不正確");<br />}<br />loader.load(new URLRequest(url));<br />loader.contentLoaderInfo.addEventListener(Event.COMPLETE,finish);<br />loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgress);<br />loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioError);<br />}<br />private function loadImage2(url:String,movie:*):void<br />{</p><p>if (movie is flash.display.MovieClip || movie is flash.display.Sprite)<br />{<br />movie.addChild(loader2);<br />}<br />else<br />{<br />throw new Error("類型不正確");<br />}<br />loader2.load(new URLRequest(url));<br />loader2.contentLoaderInfo.addEventListener(Event.COMPLETE,finish);<br />loader2.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgress);<br />loader2.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioError);<br />}<br />private function finish(event:Event):void<br />{<br />trace("www");<br />}<br />private function onProgress(event:ProgressEvent):void<br />{<br />//target.percent.text=Math.floor(event.bytesLoaded / event.bytesTotal * 100).toString();<br />}<br />private function ioError(event:IOErrorEvent):void<br />{<br />trace("出錯了");<br />}
private var loader2:Loader=new Loader();
有時候,我們希望外部進行圖片載入,並顯示在我們的已經設計好的容器當中。有時候,可以結合到xml技巧來進行圖片設計
當我們需要進行外部載入的時候,希望擷取到圖片來源並且裝載到容器裡面,這時候,可以通過上面代碼的方式進行設計。
然而,flash+xml設計應用當中,對xml內容進行分頁,上翻下翻都是一件常見的事情。
如果採用loadImage()第一種方式,則會每次在切換圖片的時候,都會重新建立一個容器,這樣會對記憶體進行消耗。
如果採用loadImage2()第二種方式,則會每次在切換圖片的時候,只是會載入一張,但是對於多張圖片的情況下,就突出部到作用,採用第一種方式會湊效的。
//這種是帶路徑和容器指定設計,這樣就可以順利將圖片裝入指定的容器裡面了,但是問題是如果使用loadimage第一種方式載入,每次載入的時候,建立新的記憶體空間,圖形還依然保留在記憶體當中。沒有清理掉,也就是說每次都會建立新的容器。記憶體也會消耗
下面就是最近參考一些源檔案重新寫的東西:
裡面的圖片是外部進行載入。文字也是一樣保留在xml裡面去
遇到的問題:
在設計的期間,很不幸遇告訴自己採用unload方法,並不合適去關閉上一張的圖片內容,每次希望搜素下一個節點的時候,出現一些bug。原先的圖片依然保留在記憶體當中,並沒有得到釋放。這是採取上面的方圖片出現的問題。