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

След от курсора

Следующий обработчик начинается с создания экземпляра клипа. Каждому клипу присваивается уникальное имя вида cursor trail + trailNum. Переменная trailNum используется также для определения уровня очередного клипа.

On ClipEvent(enterFrame) {
    // Создаем очередной клип.
    var mc = _root.attachMovie("cursor trail", "cursor trail" + trailNum, trailNum);
}

Созданный клип помешаем в текущую позицию курсора.

//Устанавливаем позицию.
mc._x = _root._xmouse;
mc._y = _root._ymouse,

Указатель на новый клип добавляется в массив trail. Затем значение trailNum увеличивается на единицу.

// Добавляем указатель в массив .trail.push(mc);
trailNum++;

С помощью цикла в остальной части кода происходит обращение ко всем клипам массива trail. Размер и прозрачность каждого клипа изменяются на величину speed. Когда свойство _alpha текущего клипа становится меньше либо равно нулю, этот клип удаляется из массива и ролика в целом.

// Обращаемся к существующим клипам,
for (var i = trail.lenght - 1; i >= 0; i--) {
    // Уменьшаем свойства _alpha и размер клипа,
    trail[i]._alpha -= speed;
    trail[i]._xscale -= speed;
    trail[i]._yscale -= speed;
    // Удаляем клип, когда он становится невидимым,
    if (trail[i]._alpha <= 0) {
        // Удаляем указатель из массива.
        trail.splice(0, 1);
        // Удаляем клип.
        trail[i].RemoveMovieClip();
    }
}

Обратите внимание, что массив сканируется от конца к началу. Это сделано потому, что из массива время от времени удаляются элементы, бы массив сканировался от начала к концу, то при удалении элемента возникала бы путаница в порядке следования элементов. Например, если удалить первый элемент, то первым элементом станет второй. Тогда на следующем шаге цикла произойдет обращение к следующему за вторым элементу, то есть к третьему. Таким образом, второй элемент массу окажется пропущенным.

К сведению

Меняя параметр speed, вы можете изменять длину "хвоста". Значение этой переменной также влияет на скорость исполнения ролика, так как если значение speed маленькое, например 1, то программе приходится одновременно управлять сотней клипов.

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

Для создания следа за курсором вы также можете использовать клипы содержащие собственную анимацию. Таким образом вы можете попробовать получить эффект сверкающего пламени или дыма.

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