0
對不起,我確定我的問題在互聯網上有很多答案,但我不知道足夠的編程在我的搜索中具體。一個對象給另一個對象,不僅僅是對它的引用
好的,所以這是我的問題。讓我們來看看這個例子,這很簡單:
var obj:Object = new Object;
var bit:Bitmap = new Bitmap;
obj["key"] = bit;
obj["key"].x = 30;
trace(obj["key"].x); //30.
var bit2:Bitmap;
bit2 = obj["key"];
trace (bit2.x); //30.
bit2.x = 60;
trace(bit2.x) //60.
trace(obj["key"].x); //60 ???
所有我想要做的是股票在一個對象的位圖。而這部分是好的
trace(obj["key"]); // [Object Bitmap]
但是,如果我嘗試把這個交給另一個對象,發生它沒有任何意義,我的方式。這就像我的對象在內存中爲位圖提供了參考,而不是位圖本身。所以看起來我有兩個對我的位圖的引用。我的所有應用程序都基於這些對象,而且我真的需要一種方法來獲取我的位圖的副本,而不僅僅是對它的引用。所以我想改變這些屬性而不必在我的對象中改變它們。
非常感謝,確實有效。即使困難,我仍然不太明白。但那很好,我以爲我用了一種錯誤的方式。 – Inexo 2013-03-08 22:55:08
只有當你調用'new'時,你才能得到任何一種新的對象。將您創建的對象的值分配給另一個變量時,實際上不會創建一個新的變量。 bmpCopy方法爲你調用new,而srcBmp.bitmapData.clone()是實際數據被複制並傳遞到Bitmap構造函數的地方。現在您有兩個具有相同像素數據的位圖。 – mfa 2013-03-08 22:56:09
非常感謝,我明白了。 – Inexo 2013-03-08 23:28:43