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

问题描述:

我已经做了一些挖掘,找不到任何明确的文件。当用户点击舞台时,我想从库中拉出符号A的实例并将其放置在舞台上,然后拉动符号B的实例并将其分配为掩码。是否可以通过Javascript在Adobe Animate CC HTML5/Canvas项目中分配遮罩?

我确定符号B是一个“有效”掩码,因为它只是包含一个形状。

在过去,这将是简单的:

symbolAInstance.mask = symbolBInstance; 

任何方式来完成这项使用JS/CreateJS?

谢谢!

影片剪辑不能直接用作CreateJS中的遮罩,只能用于形状/图形。 http://createjs.com/docs/easeljs/classes/DisplayObject.html#property_mask

如果您想要使用像Bitmap或MovieClip这样更复杂的东西,这是可能的,但需要几个步骤并且有一定的局限性。

  1. 缓存的影片剪辑您想要作为面膜使用
  2. 的“蒙面”夹指向面具剪辑的cacheCanvas(该由缓存生成位图)
  3. 缓存的“蒙面”创建AlphaMaskFilter剪辑应用过滤器。

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

其中一个主要限制是,如果您更改蒙版或蒙版剪辑(播放时间轴,更改大小等),则必须重新缓存任何更改。所以如果掩码改变,掩码和掩码剪辑都需要重新缓存。这样做动画掩码是昂贵,应尽可能避免。

希望有所帮助。