若要指出顯示物件將成為另一個顯示物件的遮色片,請將該遮色片物件設定為要遮蓋之顯示物件的
mask
屬性:
// Make the object maskSprite be a mask for the object mySprite.
mySprite.mask = maskSprite;
被遮蓋的顯示物件會在做為遮色片的顯示物件之所有不透明 (非透明) 的區域下呈現。例如,下列程式碼會建立 Shape 實體 (其中包含紅色 100 x 100 像素方形),以及 Sprite 實體 (其中包含半徑為 25 像素的藍色圓形)。按一下圓形時,它會設定為正方形的遮色片,使得正方形只顯示由實心圓形部分所遮蓋的地方,換句話說,將只能看見紅色圓形。
// 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
屬性加以快取,則遮色片必須是被遮色的顯示物件的子系。同樣地,若被遮色的顯示物件是快取之顯示物件容器的子系,則遮色片與顯示物件都必須是該容器的子系。若被遮色的物件是一個以上的已快取顯示物件容器的子系,則遮色片必須是在顯示清單中最接近被遮色物件的已快取容器的子系。