Вращающаяся и изменяющая цвета спираль
Подготовка ролика
В данном ролике будет использоваться один элемент – спиральная фигура. Поместите его в центр рабочего поля. Начальный цвет спирали должен быть белым, а фоновый – черным. Ролик будет состоять из одного сценария, назначенного клипу с изображением спирали. Переменная п, участвующая в сценарии, содержит способ изменения цвета. Значение цвета будет соответствовать числу из предыдущего списка. Так, например, если 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. Спираль изменяет цвет и вращается
Другие возможности
Изменив оператор += на – = в последней строке кода, вы заставите спираль вращаться в обратном направлении. Вы можете также изменить способ смены цветов, изменив значения красной, зеленой и синей составляющих.