-
Notifications
You must be signed in to change notification settings - Fork 127
DisplayObject
flashlizi edited this page May 7, 2012
·
9 revisions
- 显示对象是Quark显示对象列表结构的顶级对象。
- Image 图片。一般包括
HTMLImageElement
、HTMLCanvasElement
和HTMLVideoElement
。在Quark中图片会被封装成一个Quark.Drawable
的对象。通过setDrawable()
和getDrawable()
接口来设置和获取。 - Data 数据。包括显示对象的
x、y、width、height、alpha、rotation、visible、scaleX、scaleY、regX、regY、eventEnabled、polyArea
等属性以及用户自定义的各种数据。 - 可以通过继承扩展不同的显示对象。
- 显示对象容器就是一种可以容纳子对象的显示对象。显示对象和显示对象容器的嵌套就构成了Quark显示对象列表结构。这跟HTML的DOM树结构非常相似。
- 舞台Stage是一种特殊的显示对象。他是显示对象结构的根root,总入口。
- 显示对象容器通过
addChild()
和removeChild()
等方法来添加和删除子对象。 - 显示对象容器里的子对象采用自动深度管理方法。一般新添加的对象会显示在之前添加的对象之上。可以通过
setChildIndex()
等方法来改变子对象在容器中的索引位置,即深度。 - 显示对象容器提供
getObjectUnderPoint()
方法来获得某一点下的子对象。
- 显示对象的生命周期开始于添加到显示对象列表
container.addChild(obj)
。 - 显示对象的生命周期结束于移除显示对象列表
container.removeChild(obj)
。 - 在通过
stage.step()
方法刷新舞台的显示对象列表时,会依次循环调用显示对象的update()
和render()
方法来实现更新对象数据和渲染。
- Quark提供一个简单的
EventManager
来做系统事件的监听和回调,通过EventManager.registerStage()
方法注册相应的事件如mousedown、touchstart等到舞台,舞台会自动转发给触发事件的显示对象。 - 可以通过
obj.addEventListener()
方法让显示对象监听和响应各种事件。
- Quark目前只提供矩形碰撞(Rectangle Collision),暂不支持像素级别的碰撞检测(Pixel Collision)。
- 显示对象提供
getBounds()
方法获得其外包围矩形区域。 - 显示对象提供
hitTestPoint()
和hitTestObject()
等方法来做点或对象的碰撞检测。