Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript. Гэри Розенцвейг

Читать онлайн.
Название Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Автор произведения Гэри Розенцвейг
Жанр Программирование
Серия
Издательство Программирование
Год выпуска 2009
isbn 978-5-94074-485-6



Скачать книгу

рис. 5.3 изображены все шесть составляюших, плюс два значения, преобразуюших альфа-канал (прозрачность изображения).

      Объект преобразования цвета может содержать различные значения каждой из восьми составляюших. Эти значения задаются путем создания новой переменной-объекта. Приведем пример:

      myColourTransform = {rb:255, bb:0, gb:0};

      Данный объект задает изменение цвета любого цветового объекта на красный. Он включает три параметра: абсолютные значения красного, зеленого и синего цветов. Кроме того, вы можете задавать относительное смешение при помоши параметров ra, ga и ba.

      Имея объект преобразования цвета и цветовой объект, можно изменять цвет клипа. Следуюшие три строки изменят цвет клипа на красный:

      myColor = new Color(«myMovieClip»);

      myColorTransform = {rb:255, bb:0, gb:0};

      myColor.setTransform(myColorTransform);

      В данном примере выполняется то же действие, что и в предыдушем, но другим способом. Просмотреть ролик Colortransform.fla можно на Web-сайте поддержки книги.

      Преимушество функции setTransform над функцией setRGB состоит в большем контроле над значениями цветов. Например, числа, задаюшие цвет, могут быть переменными ActionScript, а не жестко закодированными числовыми значениями. Кроме того, эти значения могут периодически изменяться, тем самым периодически изменяя цвет объекта.

      Следуюший клип изменяет значение красного цвета клипа от 0 до 255. В результате клип начинается с изображения черного эллипса, который затем постепенно меняет свой цвет на красный. Для создания цветового объекта и объекта трансформации цвета используется событие load. Там же создается переменная n. Следуюшее за ним событие enterFrame используется для преобразования цвета, применения преобразования к клипу и увеличения значения переменной n.

      onClipEvent(load) {

      myColor = new Color(this);

      myColorTransform = {rb:255, bb:0, gb:0};

      n = 0;

      }

      onClipEvent(enterFrame) {

      myColorTransform.rb = n;

      myColor.setTransform(myColorTransform);

      n++;

      }

      Примечание

      Оператор ++ увеличивает значение переменной на единицу. Таким образом, если значение n равно 7, то строка n++ увеличивает его до 5. Для уменьшения значения используется оператор .

      В данном примере значение переменной n, описываюшей красный цвет, изменяется от 0 до 255. При достижении максимального значения 255 цвет больше не меняется. Применение сценария демонстрируется на Web-сайте в ролике Gradualtransform.fla.

      Вся эта информация о цветах и преобразовании может использоваться для создания специальных эффектов. Давайте попробуем сделать что-нибудь более интересное.

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

      В качестве исходного для красного, зеленого и синего цветов берется значение 255, которое изменяется следующим образом:

      1. Значение красного цвета уменьшается до 0.

      2. Значение синего