跳到主要内容

egret.DisplayObject

   egret

   public class DisplayObject

继承    egret.DisplayObject → egret.EventDispatcheregret.HashObject

子类    egret.Bitmap, egret.DisplayObjectContainer, egret.Shape, egret.Video, egret.BitmapText, egret.TextField, eui.UIComponent, egret.MovieClip

DisplayObject 类是可放在显示列表中的所有对象的基类。该显示列表管理运行时中显示的所有对象。使用 DisplayObjectContainer 类排列显示列表中的显示对象。DisplayObjectContainer 对象可以有子显示对象,而其他显示对象(如 Shape 和 TextField 对象)是“叶”节点,没有子项,只有父级和同级。DisplayObject 类有一些基本的属性(如确定坐标位置的 x 和 y 属性),也有一些高级的对象属性(如 Matrix 矩阵变换)。

DisplayObject 类包含若干广播事件。通常,任何特定事件的目标均为一个特定的 DisplayObject 实例。例如,added 事件的目标是已添加到显示列表的目标 DisplayObject 实例。若只有一个目标,则会将事件侦听器限制为只能监听在该目标上(在某些情况下,可监听在显示列表中该目标的祖代上)。但是对于广播事件,目标不是特定的 DisplayObject 实例,而是所有 DisplayObject 实例(包括那些不在显示列表中的实例)。这意味着您可以向任何DisplayObject 实例添加侦听器来侦听广播事件。

公共属性

属性
alpha : number
表示指定对象的 Alpha 透明度值
anchorOffsetX : number
表示从对象绝对锚点X
anchorOffsetY : number
表示从对象绝对锚点Y
blendMode : string
BlendMode 枚举中的一个值,用于指定要使用的混合模式,确定如何将一个源(新的)图像绘制到目标(已有)的图像上
cacheAsBitmap : boolean
如果设置为 true,则 Egret 运行时将缓存显示对象的内部位图表示形式
filters : Array<egret.Filter
height : number
表示显示对象的高度,以像素为单位
mask : egret.DisplayObject
matrix : egret.Matrix
一个 Matrix 对象,其中包含更改显示对象的缩放、旋转和平移的值
measuredHeight : number
测量高度
measuredWidth : number
测量宽度
name : string
表示 DisplayObject 的实例名称
parent : egret.DisplayObjectContainer
表示包含此显示对象的 DisplayObjectContainer 对象
rotation : number
表示 DisplayObject 实例距其原始方向的旋转程度,以度为单位
scaleX : number
表示从注册点开始应用的对象的水平缩放比例(百分比)
scaleY : number
表示从对象注册点开始应用的对象的垂直缩放比例(百分比)
scrollRect : egret.Rectangle
显示对象的滚动矩形范围
skewX : number
表示DisplayObject的x方向斜切
skewY : number
表示DisplayObject的y方向斜切
sortableChildren : boolean
允许对象使用 zIndex 排序
stage : egret.Stage
显示对象的舞台
tint : number
给当前对象设置填充色
touchEnabled : boolean
指定此对象是否接收触摸或其他用户输入
visible : boolean
显示对象是否可见
width : number
表示显示对象的宽度,以像素为单位
x : number
表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 x 坐标
y : number
表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 y 坐标
zIndex : number
设置对象的 Z 轴顺序(前后顺序)

公共方法

方法
DisplayObject()
创建一个显示对象
dispatchEvent(event: egret.Event): boolean
将事件分派到事件流中
getBounds(resultRect: egret.Rectangle,calculateAnchor: boolean): egret.Rectangle
获取显示对象的测量边界
getTransformedBounds(targetCoordinateSpace: egret.DisplayObject,resultRect: egret.Rectangle): egret.Rectangle
返回一个矩形,该矩形定义相对于 targetCoordinateSpace 对象坐标系的显示对象区域
globalToLocal(stageX: number,stageY: number,resultPoint: egret.Point): egret.Point
将从舞台(全局)坐标转换为显示对象的(本地)坐标
hitTestPoint(x: number,y: number,shapeFlag: boolean): boolean
计算显示对象,以确定它是否与 x 和 y 参数指定的点重叠或相交
localToGlobal(localX: number,localY: number,resultPoint: egret.Point): egret.Point
将显示对象的(本地)坐标转换为舞台(全局)坐标
removeEventListener(type: string,listener: Function,thisObject: any,useCapture: boolean): void
从 EventDispatcher 对象中删除侦听器
sortChildren(): void
willTrigger(type: string): boolean
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器

事件

Events
egret.Event.ADDED
将显示对象添加到显示列表中时调度。
egret.Event.ADDED_TO_STAGE
在将显示对象直接添加到舞台显示列表或将包含显示对象的子树添加至舞台显示列表中时调度。
egret.Event.REMOVED
将要从显示列表中删除显示对象时调度。
egret.Event.REMOVED_FROM_STAGE
在从显示列表中直接删除显示对象或删除包含显示对象的子树时调度。
egret.Event.ENTER_FRAME
[广播事件] 播放头进入新帧时调度。
egret.Event.RENDER
[广播事件] 将要更新和呈现显示列表时调度。
egret.TouchEvent.TOUCH_MOVE
当用户触碰设备时进行调度,而且会连续调度,直到接触点被删除。
egret.TouchEvent.TOUCH_BEGIN
当用户第一次触摸启用触摸的设备时(例如,用手指触摸手机屏幕)调度。
egret.TouchEvent.TOUCH_END
当用户移除与启用触摸的设备的接触时(例如,将手指从屏幕上抬起)调度。
egret.TouchEvent.TOUCH_TAP
当用户在启用触摸设备上的已启动接触的同一 DisplayObject 实例上抬起接触点时(例如,手机点击屏幕后抬起)调度。
egret.TouchEvent.TOUCH_RELEASE_OUTSIDE
当用户在启用触摸设备上的已启动接触的不同 DisplayObject 实例上抬起接触点时(例如,按住屏幕上的某个对象,然后从它上面挪开后再松开手指)调度。

属性详细信息

alpha

alpha : number = 1

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

表示指定对象的 Alpha 透明度值。有效值为 0(完全透明)到 1(完全不透明)。alpha 设置为 0 的显示对象是可触摸的,即使它们不可见。

anchorOffsetX

anchorOffsetX : number = 0

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

表示从对象绝对锚点X。

anchorOffsetY

anchorOffsetY : number = 0

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

表示从对象绝对锚点Y。

blendMode

blendMode : string = egret.BlendMode.NORMAL

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

BlendMode 枚举中的一个值,用于指定要使用的混合模式,确定如何将一个源(新的)图像绘制到目标(已有)的图像上

如果尝试将此属性设置为无效值,则运行时会将此值设置为 BlendMode.NORMAL。

cacheAsBitmap

cacheAsBitmap : boolean = false

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

如果设置为 true,则 Egret 运行时将缓存显示对象的内部位图表示形式。此缓存可以提高包含复杂矢量内容的显示对象的性能。将 cacheAsBitmap 属性设置为 true 后,呈现并不更改,但是,显示对象将自动执行像素贴紧。执行速度可能会大大加快,具体取决于显示对象内容的复杂性。最好将 cacheAsBitmap 属性与主要具有静态内容且不频繁缩放或旋转的显示对象一起使用。

注意:在内存超过上限的情况下,即使将 cacheAsBitmap 属性设置为 true,显示对象也不使用位图缓存。

filters

filters : Array<egret.Filter| egret.CustomFilter>

  • 支持版本:Egret 3.1.0
  • 运行平台:Web

包含当前与显示对象关联的每个滤镜对象的索引数组。

height

height : number

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

表示显示对象的高度,以像素为单位。高度是根据显示对象内容的范围来计算的。

mask

mask : egret.DisplayObject|egret.Rectangle

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

调用显示对象被指定的 mask 对象遮罩。要确保当舞台缩放时蒙版仍然有效,mask 显示对象必须处于显示列表的活动部分。但不绘制 mask 对象本身。将 mask 设置为 null 可删除蒙版。要能够缩放遮罩对象,它必须在显示列表中。要能够拖动蒙版对象,它必须在显示列表中。

注意:单个 mask 对象不能用于遮罩多个执行调用的显示对象。在将 mask 分配给第二个显示对象时,会撤消其作为第一个对象的遮罩,该对象的 mask 属性将变为 null。下面例子为 mask 为 Rectangle 类型对象,这种情况下,修改 mask 的值后,一定要对 myDisplayObject 重新赋值 mask,不然会出问题。

matrix

matrix : egret.Matrix

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

一个 Matrix 对象,其中包含更改显示对象的缩放、旋转和平移的值。

注意:要改变一个显示对象矩阵的值,您必引用整个矩阵对象,然后将它重新赋值给显示对象的 matrix 属性。

measuredHeight

measuredHeight : number

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

测量高度

measuredWidth

measuredWidth : number

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

测量宽度

name

name : string

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

表示 DisplayObject 的实例名称。通过调用父显示对象容器的 getChildByName() 方法,可以在父显示对象容器的子列表中标识该对象。

parent

parent : egret.DisplayObjectContainer

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

表示包含此显示对象的 DisplayObjectContainer 对象。使用 parent 属性可以指定高于显示列表层次结构中当前显示对象的显示对象的相对路径。

rotation

rotation : number = 0

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

表示 DisplayObject 实例距其原始方向的旋转程度,以度为单位。从 0 到 180 的值表示顺时针方向旋转;从 0 到 -180 的值表示逆时针方向旋转。对于此范围之外的值,可以通过加上或减去 360 获得该范围内的值。例如,myDisplayObject.rotation = 450语句与 myDisplayObject.rotation = 90 是相同的。

scaleX

scaleX : number = 1

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

表示从注册点开始应用的对象的水平缩放比例(百分比)。

1.0 等于 100% 缩放。

scaleY

scaleY : number = 1

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

表示从对象注册点开始应用的对象的垂直缩放比例(百分比)。1.0 是 100% 缩放。

scrollRect

scrollRect : egret.Rectangle

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

显示对象的滚动矩形范围。显示对象被裁切为矩形定义的大小,当您更改 scrollRect 对象的 x 和 y 属性时,它会在矩形内滚动。滚动的显示对象始终以整像素为增量进行滚动。您可以通过设置 scrollRect Rectangle 对象的 x 属性来左右滚动对象, 还可以通过设置scrollRect 对象的 y 属性来上下滚动对象。如果显示对象旋转了 90 度,并且您左右滚动它,则实际上显示对象会上下滚动。

注意:要改变一个显示对象 scrollRect 属性的值,您必引用整个 scrollRect 对象,然后将它重新赋值给显示对象的 scrollRect 属性。

skewX

skewX : number = 0

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

表示DisplayObject的x方向斜切

skewY

skewY : number = 0

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

表示DisplayObject的y方向斜切

sortableChildren

sortableChildren : boolean = false

  • 支持版本:Egret 5.2.24
  • 运行平台:Web,Native

允许对象使用 zIndex 排序

stage

stage : egret.Stage

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

显示对象的舞台。例如,您可以创建多个显示对象并加载到显示列表中,每个显示对象的 stage 属性是指向相同的 Stage 对象。

如果显示对象未添加到显示列表,则其 stage 属性会设置为 null。

tint

tint : number

  • 支持版本:Egret 5.2.24
  • 运行平台:Web,Native

给当前对象设置填充色

touchEnabled

touchEnabled : boolean = false

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

指定此对象是否接收触摸或其他用户输入。默认值为 false,这表示默认情况下,显示列表上的任何 DisplayObject 实例都不会接收触摸事件或其他用户输入事件。如果将 touchEnabled 设置为 false,则实例将不接收任何触摸事件(或其他用户输入事件)。显示列表上的该实例的任何子级都不会受到影响。要更改显示列表上对象的所有子级的 touchEnabled 行为,请使用 DisplayObjectContainer.touchChildren。

visible

visible : boolean = true

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

显示对象是否可见。不可见的显示对象将被禁用。例如,如果实例的 visible 为 false,则无法接受触摸或用户交互操作。

width

width : number

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

表示显示对象的宽度,以像素为单位。宽度是根据显示对象内容的范围来计算的。

x

x : number = 0

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 x 坐标。

如果该对象位于具有变形的 DisplayObjectContainer 内,则它也位于包含 DisplayObjectContainer 的本地坐标系中。因此,对于逆时针旋转 90 度的 DisplayObjectContainer,该 DisplayObjectContainer 的子级将继承逆时针旋转 90 度的坐标系。

y

y : number = 0

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 y 坐标。

如果该对象位于具有变形的 DisplayObjectContainer 内,则它也位于包含 DisplayObjectContainer 的本地坐标系中。因此,对于逆时针旋转 90 度的 DisplayObjectContainer,该 DisplayObjectContainer 的子级将继承逆时针旋转 90 度的坐标系。

zIndex

zIndex : number

  • 支持版本:Egret 5.2.24
  • 运行平台:Web,Native

设置对象的 Z 轴顺序(前后顺序)

方法详细信息

DisplayObject()

public DisplayObject()

创建一个显示对象

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

dispatchEvent()

public dispatchEvent(event: egret.Event): boolean

将事件分派到事件流中。事件目标是对其调用 dispatchEvent() 方法的 EventDispatcher 对象。

  • 支持版本:Egret 2.4

  • 运行平台:Web,Native

  • 参数

    • event: egret.Event - 调度到事件流中的 Event 对象。
  • 返回:如果成功调度了事件,则值为 true。值 false 表示失败或对事件调用了 preventDefault()。

getBounds()

public getBounds(resultRect: egret.Rectangle,calculateAnchor: boolean): egret.Rectangle

获取显示对象的测量边界

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • resultRect: egret.Rectangle - 可选参数,传入用于保存结果的Rectangle对象,避免重复创建对象。
    • calculateAnchor: boolean - 可选参数,是否会计算锚点。

getTransformedBounds()

public getTransformedBounds(targetCoordinateSpace: egret.DisplayObject,resultRect: egret.Rectangle): egret.Rectangle

返回一个矩形,该矩形定义相对于 targetCoordinateSpace 对象坐标系的显示对象区域。

  • 支持版本:Egret 2.4

  • 运行平台:Web,Native

  • 参数

    • targetCoordinateSpace: egret.DisplayObject - 定义要使用的坐标系的显示对象。
    • resultRect: egret.Rectangle - 一个用于存储结果的可复用Rectangle实例,传入此参数能够减少内部创建对象的次数,从而获得更高的运行性能。
  • 返回:定义与 targetCoordinateSpace 对象坐标系统相关的显示对象面积的矩形。

globalToLocal()

public globalToLocal(stageX: number,stageY: number,resultPoint: egret.Point): egret.Point

将从舞台(全局)坐标转换为显示对象的(本地)坐标。

  • 支持版本:Egret 2.4

  • 运行平台:Web,Native

  • 参数

    • stageX: number - 舞台坐标x
    • stageY: number - 舞台坐标y
    • resultPoint: egret.Point - 一个用于存储结果的可复用 Point 实例,传入此参数能够减少内部创建对象的次数,从而获得更高的运行性能。
  • 返回:具有相对于显示对象的坐标的 Point 对象。

hitTestPoint()

public hitTestPoint(x: number,y: number,shapeFlag: boolean): boolean

计算显示对象,以确定它是否与 x 和 y 参数指定的点重叠或相交。x 和 y 参数指定舞台的坐标空间中的点,而不是包含显示对象的显示对象容器中的点(除非显示对象容器是舞台)。注意,不要在大量物体中使用精确碰撞像素检测,这回带来巨大的性能开销

  • 支持版本:Egret 2.4

  • 运行平台:Web,Native

  • 参数

    • x: number - 要测试的此对象的 x 坐标。
    • y: number - 要测试的此对象的 y 坐标。
    • shapeFlag: boolean - 是检查对象 (true) 的实际像素,还是检查边框 (false) 的实际像素。
  • 返回:如果显示对象与指定的点重叠或相交,则为 true;否则为 false。

localToGlobal()

public localToGlobal(localX: number,localY: number,resultPoint: egret.Point): egret.Point

将显示对象的(本地)坐标转换为舞台(全局)坐标。

  • 支持版本:Egret 2.4

  • 运行平台:Web,Native

  • 参数

    • localX: number - 本地坐标 x
    • localY: number - 本地坐标 y
    • resultPoint: egret.Point - 一个用于存储结果的可复用 Point 实例,传入此参数能够减少内部创建对象的次数,从而获得更高的运行性能。
  • 返回:一个具有相对于舞台坐标的 Point 对象。

removeEventListener()

public removeEventListener(type: string,listener: Function,thisObject: any,useCapture: boolean): void

从 EventDispatcher 对象中删除侦听器。如果没有向 EventDispatcher 对象注册任何匹配的侦听器,则对此方法的调用没有任何效果。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • type: string - 事件的类型。
    • listener: Function - 要删除的侦听器对象
    • thisObject: any - 侦听函数绑定的this对象
    • useCapture: boolean - 指出是为捕获阶段还是为冒泡阶段注册了侦听器。如果为捕获阶段以及冒泡阶段注册了侦听器,则需要对removeEventListener() 进行两次调用才能将这两个侦听器删除:一次调用将 useCapture 设置为 true,另一次调用将 useCapture 设置为 false。。

sortChildren()

public sortChildren(): void

  • 支持版本:all
  • 运行平台:Web,Native

willTrigger()

public willTrigger(type: string): boolean

检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。将指定类型的事件调度给此EventDispatcher 对象或其任一后代时,如果在事件流的任何阶段触发了事件侦听器,则此方法返回 true。hasEventListener() 与 willTrigger() 方法的区别是:hasEventListener() 只检查它所属的对象,而 willTrigger() 方法检查整个事件流以查找由 type 参数指定的事件。

  • 支持版本:Egret 2.4

  • 运行平台:Web,Native

  • 参数

  • 返回:是否注册过监听器,如果注册过返回true,反之返回false

示例

/*
* 以下示例演示了 DisplayObject 的各个事件。
*/
class DisplayObjectExample extends egret.Sprite {
public constructor() {
super();
this.touchEnabled = true;
this.draw();
this.addEventListener(egret.Event.ADDED, this.onAdded, this);
this.addEventListener(egret.Event.ENTER_FRAME, this.onEnterFrame, this);
this.addEventListener(egret.Event.REMOVED, this.onRemoved, this);
this.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onClick, this);
this.addEventListener(egret.Event.RENDER, this.onRender, this);
}
private draw():void {
this.graphics.beginFill(0xff0000);
this.graphics.drawRect(0, 0, 100, 100);
this.graphics.endFill();
}
private onClick(event:MouseEvent):void {
egret.log("onClick");
this.parent.removeChild(this);
}
private onAdded(event:Event):void {
egret.log("onAdded");
}
private onEnterFrame(event:Event):void {
egret.log("onEnterFrame");
this.removeEventListener("enterFrame", this.onEnterFrame, this);
}
private onRemoved(event:Event):void {
egret.log("onRemoved");
}
private onRender(event:Event):void {
egret.log("onRender");
}
}