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;
	}

}

  

posted @ 2019-04-09 22:52  icon_sunny  阅读(998)  评论(0编辑  收藏  举报