Анимация Stroke Line.

апреля 29, 2009

Задача - надо анимировать линию, летящую по произвольному пути. )) Stroke эффект одним словом.
Задача 2 - анимировать процесс рисования некоей произвольной фигуры.

Если кому то много букв — смотрим видео версию.
Если кому то жалко трафика — читаем ниже.

Все может быть решено довольно просто.

1. Рисуем законченный путь нашей линии (кривая)
step1
2. Дублируем кривую на новый слой.
3. Создаем круглый шейп и конвертируем его в графический клип.
4. Слой с дублем кривой превращаем в моушн-гайд для круглого шейпа.
5. Делаем анимацию шейпа по всему пути.
step5
6. Выделяем фреймы с моушнГайдом и шейпом, вырезаем их и создаем новый графический символ в билиотеке, куда и вставляем вырезанные фреймы. Или пользуемся необычайно полезной штукой Layers manager, который можно найти тут:  http://flash-animation.ru/category/plugins/ (Лерика, если ты это читаешь поправь линки! Прямая ссылка на пост о плагине не работает!!!)
7. Временно переводим моушнГайд в обычный слой, чтобы видеть путь в клипе маски.
8. Возвращаемся на сцену - совмещаем кривую и клип.
step8
9. Возврашаемся в клип маски, и восстанавливаем моушнГайд для слоя с кривой.
10. Слой с клипом, в котором находится анимация превращаем в маску для слоя с изначальной кривой. Ура.
step10
Задача 2.
1. Переводим клип с анимацией в ранг MovieClip. Дадим ему instance-имя masker.
2. Обернем masker в еще один мувиКлип с instance-name = mask_mc
3. Конвертируем кривую в мувиКлим с instance-name = line_mc
4. Пишем на таймлайне с линией и маской нехитрый код.

var mask_count:Number = 1;
mask_mc.masker.stop();
onEnterFrame = function():Void
{
	var mc:MovieClip = mask_mc.masker.duplicateMovieClip("mask"+mask_count,mask_count);
	mc.gotoAndStop(mask_count);
	if(mask_count == mask_mc.masker._totalframes)
	{
		delete onEnterFrame;
	}
	mask_count++;
}
line_mc.setMask(mask_mc);

5. Готово.

Entry Filed under: AS2.0, ActionScript, анимация

10 комментариев Add your own

  • 1. ShuRik  |  апреля 30, 2009 at 6:14

    Я так понял из аидео, что анимированный кружок дублируется и поэтому линия зарисовывается постепенно? А не проще было это нарисовать? Я всегда так делал.

  • 2. murejib  |  апреля 30, 2009 at 7:21

    ShuRik, я тоже всегда так делал, разбивал линию на участки, группируя их, потом раскидывал на слои и выстраивал лесенку покадровую. А этот ход придумал буквально вчера, и думаю он более гибкий — можно регулировать скорось прорисовки, если вдруг это необходимо.
    Конечно минус в том, что анимация видна только при публикации, мне лично милее видеть все в процессе работы, чем галюцинировать и представлять как оно тут будет.
    Однако рецепт есть, и возможно кому то он придется как раз кстати.

  • 3. Юлия R.  |  мая 5, 2009 at 12:16

    А я не могу сделать вторую задачу… а так надо..
    не могу понять что как назвать и куда код написать..
    можете поподробнее объяснить или исходник скинуть ? =/

  • 4. murejib  |  мая 5, 2009 at 13:26

    http://murejib.com/sources/stroke_fl8.fla.zip

    Исходник.

  • 5. murejib  |  мая 12, 2009 at 10:26

    Блог что-то поттупливает, некоторые комментарии уходят в небытие.

    Отвечаю на вопрос, как обратный процесс организовать: чтобы линия стиралась.
    Для этого достаточно первым кадром продублировать маску ровно столько раз, сколько в ее анимации кадров, соответственно, смещая каждый дубль на один кадр.
    Каждому дублю давать имя с неким порядковым номером N, который естественно инкрементируется с каждым новым дублем.
    потом запустить onEnterFrame, в котором каждый кадр стирать дубль N, уже декрементируя порядковый номер.

  • 6. chunya  |  мая 25, 2009 at 14:04

    а если это объяснить популярно? урок можно этот дополнить? ^_^

  • 7. murejib  |  мая 25, 2009 at 23:26

    - видео
    - пошаговая инструкция
    - исходник

    Куда еще популярнее? ))
    Я оставляю за читателем священное право дать работ своему мозгу.

  • 8. Юлия R.  |  мая 26, 2009 at 2:49

    Ну что есть то есть)) Надо думать)
    Исходник у меня всё ж не открылся. Т.к. флеш у меня доисторический. Но зато я скачала видюху и посмотрела в замедленном) И там всё видно)

  • 9. chunya  |  мая 26, 2009 at 7:51

    Уважаемый murejib, Вы не поняли, я попросил более подробно объяснить про обратный процесс…. этой мой комментарий тогда поттерся, я просил объяснить про обратный процесс… но я попробую угу)

  • 10. Andrew  |  мая 27, 2009 at 16:04

    Поменял имена ( в скрипте тоже) баботаеют только по отдельности, в одном кадре вместе, нет? Почему, возможно это очень очевидно, но я ОЧЕНЬ новенький в этом))) Спасибо. ( вот то что получилось, исправте пожалуйста если не сложно http://ifolder.ru/12328169)

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


МЕТА

метки

Календарь

Апрель 2009
Пн Вт Ср Чт Пт Сб Вс
« Март   Май »
 12345
6789101112
13141516171819
20212223242526
27282930  

Архив

Ссылки

Радио