Как создать маску неправильной формы
Я пытаюсь сделать маску с растровыми изображениями, т.е. имеет такую форму ниже. Вот моя маска изображения:
Все, что на изображении выше, не белое, это прозрачное. Поэтому, применяя маску, она режет прямоугольник вместо этой формы. Есть ли способ реализовать это? Примитивы вряд ли сделают такую маску.
Вот мой источник:
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;