仿as3的displaylist
AS3有显示列表这个东西,这东西可以理解为一个数组,管理着舞台上n多的的显示对象。
以Canvas来说,首先是没有显示对象的概念的,因为一个canvas就是一个显示对象,再没有更细分的概念了,于是在canvas中,舞台可以和显示对象划等号。
下面我就用js模拟显示列表,以便更好的管理“显示对象”,实现可读性更好的代码。
var displayList = [];
接着,每次画一个对象,就把它加入数组,顺序一定要保证是对的,因为后画的会覆盖先画的,不然层叠效果就错了。
那么我们怎么用它呢?虽然我不知道flash底层是怎么用显示列表的,我猜大概是遍历它,然后一个个的渲染,每一帧都这么来一下。所以我们需要为每个“显示对象”实现一个接口方法:render()
于是代码的架子就是:
var displayList = []; for (var i = 0, len = displayList.length; i < len; i++) { displayList[i].render(); }