1、教程文档:http://developer.egret.com/cn/github/egret-docs/Engine2D/displayObject/displayObject/index.html
ts文档:https://www.tslang.cn/docs/home.html
类 | 描述 |
---|---|
DisplayObject | 显示对象基类,所有显示对象均继承自此类 |
Bitmap | 位图,用来显示图片 |
Shape | 用来显示矢量图,可以使用其中的方法绘制矢量图形 |
TextField | 文本类 |
BitmapText | 位图文本类 |
DisplayObjectContainer | 显示对象容器接口,所有显示对象容器均实现此接口 |
Sprite | 带有矢量绘制功能的显示容器 |
Stage | 舞台类 |
5、x 和 y 属性始终是指显示对象相对于其父显示对象坐标轴的 (0,0) 坐标的位置。因此,对于包含在 DisplayObjectContainer 实例内的 Shape 实例(如圆),如果将 Shape 对象的 x 和 y 属性设置为 0,会将圆放在 DisplayObjectContainer 的左上角,但该位置不一定是舞台的左上角。若要确定对象相对于全局舞台坐标的位置,可以使用任何显示对象的 globalToLocal() 方法将坐标从全局(相对于舞台)坐标转换为本地(相对于显示对象容器)坐标。同样,也可以使用 DisplayObject 类的 localToGlobal() 方法将本地坐标转换为舞台坐标。
this.addChild( spr );
代码中 addChild()
方法将 spr
添加到显示列表中。前面介绍过,显示列表是一个树状结构,这里 spr
的上一级就是 this
,也就是文档类。文档类是 stage
舞台的第一个子对象。
下面是关于当前示例的层级示意图:
//创建了一个类型为Sprite的显示对象
var spr:egret.Sprite = new egret.Sprite();
spr.graphics.beginFill( 0x00ff00 );
spr.graphics.drawRect(0, 0, 100, 100);
spr.graphics.endFill();
//该对象存在,被添加到显示列表中,在画面中显示
this.addChild( spr );
//该对象存在,但已被移除显示列表,画面上不显示
this.removeChild( spr );
//该对象存在,驻于内存中
numChildren
属性来获取当前容器的子对象数量。容器.numChildren
Egret中容器的深度都是从0开始的,当第一个显示对象被添加到容器中时,它的深度值为0。这个显示对象处于容器的最底层。当添加第二个显示对象的时候,它的深度值为1,并且在第一个显示对象上方。
若要将某一个显示对象添加到一个指定深度的时候,需要使用 addChildAt()
方法。
容器.addChildAt( 显示对象, 深度值 )
可以使用 容器.removeChild( 显示对象 )
将一个显示对象移除显示列表,同样,还可以使用
容器.removeChildAt( 深度值 )
来删除一个指定深度的显示对象。
Egret 提供了一个更加方便快捷的方法,使用 removeChildren()
方法可以将当前容器内的所有子对象全部移除显示列表。
使用方法如下:
容器.removeChildren();
Egret 为开发者提供了两个方法实现交换不同对象深度的功能。一个是 swapChildren()
方法,另外一个是 swapChildrenAt()
方法。
具体使用方法如下:
容器.swapChildren( 显示对象, 显示对象 )
容器.swapChildrenAt( 深度值, 深度值 )
8-3、
重设子对象深度容器.setChildIndex( 显示对象, 新的深度值 );
Graphics
类中封装的绘图方法不能直接使用,而需要在显示对象中使用若要为矩形添加描边,需设置线条的样式,通过 lineStyle()
方法实现。该方法的第一个参数是描边的线条宽度,第二个参数是描边的颜色。
var shp:egret.Shape = new egret.Shape();
shp.graphics.beginFill( 0xff0000, 1);
shp.graphics.drawRect( 0, 0, 100, 200 );
shp.graphics.endFill();
shp.graphics.lineStyle( 10, 0x00ff00 );
10、遮罩
square.mask = circle;
删除遮罩:
mySprite.mask = null;