2010-01-24 28 views
1

我正在通過加載程序類加載圖形。現在我需要將它用作原始圖像和該圖像的縮略圖。唉,在AS3中沒有「duplicateMovieClip」或其他類似的東西在Flash中複製導入的圖形

如果我將它添加到普通視圖,然後縮略圖只顯示縮略圖,反之亦然。

我爲此谷歌和發現了幾個在線解決方案,但他們都似乎與庫中的圖像工作,而不是從服務器加載。

那麼,如何做到這一點,而不必加載圖像兩次?

回答

3

如果只是在談論位圖圖像,最簡單的事情就是將BitmapData與另一個Bitmap實例共享。請看下圖:

var existingBitmap:Bitmap; //which you have from the loader 
var thumbNail:Bitmap = new Bitmpap(existingBitmap.bitmapData); 

thumbNail.witdth = 64; 
thumbNail.height = 64; 

addChild(thumbNail); 

由於您使用的是裝載程序,你可以訪問你在外部通過content屬性加載的位圖圖像。

var existingBitmap:Bitmap = myLoader.content; 
2

根據你需要用它做什麼,你有三種選擇。

  1. 重新加載它。到目前爲止,最簡單的方法是無論如何都要進行緩存,因此您不需要再次訪問服務器。
  2. 使用BitmapData.draw()。創建一個位圖數據並繪製你的加載器,也很容易,但你不能做任何動畫,而不必重繪。
  3. 加載它並將你的圖形類(僅適用於.swf)加以分類並使用它來實例化副本。看看getDefinitionByName。這有點棘手,因爲你處在沙盒的擺佈之中,但它也是最合適的方式。