Egret 显示容器
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 显示容器的更多相关文章
- 代码: 两列图片瀑布流(一次后台取数据,图片懒加载。下拉后分批显示图片。图片高度未知,当图片onload后才显示容器)
代码: 两列图片瀑布流(一次后台取数据,无ajax,图片懒加载.下拉后分批显示图片.图片高度未知,当图片onload后才显示容器) [思路]: 图片瀑布流,网上代码有多种实现方式,也有各类插件.没找到 ...
- Egret Engine 2D - 显示容器
DisplayObjectContainer 所有容器的父类 1 添加 删除 子对象 2 访问子对象 3 检测子对象 4 设置叠放次序 Sprite 继承自DisplayObjectContain ...
- Egret的容器--删除对象,遮罩
class P91F extends egret.Sprite { public constructor() { super(); this.addEventListener(egret.Event. ...
- [web建站] 极客WEB大前端专家级开发工程师培训视频教程
极客WEB大前端专家级开发工程师培训视频教程 教程下载地址: http://www.fu83.cn/thread-355-1-1.html 课程目录:1.走进前端工程师的世界HTML51.HTML5 ...
- web 前端开发学习路线
初级 HTML 5 HTML 5 与 HTML 4 的区别 HTML 5 新增的主体结构元素 HTML 5 新增的非主体结构元素 HTML 5 表单新增元素与属性 HTML 5 表单新增元素与属性(续 ...
- Egret --视觉编程,显示对象,事件
1,在egret中,视觉图形都是由显示对象和显示对象容器组成的: 显示对象:准确的说,就是在舞台上显示出来的,包括能真实看见的图形,文字,图片,视频等:也包括不能看见但真实存在的显示对象容器: 一:显 ...
- Egret引擎随学随机
1.纹理集实际上就是将一些零碎的小图放到一张大图当中.游戏中也经常使用到纹理集.使用纹理集的好处很多,我们通过将大量的图片拼合为一张图片从而减少网络请求,原先加载数次的图片资源现在加载一次即可.同时, ...
- Erget 显示对象
核心显示类: 类 描述 DisplayObject 显示对象基类,所有显示对象均继承自此类 Bitmap 位图,用来显示图片 Shape 用来显示矢量图,可以使用其中的方法绘制矢量图形 TextFie ...
- Egret 学习之 入口函数 及开始编写程序(三)
1,Egret的程序入口: C和java是以一个main函数作为入口,但egret类似于ActionScript 是以一个文档类作为入口,确切的说是以这个文档类的构造函数作为入口: 2,文档类的构造函 ...
随机推荐
- Web Api 图片上传,在使用 Task.ContinueWith 变量无法赋值问题
细谈 Web Api 图片上传,在使用 Task.ContinueWith 变量无法赋值问题的解决办法! 在使用Asp.Net Web Api 图片上传接口的时候,到网上找了一些个例子,但大多数找 ...
- VS2010生成安装包制作步骤
VS2010生成安装包制作步骤 在VS2010中文旗舰版本中生成winForm安装包,可以复制你电脑中的开发环境,避免你忘记了一下配置然后在别的机器上运行不起来.也省去了Framwork的安装. ...
- Enumerable和yield
说说IEnumerable和yield IEnumerable数据类型是我比较喜欢的数据类型,特别是其强类型IEnumerable<T>更获得Linq的支持使得代码看起来更加优雅.整洁. ...
- SVN 服务端 和 客户端
网址大全 | EF CodeFirst | 电视 | MyNPOI | 开源 | 我的皮肤 | ASP.NET MVC4 | 前端提升 | LINQ | WCF ...
- Spring in action (1)
spring中注入bean的方法: 1.通过xml文件来注入bean. 2.通过java注解来注入 默认的bean生命周期是单例的.每次都会返回相同的类的实例.
- Android简单发送邮件(可带附件)
项目中遇到了一个发送邮件的功能,在网上查了很多,资料也很多.这里就不一一介绍了,只是写出我使用的方案(最简单的) Intent email = new Intent(android.content.I ...
- [google面试CTCI] 2-3 只给定链表中间节点指针,如何删除中间节点?
[链表] Q:Implement an algorithm to delete a node in the middle of a single linked list, given only acc ...
- VS2010下C/C++连接MySql数据库的方法
1. 新建一个C++控制台程序 2. 选择项目 CMySql属性 3. 选择配置属性 C/C++ 常规 附加包含目录 4. 添加包含目录C:\Program Files\MySQL\Connector ...
- 批量转换cue文件编码
之前在网上下载的无损(flac.ape),好多都是整盘的,也就是说一个flac或ape文件搭配一个cue分轨文件,这个文件记录着在不同时间段是哪一首歌曲. 由于之前的操作都是在windows下进行的, ...
- socket网络编程快速上手(二)——细节问题(2)
2.TCP数据包接收问题 对初学者来说,很多都会认为:客户端与服务器最终的打印数据接收或者发送条数都该是一致的,1000条发送打印,1000条接收打印,长度都为1000.但是,事实上并不是这样,发送打 ...