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