1: 矩形遮罩
class Main extends egret.DisplayObjectContainer { /** * Main 类构造器, 初始化的时候自动执行, ( 子类的构造函数必须调用父类的构造函数 super ) * constructor 是类的构造函数, 类在实例化的时候调用 * egret.Event.ADDED_TO_STAGE, 在将显示对象添加到舞台显示列表时调度 */ public constructor() { super(); this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this); } /** * 1, 创建一个矩形遮罩: new egret.Rectangle(起点x, 起点y, 宽度值, 高度值) * 2, 遮罩要器作用, 就将遮罩的实例赋值给 显示对象.mask 属性 * 3, 注意, 遮罩的意思其实是给显示对象加了一个范围, 显示对象只有在遮罩范围内的区域才会显示 * 4, 注意, 如果遮罩发生变化, 需要从新赋值才能起作用 */ private onAddToStage(event: egret.Event) { var shp:egret.Shape = new egret.Shape(); shp.graphics.beginFill( 0xff0000 ); shp.graphics.drawRect( 0,0,300,300); shp.graphics.endFill(); this.addChild( shp ); var shp2:egret.Shape = new egret.Shape(); shp2.graphics.beginFill( 0x00ff00 ); shp2.graphics.drawCircle( 100,100, 100); shp2.graphics.endFill(); this.addChild( shp2 ); shp2.x = 20; shp2.y = 20; var rect:egret.Rectangle = new egret.Rectangle(20,20,30,50); shp.mask = rect; } }
2: 显示对象遮罩
class Main extends egret.DisplayObjectContainer { /** * Main 类构造器, 初始化的时候自动执行, ( 子类的构造函数必须调用父类的构造函数 super ) * constructor 是类的构造函数, 类在实例化的时候调用 * egret.Event.ADDED_TO_STAGE, 在将显示对象添加到舞台显示列表时调度 */ public constructor() { super(); this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this); } /** * 显示对象可以作为另一个显示对象的遮罩, 作为遮罩的对象最好也添加的舞台中 * 遮罩后, 被遮罩的显示对象只有和遮罩的显示对象重叠的部分才会显示 */ private onAddToStage(event: egret.Event) { //画一个红色的正方形 var square:egret.Shape = new egret.Shape(); square.graphics.beginFill(0xff0000); square.graphics.drawRect(0,0,100,100); square.graphics.endFill(); this.addChild(square); //画一个蓝色的圆形 var circle:egret.Shape = new egret.Shape(); circle.graphics.beginFill(0x0000ff); circle.graphics.drawCircle(25,25,25); circle.graphics.endFill(); this.addChild(circle); square.mask = circle; } }