2013-01-21 47 views
0

我有多個動態創建的圖像,並且我希望在某些情況下更改圖像。我可以將它們保存在一個數組中,但是如何通過從數組中獲取它來更改圖像(加載另一個圖像)。 讓我們說,我有一個數組:修改保存在數組中的動態創建對象

var ImagesArray:Array = []; 

,我推到它裝載機對象,並且要改變(加載新)ImagesArray的圖像[0]或​​ImagesArray [1] ...這樣的:

var loaderNew:Loader = new Loader(); 
loaderNew = ImagesArray[i]; 
loaderNew.load(new URLRequest("../lib/NewImg.png")); 

感謝,

+0

你是一個有點困惑AS3。在第二個塊中,您將一個** new ** Loader分配給'loaderNew',然後用'ImagesArray'中的一個覆蓋該對象。什麼'ImagesArray'包含? – Teejay

+0

我希望第二行應該讀'ImagesArray [i] = loaderNew;' – Vesper

+0

然後,我不明白哪個是它的問題... – Teejay

回答

0

你不需要建立新的裝載機如果只想改變自己的形象,這裏的功能相關的例子來更新圖像網址:

private function changeImageByIndex(i:int, url:String):void  
{ 
    var loader:Loader = ImagesArray[i] as Loader; 
    if (!loader) 
    { 
     loader = new Loader(); 
     addChild(loader);  
     ImagesArray[i] = loader; 
    } 
    loader.load(new URLRequest(url)); 
} 

如果有位圖,使用loadBytes()方法,而不是負載(),這裏的例子:

var bitmap:Bitmap = new Bitmap(new BitmapData(100, 100, true, 0xff0000)); 
var encoder:JPEGEncoder = new JPEGEncoder(); 
loader.loadBytes(encoder.encode(bitmap.bitmapData)); 
+0

如果我有位圖,我可以更改圖像嗎? 謝謝, – user1386213

+0

是的,請參閱最新的答案。 –