生命周期
从图形创建到完成渲染的整个生命周期, 执行顺序如下:
数据变化的原始事件
ChildEvent.ADD
添加图形。
ChildEvent.REMOVE
移除图形。
AttrEvent.CHANGE
图形属性被修改。
RenderEvent.REQUEST
观察者接收数据变化事件,并发送 render.request
事件通知更新渲染。
渲染器接收 render.request
事件, 调用 window.requestAnimationFrame
等待开始渲染。
RenderEvent.START
开始本轮渲染,render.start
与 render.end
间可以进行多次渲染。
LayoutEvent.REQUEST
请求布局。
布局器接收 layout.request
事件,准备开始布局。
LayoutEvent.START
开始本轮布局,layout.start
与 layout.end
间可以进行多次布局。
WatchEvent.REQUEST
请求观察数据用于布局。
观察者接收 watch.request
事件,并发送数据。
WatchEvent.DATA
接收观察数据。
LayoutEvent.BEFORE_ONCE
单次布局前。
计算出所有更新图形布局前的 bounds
。
LayoutEvent.ONCE
单次布局中,实际已经布局好了。
计算出所有更新图形布局后的 bounds
,得到需要重新渲染的 bounds
。
LayoutEvent.AFTER_ONCE
单次布局后, 可以再调用 LayoutEvent.AGAIN
进行多次补充布局。
LayoutEvent.LAYOUT
本轮布局中。
LayoutEvent.END
完成本轮布局。
RenderEvent.BEFORE_ONCE
单次渲染前。
RenderEvent.ONCE
单次渲染中,实际已经渲染好了。
RenderEvent.AFTER_ONCE
单次渲染后, 可以再调用 RenderEvent.AGAIN
进行多次补充渲染。
RenderEvent.RENDER
本轮渲染中。
RenderEvent.END
完成本轮渲染。