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. SQL Server 2014 新特性:IO资源调控

    谈谈我的微软特约稿:<SQL Server 2014 新特性:IO资源调控> 2014-07-01 10:19 by 听风吹雨, 570 阅读, 16 评论, 收藏, 收藏 一.本文所涉及 ...

  2. [转载+实践理解]Android动画---如何正确使用平移动画(关于fillBefore和fillAfter的一点说明)(转载)

    红色部分为自己的实践理解 如何实现将View向上平移自身高度一半的距离? TranslateAnimation translate = new TranslateAnimation( Animatio ...

  3. 【Oracle】-【ROWNUM与索引】-索引对ROWNUM检索的影响

    看到ASK TOM的一篇文章,挺有感触的. http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:32812348052 ...

  4. [置顶] 纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录的华丽转身!

    前言 FineUI控件库发展至今已经有 5 个年头,目前论坛注册的QQ会员 5000 多人,捐赠用户 500 多人(捐赠用户转化率达到10%以上,在国内开源领域相信这是一个梦幻数字!也足以证明Fine ...

  5. FormsAuthentication登录ReturnUrl使用绝对路径

    ASP.NET]更简单的方法:FormsAuthentication登录ReturnUrl使用绝对路径   被这个问题困扰多年,今天终于找到了更简单的解决方法,分享一下. 问题场景 假设我们在i.cn ...

  6. 【转】几点 iOS 开发技巧

    [译] 几点 iOS 开发技巧 原文:iOS Programming Architecture and Design Guidelines 原文来自破船的分享 原文作者是开发界中知晓度相当高的 Mug ...

  7. C++指针数组和指向指针的指针

    指针数组 定义: 如果一个 数组,其元素均为指针型数据,该数组为指针数组,也就是说,指针数组中的每一个元素相当于一个指针变量,它的值都是地址. 形式: 一维指针数组的定义形式为: int[类型名] * ...

  8. C++ 动态库导出函数名“乱码”及解决

    C++ 动态库导出函数名“乱码”及解决 刚接触C++,在尝试从 dll 中导出函数时,发现导出的函数名都“乱码”了. 导出过程如下: 新建一个Win32项目: 新建的解决方案里有几个导出的示例: // ...

  9. 基于 Aliexpress API 的小程序 : 批量 Copy 产品到不同的店铺

    第一个基于 Aliexpress API 的小程序 : 批量 Copy 产品到不同的店铺 还没来得及用 API 重写软件, 先写个小程序来缓解一下手工压力: 批量Copy 产品到不同的店铺. 开网店 ...

  10. cocos2dx android运行Luac编译后的lua代码

    环境: win7 64 cocos2d-2.1rc0-x-2.1.2 lua 5.1 通常我们编写好的lua代码都是明文形式,谁都可以查看修改,为了防止自己的劳动成果不被别人轻易的盗取,可以使用lua ...