白鹭引擎 - 对象的深度管理

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)

    }
}

 

转载于:https://www.cnblogs.com/lovling/p/8399614.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值