Egret的容器--删除对象,遮罩
class P91F extends egret.Sprite { public constructor() { super(); this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this); } private onAddToStage(event: egret.Event) { //轻量级容器 DisplayObjectContainer;若在游戏中需要利用容器相关的功能,可以直接创建DisplayObjectContainer类的实例对象 //自定义容器,编写一个类继承DisplayObjectContainer即可;若要实现graphics相关的,可继承Sprite //自定义一个容器类,ShapeTest 继承自egret.Sprite;在文档类Main中实例化 P91F //实例化代码 /** 创建场景界面 protected createGameScene(): void { var _shapeTest:P91F = new P91F (); this.addChild(_shapeTest); } */ this.drawTest(event); } private drawTest(evt: egret.Event) { var shp: egret.Shape = new egret.Shape(); shp.graphics.beginFill(0x0000ff, 0.8); shp.graphics.drawRect(0, 0, 50, 50); shp.graphics.endFill(); shp.graphics.beginFill(0x0000ff, 0.8); shp.graphics.drawRect(50, 50, 50, 50); shp.graphics.endFill(); shp.graphics.beginFill(0xff0000, 0.8); shp.graphics.drawRect(50, 0, 50, 50); shp.graphics.endFill(); shp.graphics.beginFill(0xff0000, 0.8); shp.graphics.drawRect(0, 50, 50, 50); shp.graphics.endFill(); //添加显示对象到显示列表:改对象存在,被添加到显示裂变,在画面中显示 //addChild就是将对象添加到显示列表中,显示列表是一个树状结构,这里shp的上一级就是this,就是该类,文档类是STAGE的第一个子对象 this.addChild(shp); //删除显示对象:使用removeChild即可删除一个显示对象;画面不显示,该对象存在,驻于内存中 //利用该代码的时候,建议先判断是否拥有父级(被删除的对象在不在显示列表) if(shp.parent){ 删除操作;} //this.removeChild(shp);//this是shp的父级,shp是被删除的显示对象 //遮罩使用:所谓遮罩是指定一个显示对象的可见区域,在Egret执行渲染的时候,会根据据设置的区域进行裁切,最终得到原始画面的一部分 var rect:egret.Rectangle = new egret.Rectangle( 50,50,300,200); shp.mask = rect; //取消遮罩:将mask属性设置为null shp.mask = null; } }
不积跬步,无以至千里;不积小流,无以成江海。