2017-04-21 9 views
1

spriteには、重複するshapeが含まれています。スプライト自体のアルファ値は.5に設定されているので、スプライトのblendmodeを "レイヤー"に設定して、重なっている部分が互いに見えないようにする必要があります。 hereから取得したこのスクリーンショットでは、右側のように見えます。AS3:アルファとblendmodeを含むBitmapData.drawの結果が正しくありません

enter image description here

は今、私は私のスプライトからdrawbitmapDataにしたいが、私は結果のビットマップは、右の画像のように見えるように取得することはできません。それは真ん中のイメージのように見える。

spriteBMD.draw(mySprite,null,mySprite.transform.colorTransform,"layer"); 

私が間違っていることを知っている人はいますか?

+0

ちょうど野生の推測。スプライトではなく、コンテナと描画コンテナに入れてみてください。 – Organis

答えて

1

私はそれがどのように働くか、とにかくここに根本的な原因についていくつかの考えを持っていますが、:

import flash.display.BitmapData; 
import flash.display.BlendMode; 
import flash.display.Bitmap; 
import flash.geom.ColorTransform; 

var bmd:BitmapData = new BitmapData(mc.width, mc.height); 
var bitmap:Bitmap = new Bitmap(bmd); 

var sourceTransform:ColorTransform = mc.transform.colorTransform; 
var bmdTransfrom:ColorTransform; 

if(mc.blendMode == BlendMode.NORMAL) 
{ 
    bmdTransfrom = sourceTransform; 
}else 
{ 
    bitmap.transform.colorTransform = sourceTransform; 
} 

bmd.draw(mc, null, bmdTransfrom, mc.blendMode); 

addChild(bitmap); 
関連する問題