1,显示容器:所有的容器都继承自DisplayObjectContainer , DisplayObjectContainer 又继承自DisplayObject;

2,想定义一个容器只要创建一个类,并使其继承自DisplayObjectContainer 即可,想实现graphics功能,只要继承Sprite类即可;

3,显示对象的操作:添加,删除,检测,访问,设置堆叠次序;

建立显示对象:

var spr:egret.Sprite = new egret.Sprite();

spr.beignFill(0x009900);

spr.drawRect(0,0,100,100);

spr.endFill();

this.addChild(spr);  //建立完后要添加显示对象;

显示列表是一个树状结构,spr的上一级就是this,也就是文档类,文档类是stage舞台的第一个对象;

删除显示对象:this.removeChild(spr);

4,显示对象的注意点:

1)显示对象独立于显示列表:当显示对象被删除后,显示对象只是不再参与渲染,但是仍然在内存常驻;

2)显示对象的坐标系是相对坐标系,而非绝对坐标系,就是相对于父级原点的位置;

3)多次添加显示对象到显示列表:同一个显示对象无论被添加多少次,在屏幕上只会显示一次;

例如:将一个显示对象A添加到B容器中,又被添加到C容器中,则第二次添加A对象时C.addChild(A),是先从B容器上删除A对象,然后再添加到C容器上;

4)删除操作的注意点:

当删除一个显示对象时,该显示对象必须有父级,也就是必须在显示列表中;否则会报错;

因此,每次删除显示对象前,都对其进行一次判断;

if(spr.parent){

  spr.parent.removeChild(spr);

}

5,深度管理:

每个显示对象在显示列表中都有一个深度值,就是堆叠次序,称之为”z-次序‘’;

egret容器中的深度从0开始,第一个被添加的对象的深度值就是0;也即是位于容器的最底层,后加的显示对象覆盖在它上面;

添加/删除指定深度的对象:

使用addChild()添加显示对象时,,默认是按照次序一次堆叠,如果想要插入到指定深度处,使用容器.addChildAt(显示对象,深度值)方法;

可以使用removeChild(spr)删除显示对象,也可以使用removeChild(深度值)来删除指定的显示对象;

6,访问容器子对象:

1)通过获取深度值获取容器子对象:

容器.getChildAt(深度值);

2)通过name属性获取:

可以先为显示对象添加属性name:spr.name ="xxxx";

容器.getChildByName("xxxx");

6,输入文本:

使用输入文本的关键是设置输入文本类型,TextFieldType.INPUT:

var tx : egret.TextField = new egret.TextField();

tx.type = egret.TextFieldType.INPUT ;

tx.width = 200;

tx.height = 100;

tx.x = 150;

tx.y = 100;

this._container.addChild(tx);  //_container 是事先建立的显示容器;egret.Shape;

7,多种样式文本的组合方式:

JSON方式分段设置样式:

interface ITextField{

  text : string ;

  style : ITextStyle;

}

var tx:egret.TextField = new TextField();

tx.textFlow = <Array<egret.ITextElement>>[{ text : "举个例子" , style : {"size" : 10} } , {} ,{}];   //将文档流转成为元素的egret.ITextElement的数组

Egret 显示容器的更多相关文章

  1. 代码: 两列图片瀑布流(一次后台取数据,图片懒加载。下拉后分批显示图片。图片高度未知,当图片onload后才显示容器)

    代码: 两列图片瀑布流(一次后台取数据,无ajax,图片懒加载.下拉后分批显示图片.图片高度未知,当图片onload后才显示容器) [思路]: 图片瀑布流,网上代码有多种实现方式,也有各类插件.没找到 ...

  2. Egret Engine 2D - 显示容器

      DisplayObjectContainer 所有容器的父类 1 添加 删除 子对象 2 访问子对象 3 检测子对象 4 设置叠放次序 Sprite 继承自DisplayObjectContain ...

  3. Egret的容器--删除对象,遮罩

    class P91F extends egret.Sprite { public constructor() { super(); this.addEventListener(egret.Event. ...

  4. [web建站] 极客WEB大前端专家级开发工程师培训视频教程

    极客WEB大前端专家级开发工程师培训视频教程  教程下载地址: http://www.fu83.cn/thread-355-1-1.html 课程目录:1.走进前端工程师的世界HTML51.HTML5 ...

  5. web 前端开发学习路线

    初级 HTML 5 HTML 5 与 HTML 4 的区别 HTML 5 新增的主体结构元素 HTML 5 新增的非主体结构元素 HTML 5 表单新增元素与属性 HTML 5 表单新增元素与属性(续 ...

  6. Egret --视觉编程,显示对象,事件

    1,在egret中,视觉图形都是由显示对象和显示对象容器组成的: 显示对象:准确的说,就是在舞台上显示出来的,包括能真实看见的图形,文字,图片,视频等:也包括不能看见但真实存在的显示对象容器: 一:显 ...

  7. Egret引擎随学随机

    1.纹理集实际上就是将一些零碎的小图放到一张大图当中.游戏中也经常使用到纹理集.使用纹理集的好处很多,我们通过将大量的图片拼合为一张图片从而减少网络请求,原先加载数次的图片资源现在加载一次即可.同时, ...

  8. Erget 显示对象

    核心显示类: 类 描述 DisplayObject 显示对象基类,所有显示对象均继承自此类 Bitmap 位图,用来显示图片 Shape 用来显示矢量图,可以使用其中的方法绘制矢量图形 TextFie ...

  9. Egret 学习之 入口函数 及开始编写程序(三)

    1,Egret的程序入口: C和java是以一个main函数作为入口,但egret类似于ActionScript 是以一个文档类作为入口,确切的说是以这个文档类的构造函数作为入口: 2,文档类的构造函 ...

随机推荐

  1. Javascript多线程引擎(六)

    Javascript多线程引擎(六) 经过三个月的时间, Javascript 引擎已经完成beta版本(还不支持多线程特性, 预计下个星期就可以支持了, 现阶段还在进行测试基本JS单元功能), 并且 ...

  2. 自定义MVP .net框架

      一个自定义MVP .net框架 AngleFrame   摘要:本篇是本人在完成.net平台下一个项目时,对于MVP框架引发的一些思考,以及开发了一个小型的配置型框架,名字叫作AngleFrame ...

  3. linux find命令之exec

    find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec  参数后面跟的是command ...

  4. CEGUI添加自定义控件

    用CEGUI做界面将近3个月了,比较忙,而且自己懒了许多,没能像以前那样抽出大量时间研究CEGUI,查阅更多的资料书籍,只是在工作间隙,将官网上的一些资料和同事推荐的<CEGUI深入解析> ...

  5. IOS UI 第二篇:基本UI

    1.UI书写:   一个小练习图片如下:     代码如下:     @implementation AppDelegate{    UIControl *control;    UILabel *l ...

  6. JavaScript原生数组函数

    有趣的JavaScript原生数组函数 在JavaScript中,可以通过两种方式创建数组,构造函数和数组直接量, 其中后者为首选方法.数组对象继承自Object.prototype,对数组执行typ ...

  7. VS2010下C/C++连接MySql数据库的方法

    1. 新建一个C++控制台程序 2. 选择项目 CMySql属性 3. 选择配置属性 C/C++ 常规 附加包含目录 4. 添加包含目录C:\Program Files\MySQL\Connector ...

  8. 实践Scrum

    http://blog.vsharing.com/agiledo/ [原创]敏捷开发实践-我们这样实践Scrum-续(81页) 我们团队实践Scrum,有一些做法和教训,希望和大家分享: 公司背景:通 ...

  9. Cocos2d学习之路五(Box2d使用CCPhysicsSprite时编译不通过解决方法)

    cocos2d使用box2d引擎,在使用CCPhysicsSprite添加精灵的时候会出现编译不通过错误. 需要注意以下几点: 1.sprite.position=ccp(p.x,p.y);这行代码一 ...

  10. (coco2d-x初学)xcode5.0安装 cocos2d-x2.2.0

    cocos2d-x 2.0版本之后不再支持xcode模板安装. 下面介绍一下创建步骤:我下载的是cocos2d-x2.2.0版本 1.下载Cocos2d-x的地址点击打开链接 2.解压缩压缩包.打开终 ...