【easeljs】显现对象基本 DisplayObject 类

类引见

继续自 EventDispatcher

DisplayObject is an abstract class that should not be constructed directly. Instead construct subclasses such as Container, Bitmap, and Shape. DisplayObject is the base class for all display classes in the EaselJS library. It defines the core properties and methods that are shared between all display objects, such as transformation properties (x, y, scaleX, scaleY, etc), caching, and mouse handlers.

要领

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

Defined in cache:749
把此显现对象写进一个新的隐蔽的canvas,然后用于接下来的绘制。此显现对象可能有多个child,也可能有多个滤镜,stage每次update须要绘制这个对象的时刻都邑从新绘制一切child和滤镜,因而能够用这个缓存起来,下次直接把它放上画布速率就快了。缓存好的这个显现对象,能够自由地挪动、扭转、渐消(faded)。但是,假如它的内容发生变化,你必需手动挪用updateCache() 或许从新运用 cache()。你必需经由过程x, y, w, 和 h参数,指定缓存的地区,这里指定的矩形地区会被衬着和缓存,且运用的是这个对象的坐标系。

比方假如你定义了一个外形,而且在外形里0,0位置画一个半径25的圆形:

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

参数:

  • x Number
    须要缓存的地区的x值(此地区指的是此对象自身的地区,坐标系是此对象自身的)

  • y Number
    须要缓存的地区的y值(此地区指的是此对象自身的地区,坐标系是此对象自身的)

  • width Number
    须要缓存的地区宽度(此地区指的是此对象自身的地区)

  • height Number
    须要缓存的地区高度(此地区指的是此对象自身的地区).

  • [scale=1] Number optional
    缓存的scale会自动建立。比方运用myShape.cache(0,0,100,100,2)缓存一个矢量外形,然后得出的缓存canvas会是200x200 px。这个能够让你更保真地放大和扭转缓存元素。默许是1。

注重1:滤镜要在缓存之前指定。一些滤镜(比方 BlurFilter)和scale一同运用是不会发生结果的。(这一点是官方翻译过来的,应该是指注重3中提到的题目吧)
注重2:一般,终究的缓存canvas的面积是widthscale乘以heightscale,但是一些滤镜(比方 BlurFilter)会给原对象增加宽度(能够看到运用过BlurFilter的矩形,边沿已不是一条线了,而是扩大出一些像素出去了的),所以缓存时的宽度注重加上这些扩大出来的。怎样猎取BlurFilter扩大出的像素
注重3:注重:width和height两个参数,关于已用scale转变过外形大小的对象来讲,应该填它本来的宽度,而不是转变大小后的宽度,比方一个矩形原始宽度是100px,设置了scaleX=0.5,填这个值时,应该填100,而不是50!(这是我理解了以后加的,官方并没有如许说,而且好像只要加了BlurFilter的对象才会如许,我现在在举行现实开辟,不能做试验,晚些有空再做试验吧。)

    原文作者:黒之染
    原文地址: https://segmentfault.com/a/1190000004392080
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞