Фильтр для перекрывающихся объектов круга в ActionScript 3 - PullRequest
1 голос
/ 20 июля 2011

В основном у меня есть x круги, представленные как мувиклипы. Им всем назначен один и тот же базовый цвет (например, красный). Все они должны иметь свойство яркости в диапазоне от 0 до 1 (0 будет полностью белым, а 1 - полностью красным).

Мне бы хотелось иметь следующие свойства для представления этих кругов на сцене:

  1. Когда круги не перекрываются, они представлены, как указано выше.
  2. Когда круги перекрывают перекрывающуюся область, она должна иметь тот же основной цвет, что и исходные круги, но яркость этой области должна быть суммой яркостей всех кругов, определяющих перекрытие.
  3. Яркость насыщается на 1. Таким образом, перекрытие 2 кругов с яркостью 0,8 составляет 1 (максимальное значение) вместо 1,6.

Мне интересно, есть ли какой-нибудь BitmapFilter, который я мог бы использовать на кругах для достижения этих свойств? Или я смотрю не в том месте?

Я относительно новичок в ActionScript, поэтому любые указатели приветствуются!

1 Ответ

2 голосов
/ 20 июля 2011

Привет и добро пожаловать в SO и AS3!

Я возьму каждую точку отдельно:

1) Довольно просто, вы, наверное, уже поняли, что addChild () добавит объекты MovieClip в список отображения, что означает, что Flash будет отображать их каждый кадр.

2) Самый простой способ сделать это через «Режимы смешивания», который является способом Adobe для обработки перекрывающихся экранных объектов.

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#blendMode

Попробуйте установить для свойства .blendMode каждого круга значение BlendMode.ADD:

var circle:MovieClip = new MovieClip();
circle.blendMode = BlendMode.ADD;

3) Если BlendMode.ADD не дает желаемых результатов, попробуйте создать собственный шейдер для этой работы.

http://help.adobe.com/en_US/as3/dev/WSB19E965E-CCD2-4174-8077-8E5D0141A4A8.html

IMHO Blendmode - это самый простой способ достижения желаемого эффекта, и blendShader, если вам нужна точная настройка. Пожалуйста, прокомментируйте, если у вас есть дополнительные вопросы!

Некоторые учебные пособия и примеры:

http://www.learningactionscript3.com/2007/11/03/more-properties-blendmodes-filters/

http://active.tutsplus.com/tutorials/games/introducing-blend-modes-in-flash/

Приветствия

* * J тысяча тридцать один
...