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

}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM