2017-02-21 88 views
1

Я проделал некоторое копание и не могу найти четкой документации по этому вопросу. Когда пользователь нажимает на сцену, я хотел бы вытащить экземпляр Symbol A из библиотеки и поместить его на сцену, затем вытащить экземпляр Symbol B и назначить его как маску.Можно ли назначить маски в проекте Adobe Animate CC HTML5/Canvas с помощью Javascript?

Уверен Символ B - это «действительная» маска, так как она просто содержит форму.

В прежние времена это было бы так просто, как:

symbolAInstance.mask = symbolBInstance; 

Любой путь для достижения этой цели с помощью JS/CreateJS?

Спасибо!

ответ

1

MovieClips нельзя использовать непосредственно в качестве масок в CreateJS, только для фигур/графики. http://createjs.com/docs/easeljs/classes/DisplayObject.html#property_mask

Если вы хотите использовать что-то более сложное, например Bitmap или MovieClip, это возможно, но это требует нескольких шагов и имеет ограничения.

  1. Cache мувиклипе вы хотите использовать в качестве маски
  2. Создание AlphaMaskFilter на «замаскированной» клип, указывающий на cacheCanvas (растрового изображения, генерируемого кэша) маска клипа
  3. Кэш-память «замаскированной» клип для применения фильтра.

Документация для AlphaMaskFilters имеет простой пример. http://createjs.com/docs/easeljs/classes/AlphaMaskFilter.html

Одним из основных ограничений является то, что если вы измените маску или замаскированные клипы (временную шкалу воспроизведения, размер изменения и т. Д.), Вам придется повторно кэшировать любые изменения. Таким образом, если маска меняется, необходимо повторно кэшировать маску и замаскированный клип. Делать это для оживления маски очень дорого, и этого следует избегать, если это возможно.

Надеюсь, что это поможет.