Egret04-对象容器和显示列表介绍

一、容器

1、显示容器是用来装放可见对象的,所有容器都继承DisplayObjectContainer类,该类继承自 DisplayObject.也就是所有容器都继承 DisplayObject.容器类DisplayObjectContaine具有以下四类操作:

添加、删除子对象
访问子对象
检测子对象
设置叠放次序

2、常用的容器有Sprite,它继承了 DisplayObjectContainer,而且添加了Graphics的功能。开发者可以自定义一个类继承DisplayObjectContainer或Sprite来实现一个容器:

/**  自定义一个容器类,并在容器内画一个矩形**/ 
class MySprite01 extends egret.Sprite
{
    public constructor()
    {
        super();
        this.drawGrid();
    }

    private drawGrid(){
        this.graphics.beginFill( 0x00ffff );
        this.graphics.drawRect( 0, 0, 100,100 );
        this.graphics.endFill();
    }
}

容器运行效果图:
在这里插入图片描述

二、显示列表

我们先思考一个问题:上面的MySprite01容器类和上一章节中的GridDemo01矢量图对象有什么区别?
要解决这个疑问,需要了解显示列表的概念:显示列表的作用是管理容器和容器中的对象,对象处于显示列表中,则可见,从列表中移除则不可见。显示列表由Egret内部维护,开发者只需关注自己创建的对象和容器即可。
关于显示列表,可以直观看成一个树形结构,最上层的stage对象就是“舞台”,它是Egret显示架构中最根本主显示容器,下图是对显示列表的形象拆解。
在这里插入图片描述
另外,显示的逻辑结构如下,我们上一章节中的GridDemo01是一个矢量图对象,它是加入到Stage中了,而且不可以再加入其它子显示对象。本章节的MySprite01是一个容器,它可以拥有更多的子显示对象。
在这里插入图片描述
我们实现以下代码,画一个简单的GridDemo01图形,并将图形对象加入到MySprite01容器中,这个时候,GridDemo01图形对象就不再是放置到stage根容器中了,而是套在MySprite01容器中。

        var gridDemo01:GridDemo01 = new GridDemo01();
        var  mySprite01:MySprite01 = new MySprite01();
        mySprite01.addChild(gridDemo01);
        this.addChild(mySprite01);

在这里插入图片描述

END.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值