0

Flex では、ビットマップのデータが変更された (ピクセルが変更された、またはフィルターが追加された) たびに関数に通知されるように、ビットマップまたはビットマップデータ変数にどのようにフックしますか?

バインディングを設定しようとしましたが、うまくいきません。

'source' 属性を介して mx:Image をビットマップにバインドでき、ビットマップを変更すると表示される画像が常に更新されるため、それを行う方法が必要です。フレックスはどのように行うのですか?フレームごとにやみくもにビットマップを再描画しますか、それともスマートでビットマップが変更されたときにのみ再描画しますか? もしそうなら、ビットマップがいつ変更されたかをどのように知るのですか?

4

1 に答える 1

0

これは、ある程度の知識に基づいた推測であり、その背後にあるテストは行われていないため、多少の誤解を招く可能性があります.

Flex が の source 属性をバインドするとImage、 の値.sourceは 型になりBitmapAssetます。

BitmapAsset問題のビットマップへの参照である.bitmapDataプロパティがあります。

Flex によって行われるバインディングは、その.bitmapDataプロパティに反していると思います。

それができない理由もわかりません。BitmapAssetただし、インスタンスを作成BitmapDataし、タブを保持したいオブジェクトを設定して.bitmapDataから、オブジェクトのプロパティにバインドする必要があるため、少し循環的な作業を行う必要があると思いBitmapAssetます。

のインスタンスである「bitmapData」と呼ばれる変数を想定するBitmapDataと、次のように動作するはずです。

var bitmapAsset:BitmapAsset = new BitmapAsset(bitmapData);

var bitmapDataChangeWatcher:ChangeWatcher = BindingUtils.bindSetter(handleChangeToBitmapData, bitmapAsset, "bitmapData");

private function handleChangeToBitmapData(data:BitmapData):void
{
    // Handle change to the bitmap data
}
于 2010-09-29T19:09:59.930 に答える