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, 把多个显示对象添加到容器中时, 我们可以通过 容器.numChildren 获取容器中有多少个显示对象 * 2, 当容器中有多个显示对象时, 会出现深度的问题 * ---默认情况下, 第一个添加到容器的显示对象层级是 0, 第二个是 1, 依次递增 * ---当显示对象交错时, 深度值大的覆盖深度值小的 * 3, 容器.addChildAt(显示对象, 深度值) 方法将显示对象添加到容器中并指定深度值的 * ---如果层级出现冲突, 添加次序( 从 0 开始, 第一次添加次序为 0 ) 和 设置的层级值相等的在最上层 * ---添加次序和层级值不相等的显示对象, 添加次序大的显示对象在上层, 在编写程序时, 应尽量避免层级冲突 * 4, 容器.removeChildAt( 层级值 ) 用于根据显示的对象的层级删除显示对象 * ---如果某个层级设置了多个显示对象, 则删除添加次序最大的那个 * 5, 容器.removeChildren() 用于删除容器内的多有显示对象 * 6, 如果要交互两个显示对象的层级值, 可以使用 两种方法如下: * ---容器.swapChildren( 显示对象, 显示对象 ) 或 容器.swapChildrenAt(深度值, 深度值) * 7, 容器.setChildIndex( 显示对象, 新的深度值 ), 用于从新设置容器内的显示对象的深度值 * 8, 获取容器内的显示对象有以下两种方法 * --- 容器.getChildAt( 深度值 ) 或者 容器.getChildByName( 显示对象 ) */ private onAddToStage(event: egret.Event) { var spr1:egret.Sprite = new egret.Sprite(); spr1.graphics.beginFill( 0xff0000 ); spr1.graphics.drawRect( 0, 0, 100, 100); spr1.graphics.endFill(); this.addChildAt( spr1, 1); var spr2:egret.Sprite = new egret.Sprite(); spr2.graphics.beginFill( 0x00ff00 ); spr2.graphics.drawRect( 0, 0, 80, 80); spr2.graphics.endFill(); spr2.x = 50; spr2.y = 50; this.addChildAt( spr2, 1 ); var spr3:egret.Sprite = new egret.Sprite(); spr3.graphics.beginFill( 0x0000ff ); spr3.graphics.drawRect( 0, 0, 80, 80); spr3.graphics.endFill(); spr3.x = 75; spr3.y = 75; this.addChildAt(spr3, 1) } }