1 
  2 /**
  3  * @class 渲染器抽象基类。
  4  * @param {Object} properties 创建对象的属性参数。可包含此类所有可写属性。
  5  * @module hilo/renderer/Renderer
  6  * @requires hilo/core/Hilo
  7  * @requires hilo/core/Class
  8  * @property {Object} canvas 渲染器对应的画布。它可能是一个普通的DOM元素,比如div,也可以是一个canvas画布元素。只读属性。
  9  * @property {Object} stage 渲染器对应的舞台。只读属性。
 10  */
 11 var Renderer = Class.create(/** @lends Renderer.prototype */{
 12     constructor: function Renderer(properties){
 13         properties = properties || {};
 14         Hilo.copy(this, properties, true);
 15     },
 16 
 17     canvas: null,
 18     stage: null,
 19 
 20     /**
 21      * 为开始绘制可视对象做准备。需要子类来实现。
 22      * @param {View} target 要绘制的可视对象。
 23      */
 24     startDraw: function(target){ },
 25 
 26     /**
 27      * 绘制可视对象。需要子类来实现。
 28      * @param {View} target 要绘制的可视对象。
 29      */
 30     draw: function(target){ },
 31 
 32     /**
 33      * 结束绘制可视对象后的后续处理方法。需要子类来实现。
 34      * @param {View} target 要绘制的可视对象。
 35      */
 36     endDraw: function(target){ },
 37 
 38     /**
 39      * 对可视对象进行变换。需要子类来实现。
 40      */
 41     transform: function(){ },
 42 
 43     /**
 44      * 隐藏可视对象。需要子类来实现。
 45      */
 46     hide: function(){ },
 47 
 48     /**
 49      * 从画布中删除可视对象。注意:不是从stage中删除对象。需要子类来实现。
 50      * @param {View} target 要删除的可视对象。
 51      */
 52     remove: function(target){ },
 53 
 54     /**
 55      * 清除画布指定区域。需要子类来实现。
 56      * @param {Number} x 指定区域的x轴坐标。
 57      * @param {Number} y 指定区域的y轴坐标。
 58      * @param {Number} width 指定区域的宽度。
 59      * @param {Number} height 指定区域的高度。
 60      */
 61     clear: function(x, y, width, height){ }
 62 
 63 });