as3isolib是为了提供一个通用的使对象有效/失效的处理过程。当一个对象的属性改变,通过事件标记,之后使该对象有效。当对象的属性真正的改变的时候,没有必要真正的让该对象失效,这个过程节省了渲染时间.as3isolib的渲染过程本质上是它的隐藏过程。
默认情况下,IsoViews在它(所在的)场景中是分开进行渲染的,这样是为了减少在渲染过程中对堆栈的消耗。
IsoView.render()
(1) validatePosition() -- 基于一个新的位置校正视图内部的显示列表。
(2) viewRenders -- 遍历viewRenderers数组,并且执行IViewRenderer.renderView()。
(3) scenes -- 若渲染过程循环,它会遍历场景中的数组,并执行IIsoScene.render()方法。
IsoScene.render() -- 该方法中包含三个过程:preRenderLogic,renderLogic,postRenderLogic。
(1) preRenderLogic() -- 顾名思义,该方法在处理子对象之前,会先
执行在每个渲染过程中的逻辑。在这种情况下,场景会分发一个
IsoEvent.RENDER类型的事件。开发者可以根据需要来监听这个
事件,这样他们可以在渲染子对象之前处理一些附加的逻辑。
(2) renderLogic() -- 该方法是一个核心的渲染过程,它用来处理子对
象,layoutRenderers和styleRenderers。
1) children -- 若循环渲染场景,它会遍历每一个子对象,并且调用
子对象的child.render()方法。
2)layoutRenderers -- 遍历基于3D等距的对象。
3)styleRenderers -- 遍历styleRenderers数组,执行
IsceneRender.renderScene()。
(3) postRenderLogic() -- 在分发IsoEvent.RENDER_COMLETE之前,执行任何上最后一次的清理。它也调用过期的方法sceneRenderd。
原文连接:http://code.google.com/p/as3isolib/wiki/renderPhase