Иллюстрированный самоучитель по созданию Flash-игр

Вращающаяся и изменяющая цвета спираль

Подготовка ролика

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

Иллюстрированный самоучитель по созданию Flash-игр › Создание визуальных эффектов › Вращающаяся и изменяющая цвета спираль
Рис. 5.4. Спираль изменяет цвет и вращается

Другие возможности

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.