1

我已经进行了一些挖掘,但找不到任何明确的文档。当用户单击舞台时,我想从库中拉出符号 A 的实例并将其放置在舞台上,然后拉出符号 B 的实例并将其分配为掩码。

我确信符号 B 是一个“有效”的面具,因为它只包含一个形状。

在过去,这很简单:

symbolAInstance.mask = symbolBInstance;

有什么方法可以使用 JS/CreateJS 实现这一点?

谢谢!

4

1 回答 1

1

在 CreateJS 中,MovieClips 不能直接用作遮罩,只能用作 Shapes/Graphics。 http://createjs.com/docs/easeljs/classes/DisplayObject.html#property_mask

如果你想使用更复杂的东西,比如位图或影片剪辑,这是可能的,但它需要几个步骤,并且有局限性。

  1. 缓存要用作蒙版的影片剪辑
  2. 在指向蒙版剪辑的“蒙版”剪辑上创建一个AlphaMaskFiltercacheCanvas(缓存生成的位图)
  3. 缓存“蒙版”剪辑以应用过滤器。

AlphaMaskFilters 的文档有一个简单的示例。http://createjs.com/docs/easeljs/classes/AlphaMaskFilter.html

主要限制之一是,如果您更改蒙版或蒙版剪辑(播放时间线、更改大小等),则必须重新缓存任何更改。因此,如果遮罩发生变化,遮罩和遮罩剪辑都需要重新缓存。这样做以动画蒙版非常昂贵,应尽可能避免。

希望有帮助。

于 2017-02-22T16:59:14.290 回答