2013-11-12 3 views
0

Я пытаюсь сделать маску с растровыми изображениями, то есть имеет такую ​​форму ниже. Вот моя маска изображения:Как создать нерегулярную маску формы

enter image description here

Все, в изображении выше, не является белым прозрачным. Поэтому, применяя маску, вместо этой формы она разрезает прямоугольник. Есть ли способ его реализовать? Примитивы вряд ли сделают такую ​​маску.

Вот мой источник:

package 
{ 
    import flash.display.Bitmap; 
    import flash.display.Sprite; 

    [SWF(width="960", height="640", frameRate="60", backgroundColor="0x4a4137")] 
    public class Main extends Sprite 
    { 
     [Embed(source="jack.jpg")] 
     private var PhotoImg:Class; 

     [Embed(source="faceArea.png")] 
     private var FaceAreaImg:Class; 

     private var _imageBox:Sprite; 

     public function Main() 
     { 
      createMask(); 
     } 

     private function createMask():void 
     { 
      var img:Bitmap = new PhotoImg(); 
      _imageBox = new Sprite(); 
      _imageBox.x = 0; 
      _imageBox.y = 0; 
      _imageBox.addChild(img); 
      addChild(_imageBox); 

      var faceArea:Bitmap = new FaceAreaImg(); 
      faceArea.x = 50; 
      faceArea.y = 50; 
      addChild(faceArea); 

      _imageBox.mask = faceArea; 
     } 
    } 
} 

ответ

1

Привет skyboy

Если вы хотите сделать маскирование с прозрачными точечными изображениями, вы должны сделать cacheAsBitmap свойства двух DisplayObjects к истине.

попробовать:

_imageBox.cacheAsBitmap = true; 
faceArea.cacheAsBitmap = true; 
+0

Большое спасибо. Вот и все. Ssory для верхней части, вы знаете, как обрезать изображение, используя эту форму? – skyboy

Смежные вопросы