Как создать маску неправильной формы

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

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

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

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 ответ

Решение

Привет скайбой

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

пытаться:

_imageBox.cacheAsBitmap = true;
faceArea.cacheAsBitmap = true;
Другие вопросы по тегам