Bir görüntüleme nesnesinin başka bir görüntüleme nesnesi için maske olacağını belirtmek üzere, maske nesnesini, maskelenecek görüntüleme nesnesinin
mask
özelliği olarak ayarlayın:
// Make the object maskSprite be a mask for the object mySprite.
mySprite.mask = maskSprite;
Maskelenen görüntüleme nesnesi, görüntüleme nesnesinin maske olarak hareket eden tüm opak (saydam olmayan) alanları altında gösterilir. Örneğin, şu kod, 100 x 100 piksel kare kırmızı içeren bir Shape örneği ve 25 piksel yarıçapında mavi bir daire içeren Sprite örneği oluşturur. Daire tıklatıldığında, karenin maskesi olarak ayarlanır, böylece karenin gösterilen tek bölümü, dairenin düz bölümü tarafından kaplanan kısımdır. Başka bir deyişle, yalnızca kırmızı daire görünebilir olur.
// 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);
Maske olarak hareket eden görüntüleme nesnesi sürüklenebilir, dinamik olarak yeniden boyutlandırılabilir, tek bir maske içinde ayrı şekiller kullanabilir ve bu nesneye animasyon uygulanabilir. Maske görüntüleme nesnesinin mutlaka görüntüleme listesine eklenmesi gerekmez. Ancak, Sahne Alanı ölçeklendiğinde maske nesnesinin ölçeklenmesini istiyorsanız veya maske ile kullanıcı etkileşimini (örn. kullanıcı tarafından denetlenen sürükleme ve yeniden boyutlandırma) etkinleştirmek istiyorsanız, maske nesnesinin görüntüleme listesine eklenmesi gerekir. Maske nesnesi, görüntüleme listesine eklendiği sürece, görüntüleme nesnelerinin gerçek z dizininin (önden arkaya sıralama) önemi yoktur. (Maske nesnesi, maske olarak görüntülenmek dışında ekranda görüntülenmez.) Maske nesnesi birden çok kare içeren bir MovieClip örneğiyse, zaman çizelgesinde tüm kareleri oynatır; maske nesnesi maske görevi görmeseydi de bu durum aynı olacaktır.
mask
özelliğini
null
değerine ayarlayarak bir maskeyi kaldırabilirsiniz:
// remove the mask from mySprite
mySprite.mask = null;
Bir maskeyi, başka bir maskeyi maskelemek için kullanamazsınız. Bir maske görüntüleme nesnesinin
alpha
özelliğini ayarlayamazsınız. Maske olarak kullanılan bir görüntüleme nesnesinde yalnızca dolgular kullanılır; konturlar yok sayılır.
AIR 2
Maskeli görüntüleme nesnesi
cacheAsBitmap
ve
cacheAsBitmapMatrix
özellikleri kullanılarak önbelleğe alınmışsa maske, maskeli görüntüleme nesnesinin alt öğesi olmalıdır. Benzer şekilde, maskelenmiş görüntüleme nesnesi önbelleğe alınmış bir görüntüleme nesnesi kabının alt öğesiyse, hem maske hem de görüntüleme nesnesi o kabın alt öğesi olmalıdır. Maskelenmiş nesne birden fazla önbelleğe alınmış görüntüleme nesnesi kabının alt öğesiyse, maske görüntüleme listesindeki maskelenmiş nesneye en yakın önbelleğe alınmış kabın alt öğesi olmalıdır.