Вращающаяся и изменяющая цвета спираль
Подготовка ролика
В данном ролике будет использоваться один элемент – спиральная фигура. Поместите его в центр рабочего поля. Начальный цвет спирали должен быть белым, а фоновый – черным. Ролик будет состоять из одного сценария, назначенного клипу с изображением спирали. Переменная п, участвующая в сценарии, содержит способ изменения цвета. Значение цвета будет соответствовать числу из предыдущего списка. Так, например, если n будет равно 3, значение красной составляющей увеличится. Значение переменной п сначала равно 1, затем увеличивается до 6 и далее цикл повторяется. Ниже приведена часть кода с последовательностью if…then, которая использует значение переменной n и изменяет объект преобразования цвета.
if (n == 1) { colorTransform.rb -= 5; if (colorTransform.rb == 0) n = 2; } else if (n == 2) { colorTransform.bb -= 5; if (colorTransform.bb == 0) n = 3; } else if (n == 3) { colorTransform.rb += 5; if (colorTransform.rb == 255) n = 4; } else if (n == 4) { colorTransform.gb -= 5; if (colorTransform.gb == 0) n = 5; } else if (n == 5) { colorTransform.bb += 5; if (colorTransform.bb == 255) n = 6; } else if (n == 6) { colorTransform.gb += 5; if (colorTransform.gb == 255) n = 1; }Оператор += используется для прибавления к переменной определенного числа. Например, код n += 5 прибавляет 5 к значению n. тот код аналогичен коду n = n + 5. Оператор = – используется для вычитания определенного числа из переменной.
Значение переменной n проверяется в каждой части выражения if…then. В случае совпадения одна из трех цветовых составляющих объекта colorTransform изменяется. После окончания изменений, сама переменная п меняет свое значение на следующие. Полная профамма представляет собой обычный клип ActionScript с функциями onClipEvent (load) и onClipEvent (enterFrame). Первая вводит объекты цвета и преобразования, вторая выполняет постепенное изменение цветов. Кроме того, мы сделаем так, чтобы клип вращался. Вращение достигается постепенным увеличением значения параметра _rotation.
onCIipEvent(load) { // Создаем объект цвета и цветовой трансформации. spiralColor = new Color(this); colorTransform = { rb: 255, bb: 255, gb: 255 }; // Вначале п равно единице, n = 1; onClipEvent(enterFrame) { // Определяем, какую составляющую необходимо изменить, if (n == 1) { colorTransform.rb -= 5; if (colorTransform.rb == 0) n = 2; } else if (n == 2) { colorTransform.bb -= 5; if (colorTransform.bb == 0) n = 3; } else if (n == 3) { colorTransform.rb += 5; if (colorTransform.rb == 255) n = 4; else if (n == 4) { colorTransform.gb -= 5; if (colorTransform.gb == 0) n = 5; else if (n == 5) { colorTransform.bb += 5; if (colorTransform.bb == 255) n = 6; else if (n == 6) { colorTransform.gb += 5; if (colorTransform.gb == 255) n = 1; // Задаем новый цвет. spiralColor.setTransform(colorTransform); // Вращаем спираль. this._rotation += 5; } } } } } }Объект this обозначает обращение клипа к самому себе. Так как сценарий назначен клипу, использование this будет обозначать, что команда, следующая после this, относится к самому клипу, а не к другому клипу или ролику.
Параметр клипа _rotation используется для поворота клипа на определенное количество градусов. Он может иметь как положительные, так и отрицательные значения. Если вы укажете значение больше 360 градусов, Flash автоматически преобразует его. К примеру, при вводе значения 370 градусов клип будет повернут на 10 градусов.
Хотя этот же эффект можно получить и средствами классической анимации, ActionScript позволяет сделать это намного быстрее.
К сведению
Частота смены кадров ролика определяет скорость вращения спирали и смены цветов. Максимальная частота во Flash MX – 120 кадр/с. Однако следует иметь в виду, что частота смены кадров напрямую зависит от быстродействия компьютера.

Рис. 5.4. Спираль изменяет цвет и вращается
Другие возможности
Изменив оператор += на – = в последней строке кода, вы заставите спираль вращаться в обратном направлении. Вы можете также изменить способ смены цветов, изменив значения красной, зеленой и синей составляющих.
