0

私のクラスでは、対応するBitmapDataオブジェクトを使用してビットマップを作成しました。

クラスメンバー

private var _bitmapData:BitmapData;
private var _bitmap:Bitmap;
private var _history:Array;

コンストラクタ:

_history = new Array();
_bitmapData = new BitmapData(50, 50, true, 0x00FFFFFF);
_bitmap = new Bitmap(_bitmapData);
this.addChild(_bitmap);

「modifyImage」関数で、_bitmapDataを変更したいと思います。ただし、コメントアウトされた行を含めない限り、これは機能しません。

//removeChild(this._bitmap);
_history.push(_bitmapData.clone());
_bitmapData.draw(item); // "item" passed by value
//this.addChild(_bitmap);

変更を元に戻すには、次を使用します(ここでも、_bitmapを削除してステージに追加する必要があります)。

//removeChild(this._bitmap);
_bitmapData = _history.pop();
_bitmap = new Bitmap(_bitmapData); // [EDIT]: out-commented this by mistake
//this.addChild(_bitmap);

_bitmapを何度も削除および追加する回避策はありますか?

ヘルプは大歓迎です。前もって感謝します!

4

1 に答える 1

5

ビットマップにbitmapDataを設定するだけです。例えば:

_bitmapData = _history.pop();  
_bitmap.bitmapData = _bitmapData;

お役に立てば幸いです。

于 2011-03-29T03:20:08.597 に答える