투명한 영역을 마스크로 사용하여 그림을 표시 객체에 적용하려고합니다. 마스크는 color.but 영역 만 보여줍니다. 사실, 표시 객체는 전체 영역을 보여줍니다. 따라서 비트 맵을 벡터 이미지로 변환하면 문제가 해결되지만 변환 방법은 끔찍합니다.비트 맵을 마스크로 설정하는 방법
public static function createVectorImage(bd:BitmapData,colorKey:uint = 0):Shape{
if(bd==null){
return null;
}
var sh:Shape = new Shape();
var g:Graphics = sh.graphics;
g.beginBitmapFill(bd);
var beginPixel:int = -1;
var i:int,il:int,j:int,jl:int;
var value:uint;
for(i = 0,il=bd.height;i<il;i++){
for(j = 0,jl = bd.width;j<jl;j++){
value = bd.getPixel32(j,i);
if(value!=colorKey&&beginPixel==-1){
beginPixel = j;
}else if(value==colorKey&&beginPixel!=-1){
//draw rect
g.drawRect(beginPixel,i,j-beginPixel,1);
beginPixel = -1;
}
}
if(beginPixel!=-1){
g.drawRect(beginPixel,i,j-beginPixel,1);
beginPixel = -1
}
}
g.endFill();
return sh;
}
이보다 나은 방법이 있습니까?
매우 일반적인하지 내가 이미이 방법을 시도했지만 내가에 마스크를 추가하지 않았기 때문에 나는 실패 표시 목록 addChild (마스크), 사물을 다르게합니다. – Max