Задача: группа мувиклипов должна перемещаться за курсором, соблюдая строгую очерёдность.
За основу взят этот эффект, написанный под ActionScript 2.0:
Но не будем ограничиваться только переводом. Попробуем сделать что-то более универсальное...
Первым делом, создаём мувиклипы, которыми будем управлять...
Создаём мувиклип container_mc - это контейнер для всей нашей графики...
Внутри мувиклипа container_mc создаём много мувиков, которые и будут бегать за курсором. Имена у этих мувиков следующие: containerText_mc_1, containerText_mc_2, containerText_mc_3, containerText_mc_4 и containerText_mc_5. Можно сделать гораздо больше, но мне лень.
Обратите внимание, что у всех мувиклипов точка регистрации находится в верхнем левом углу. Это важно.
Пишем код на главной временной шкале...
Код ActionScript 3.0:
/*
импорт классов
*/
import flash.events.Event;
import flash.display.MovieClip;
/*
переменные
*/
var speed_num:Number = 4; // скорость
var indent_num:Number = 30; // зазор между курсором и мувиклипами
var arrayNameMovieClips_arr:Array = ["containerText_mc_1", "containerText_mc_2", "containerText_mc_3", "containerText_mc_4", "containerText_mc_5"]; // массив с именами мувиклипов
/*
в каждом кадре
*/
this.addEventListener(Event.ENTER_FRAME, onEnterFramesFunc);
function onEnterFramesFunc(event:Event):void
{
/*
переменные
*/
var i:uint = 0;
var l:uint = arrayNameMovieClips_arr.length;
var prev_mc:MovieClip;
var current_mc:MovieClip;
var length_num:Number = 0;
/*
проходимся по массиву
*/
while(i < l)
{
/*
берём мувиклип
*/
current_mc = container_mc.getChildByName(arrayNameMovieClips_arr[i]) as MovieClip;
/*
и перемещаем его в новые координаты
*/
if(i)
{
current_mc.x += (prev_mc.x - current_mc.x + length_num) / speed_num;
current_mc.y += (prev_mc.y - current_mc.y) / speed_num;
}
else
{
current_mc.x += (mouseX - current_mc.x + indent_num) / speed_num;
current_mc.y += (mouseY - current_mc.y) / speed_num;
}
/*
изменяем значение у переменных
*/
length_num = current_mc.width;
prev_mc = current_mc;
/*
переходим к следующему мувику
*/
i++;
}
}
Пояснения, как умел, дал в комментариях.
Смотрим, что получилось:
Ну, вроде работает.
Спасибо за внимание..))