표시 객체를 다른 표시 객체의 마스크로 지정하려면 마스크 객체를 마스크를 적용할 표시 객체의 mask 속성으로 설정합니다.
// Make the object maskSprite be a mask for the object mySprite.
mySprite.mask = maskSprite;
마스크가 적용된 표시 객체는 마스크로 작용하는 표시 객체의 모든 불투명 영역 아래에 나타납니다. 예를 들어, 다음 코드는 100 x 100 픽셀의 빨강 사각형을 포함하는 Shape 인스턴스와 반경이 25 픽셀인 파랑 원을 포함하는 Sprite 인스턴스를 만듭니다. 원을 클릭하면 해당 원이 사각형에 대한 마스크로 설정되므로, 사각형에서 원으로 가려진 부분만이 표시됩니다. 즉, 빨강 원만 보이게 됩니다.
// This code assumes it's being run within a display object container
// such as a MovieClip or Sprite instance.
import flash.display.Shape;
// Draw a square and add it to the display list.
var square:Shape = new Shape();
square.graphics.lineStyle(1, 0x000000);
square.graphics.beginFill(0xff0000);
square.graphics.drawRect(0, 0, 100, 100);
square.graphics.endFill();
this.addChild(square);
// Draw a circle and add it to the display list.
var circle:Sprite = new Sprite();
circle.graphics.lineStyle(1, 0x000000);
circle.graphics.beginFill(0x0000ff);
circle.graphics.drawCircle(25, 25, 25);
circle.graphics.endFill();
this.addChild(circle);
function maskSquare(event:MouseEvent):void
{
square.mask = circle;
circle.removeEventListener(MouseEvent.CLICK, maskSquare);
}
circle.addEventListener(MouseEvent.CLICK, maskSquare);
마스크 역할을 하는 표시 객체는 드래그할 수 있고, 애니메이션 처리하거나 동적으로 크기를 조절할 수 있으며, 단일 마스크 내에서 개별 모양을 사용할 수 있습니다. 마스크 표시 객체를 표시 목록에 추가할 필요는 없습니다. 그러나, 스테이지 크기를 조절할 때 마스크 객체의 크기를 조절하거나, 마스크와의 사용자 상호 작용(예: 사용자 제어 드래그 및 크기 조절)을 가능하도록 하려면 마스크 객체를 표시 목록에 추가해야 합니다. 마스크 객체를 표시 목록에 추가할 경우 표시 객체의 실제 z 인덱스(전후 순서)는 중요하지 않습니다. 마스크 객체는 화면에는 표시되지 않고 마스크로만 표시됩니다. 마스크 객체가 프레임이 여러 개 있는 MovieClip 인스턴스인 경우 마스크 객체는 마스크 역할을 하지 않을 때와 마찬가지로 해당 타임라인에 모든 프레임을 재생합니다. mask 속성을 null로 설정하여 마스크를 제거할 수 있습니다.
// remove the mask from mySprite
mySprite.mask = null;
마스크를 사용하여 다른 마스크에 마스크를 적용할 수는 없습니다. 마스크 무비 클립의 alpha 속성은 설정할 수 없습니다. 마스크로 사용되는 표시 객체에는 채우기만 사용되고 획은 무시됩니다.
AIR 2
cacheAsBitmap 및 cacheAsBitmapMatrix 속성을 설정하여 마스크 처리된 표시 객체를 캐시하는 경우 마스크는 마스크 처리된 표시 객체의 자식이어야 합니다. 마찬가지로 마스크 처리된 표시 객체가 캐시되는 표시 객체 컨테이너의 자손인 경우 마스크 및 표시 객체 모두 해당 컨테이너의 자손이어야 합니다. 마스크 처리된 객체가 둘 이상의 캐시된 표시 객체 컨테이너의 자손인 경우, 마스크는 표시 목록에서 마스크 처리된 객체와 가장 가까이에 있는 캐시된 컨테이너의 자손이어야 합니다.