【问题标题】:createjs combine 2 shapes in a maskcreatejs 在掩码中组合 2 个形状
【发布时间】:2021-12-21 12:32:19
【问题描述】:

我有一个符号 S1,它有两种形状(比如说 sh0 和 sh1)。在舞台上,我有另一个符号 mc 的实例。在运行时,我将创建符号 S1 的实例 mc1。使用createjs,如何使用mc1作为mc的掩码?

【问题讨论】:

    标签: masking


    【解决方案1】:

    我假设当您说“符号”时,您指的是 Adob​​e Animate 中的图形或影片剪辑。不幸的是,您只能使用 CreateJS“形状”as a mask directly。有几个选项:

    1. 自己将形状组合成一个。

    2. 结合说明。这有点脏,但理论上您可以将图形指令从一种形状连接到另一种形状。我怀疑如果 Shape 实例具有不同的 x/y 位置,这会出现问题。

    symbol.shape1.graphics._instructions.concat(symbol.shape2.graphics._instructions);
    
    1. 缓存符号,将其用作带有AlphaMaskFilter 的掩码。文档中的示例应该可以满足您的需求。
     var box = yourSymbol;
     box.cache(0, 0, 100, 100);
    
     var bmp = new createjs.Bitmap("path/to/image.jpg");
     bmp.filters = [
         new createjs.AlphaMaskFilter(box.cacheCanvas)
     ];
     bmp.cache(0, 0, 100, 100);
    

    第 3 个可能是您最好的选择,但由于使用了过滤器(特别是在内容发生变化并且您必须不断更新它时),它会受到限制并且可能会占用大量性能。

    请随时发布有关您正在使用的产品的更多详细信息,以获得更好的推荐。

    干杯。

    【讨论】:

      猜你喜欢
      • 2019-01-08
      • 2020-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-05
      • 2016-12-31
      • 2013-03-12
      • 1970-01-01
      相关资源
      最近更新 更多