0

フレックスでビットマップを描画しようとしています。元のビットマップは

ここに画像の説明を入力してください

しかし、実際にはアプリに表示されるのは次のようになります

ここに画像の説明を入力してください

コードは次のとおりです。

this.component.graphics.beginBitmapFill(leakBitmapData);
this.component.graphics.drawRect(leakPoint.x-halfWidth,leakPoint.y-halfHeight,leakBitmapData.width,leakBitmapData.height);
this.component.graphics.endFill();

(0,0)で四角形を描画した場合にのみ、正しく表示されます。なんで?

4

2 に答える 2

4

原点の外側に何かを描画する場合は、BitmapDataでマトリックス変換を行う必要があります。このようなもの:

var px:int = leakPoint.x - halfWidth;
var py:int = leakPoint.y - halfHeight;
var translationMatrix:Matrix = new Matrix;
translationMatrix.tx = px;
translationMatrix.ty = py;

this.component.graphics.beginBitmapFill(leakBitmapData, translationMatrix);
this.component.graphics.drawRect(px, py, leakBitmapData.width, leakBitmapData.height);
this.component.graphics.endFill();
于 2012-05-04T08:30:38.650 に答える
2

「leakBitmapData」は、コードによって生成されるか、アプリケーションにロードされるビットマップデータであると想定しました。

this.component.graphics.beginBitmapFill(leakBitmapData, null, true, false);
this.component.graphics.drawRect(0,0, leakBitmapData.width, leakBitmapData.height);
this.component.graphics.endFill();

this.component.x = -(leakBitmapData.width/2);
this.component.y = -(leakBitmapData.height/2);
于 2012-05-04T07:03:05.773 に答える