ActionScript 3.0: мувиклипы, привязанные к курсору

Задача: группа мувиклипов должна перемещаться за курсором, соблюдая строгую очерёдность.

За основу взят этот эффект, написанный под 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++; } }

Пояснения, как умел, дал в комментариях.

Смотрим, что получилось:

Ну, вроде работает.

Скачать исходники | Download

Автор: admin

Дата добавления: 2015-10-01

Просмотров: 8672

Рейтинг поста: +12-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2015-10-14
Яповчанка, слишком много лишних телодвижений: http://edapskov.ru/content/text_for_mouse_with_clock.zip
Комментатор
Комментарий добавил(а): Яповчанка
Дата добавления: 2015-10-14
Здравствуйте..
Подскажите,пожалуйста,что я делаю Здесь не так?
Комментатор
Комментарий добавил(а): Яповчанка
Дата добавления: 2015-10-01
Поняла.Спасибо)))
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2015-10-01
Яповчанка, не имеет значения, что в мувиклипах находится. Если вам нужны часы, то выводите в разных мувиклипах часы, минуты и секунды + разделители. Если нужен текст, то разбейте его на нужное количество частей и разместите эти части в мувиклипах. Код я старался сделать более-менее универсальным, а не просто перевести с одного языка на другой.
Комментатор
Комментарий добавил(а): Яповчанка
Дата добавления: 2015-10-01
Большое спасибо!!!
Вы самый отзывчивый человек на просторах Интернета)))))
!!!!!!!!
Скачала исходник..Буду разбираться...))))
...а как же с часиками,которые
бегают за курсором и потом... появляется дата..
????
Может это все в одном...
???
Но в любом случае,я еще раз говорю,Спасибо!!!
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Страница 2 из 2: 12
Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика