`

[译]深入理解as3isolib渲染过程的工作原理

阅读更多

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

 

分享到:
评论
1 楼 弃天笑 2011-08-02  
楼主也搞as3?
不错

相关推荐

Global site tag (gtag.js) - Google Analytics