On ClipEvent(load) {
// Создаем массив.
trail = new Array;
trailNum = 0;
// Меньшее значение переменной соответствует меньшей
// скорости.
speed = 2;
}Следуюший обработчик начинается с создания экземпляра клипа. Каждому клипу присваивается уникальное имя вида 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, то программе приходится одновременно управлять сотней клипов.
Другие возможности
Для создания следа за курсором вы также можете использовать клипы, содержашие собственную анимацию. Таким образом вы можете попробовать получить эффект сверкаюшего пламени или дыма.Эффект трехмерности
Исходные файлы: 3d.fla, 3dcubepoints.fla, 3dcube.fla, 3dspaceship.fla
Другим часто применяемым специальным эффектом Flash является моделирование небольшого трехмерного объекта. Некоторые разработчики говорят, что Flash не позволяет создавать настояшую трехмерную графику, но это не может сделать ни одна компьютерная программа, поскольку компьютерные мониторы двумерные.
Вся компьютерная трехмерная графика – это всего лишь иллюзия. Хотя Flash и ActionScript не могут похвастаться большими возможностями для создания трехмерных объектов, с их помошью нетрудно создать некоторые специальные эффекты. Используя законы тригонометрии, вы можете преобразовать трехмерные координаты в двумерные на экране и смоделировать простые объекты наподобие куба.
Задача проекта
В данном разделе вы научитесь преобразовывать координаты трехмерного пространства в двумерные экранные координаты. Затем вы примените эти знания для создания простого трехмерного куба, а потом и более сложного объекта. Пользователь сможет управлять этими моделями, чтобы убедиться в том, что они действительно являются трехмерными объектами, а не простыми двумерными изображениями.
Подход
Для того чтобы понять, как используются трехмерные координаты, вам необходимо знать основы аналитической геометрии. Это один из самых трудных разделов данной книги, поэтому, если изучение математики вас не привлекает, вы можете пропустить его и перейти к следующей главе.
Подготовка ролика
В описываемых ниже примерах используются только точки и линии. Создать точку легко, однако линия должна соответствовать определенным условиям. Подробное описание приводится ниже.
Создание кода