0

マスクされたビットマップをコピーする方法を見つける必要があります。ステージ上にビットマップがあり、マスクとして機能するユーザー描画のスプライトがあります。マスクされた領域のビットマップをキャプチャ/コピーし、マスキングによって作成された透明度を維持して、最終的にpngとしてエンコードする必要があります。

copyPixels()やその他の指示を使用してこれを実現する方法に関するドキュメントは見つかりませんでした。

助けてくれてありがとう-

b

4

1 に答える 1

1

私はうまくいくように見える簡単なテストを行いました:

var square:Sprite = new Sprite();
var circle:Sprite = new Sprite();
var holder:Sprite = new Sprite();

square.graphics.beginFill(0,.5);
square.graphics.drawRect(0,0,100,100);
square.graphics.endFill();

circle.graphics.beginFill(0);
circle.graphics.drawCircle(0,0,50);
circle.graphics.endFill();

addChild(holder);
holder.addChild(square);
holder.addChild(circle);
square.mask = circle;

var cloneData:BitmapData = new BitmapData(holder.width,holder.height,true,0x00FFFFFF);
cloneData.draw(holder);
var clone:Bitmap = new Bitmap(cloneData);
addChild(clone);
clone.x = 30;

BitmapDataを作成し、draw()メソッドを使用してクローンを作成しています。重要なのは、BitmapDataコンストラクターの最後の2つの引数のようです。holder.widthとholder.heightを渡した後、bitmapDataを透明(true)にし、ARGB(alpha-red-green-blue)で塗りつぶしを透明な白(0x00FFFFFF)にすることを指定します。

お役に立てれば :)

于 2010-01-07T00:21:33.177 に答える