在EaselJS中使用SpriteStage会使Sprite的掩码不起作用

时间:2015-02-12 19:34:31

标签: javascript animation sprite easeljs

我在EaselJS中使用Sprites制作动画,由于性能问题,我必须使用SpriteStage类来帮助完成。我也使用了很多面具来使精灵被夹在某些部位。

现在使用SpriteStage时,我的所有蒙版都不再应用了。我之所以认为它是因为SpriteStage不支持为孩子们添加形状,但我认为它可以起作用,因为我并没有真正将它添加到舞台的孩子身上,只是将它应用于Sprite。

我在另一个SO问题中使用了this fiddle,添加了一些代码来表明掩码在SpriteStage下无效。

var maskRect = new createjs.Graphics().drawRect(0, 0, 16, 16);
var shape = new createjs.Shape(maskRect);

var animation = new createjs.Sprite(ss);
animation.mask = shape; // Clip is applied

有没有办法在SpriteStage下使用掩码?或者有没有办法达到同样的效果?

1 个答案:

答案 0 :(得分:1)

SpriteStage适用于基于WebGL的渲染,目前它不支持图形/矢量内容。这意味着不支持EaselJS Shapes和矢量蒙版。

您可以创建蒙版内容,对其进行缓存,然后使用.cacheCanvas作为SpriteSheet。这并不理想,并且难以与多个精灵一起使用。您可以使用SpriteSheetBuilder生成有用的SpriteSheet。这些只是建议,我之前没有测试过。