createjs初学-关于cache

来源:互联网 发布:网络戴帽子唱歌的女生 编辑:程序博客网 时间:2024/06/06 12:35

在DisplayObject中有一个cache方法,在这里介绍一下。

这个方法是把显示对象画到一个新的canvas中。这样一些不经常变化的复杂的显示对象性能上会优化好多(比如说有许多子对象的容器或者复杂的Shape)。在cache了以后,就不用在每一次stage.update()重绘的时候重新渲染了,所以可以大大提高效率。被缓存的显示对象可以移动、旋转、改变透明度。如果被缓存的显示对象的内容变化的话,就要重新调用cache()或者updateCahce()方法。
在官网的这个例子里面,可以明显的看出来缓存的效果。
官网cache例子

cache (x y width height [scale=1] ) 

这个方法有五个参数,最后一个scale是可选的,默认为1.
前四个参数指定了显示对象要缓存的区域,注意的事x和y的坐标都是根据当前这个显示对象本身的坐标系来计算。
最后一个参数scale表示在缓存时缩放的比例,比如 myShape.cache(0,0,100,100,2) 这样使用时,缓存出来的结果大小事200*200。

缓存一个圆型的Shape

var shape = new createjs.Shape();shape.graphics.beginFill("#ff0000").drawCircle(0, 0, 25);shape.cache(-25, -25, 50, 50);

有一点要注意,如果要在displayObject上使用filter的话,要在调用cache方法之前使用filter。

Bitmap的cache
在Bitmap对象中,关于cache总结成一句话就是:普通的bitmap一定不要调用cache方法;如果bitmap要使用滤镜filter的话,一定要调用cache。

DOMElement的cache
不适用,猜也知道。。。

Sprite的cache
因为Sprite已经是光栅格式,对于Sprite实例来说cache没有必要。不要为提高性能来调用Sprite的cache。

0 0
原创粉丝点击