对不起,我确信在互联网上我的问题有很多答案,但我不知道在我的搜索中有什么特定的编程。
好的,这是我的问题。让我们来看看这个例子,这很简单:
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]
但是,如果我试图将它交给另一个对象,它的发生方式对我来说没有意义。这就像我的对象在内存中为Bitmap而不是位图本身提供引用。所以看起来我有两个对我的位图的引用。我的所有应用程序都基于这些对象,我真的需要一种方法来获取我的位图副本而不仅仅是对它的引用。所以我想更改这些属性而不必在我的对象中更改它们。
答案 0 :(得分:2)
试试这个:
private function bmpCopy(srcBmp:Bitmap):Bitmap{
return new Bitmap(srcBmp.bitmapData.clone());
}
//in your code somewhere...
bit2 = bmpCopy(bit1);
你完全记得在使用它们时释放两个位图。