是否可以通过 Javascript 在 Adob​​e Animate CC HTML5/Canvas 项目中分配遮罩?

Is it possible to assign masks in an Adobe Animate CC HTML5/Canvas project via Javascript?

我已经进行了一些挖掘,但找不到任何关于此的明确文档。当用户点击舞台时,我想从库中拉出一个符号 A 的实例并将其放置在舞台上,然后拉出一个符号 B 的实例并将其指定为遮罩。

我确定符号 B 是一个 "valid" 面具,因为它只包含一个形状。

在过去,这很简单:

symbolAInstance.mask = symbolBInstance;

有什么方法可以使用 JS/CreateJS 完成此操作?

谢谢!

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

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

  1. 缓存要用作蒙版的 MovieClip
  2. 在"masked"剪辑上创建一个AlphaMaskFilter指向遮罩剪辑的cacheCanvas(缓存生成的位图)
  3. 缓存 "masked" 剪辑以应用滤镜。

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

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

希望对您有所帮助。