Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.06.2012, 15:37
BGI_HANNA вне форума Посмотреть профиль Отправить личное сообщение для BGI_HANNA Найти все сообщения от BGI_HANNA
  № 1  
Ответить с цитированием
BGI_HANNA

Регистрация: Jun 2012
Адрес: Минск
Сообщений: 6
По умолчанию Эффект рисования сложного контура через AS 3.0

Подскажите, как реализовать эффект динамического рисования сложного контура (например, рукописные буквы) через AS3.0 (как будто кто-то пишет рукописным шрифтом и этот процесс видит пользователь). В сети куча уроков по этому эффекту, но они все построены на покадровой анимации. Нашла также возможность через прогаммирование, но на AS 2.0. (http://forum.darkdragons.ru/showthread.php?t=1017 2 пост).

Мне необходимо реализовать данный эффект в ActionScript 3.0.

Логика моя была такая:
есть картинка-контур (или шрифт), который мы якобы рисуем, на него должна быть наложена динамическая маска. В качестве маски используется мувик (кружочек-точка-кончик карандаша или ручки, оторая пишет), этот мувик анимированно движется по пути, который совпадает с контуром нашей картинки. Но таким образом наша маска не увеличивается по площади, открывая весь контур, а просто перемещается по нему. Поэтому вводим AS 3, с помощью которого мы добавляем сначала общий контейнер-мувик и делаем его маской для нашего рисунка. А потом динамически (через enter frame) наполняем этот мувик экземплярами нашего кружочка-отпечатка, но каждому последующему кружочку задаем коорданаты расположения на сцене, совпадающие с координатами (для данного кадра) нашего мувика, движущегося по пути. Т.о. наши добавляемые экземпляры постепенно рисуют собой этот путь, а т.к. лежат в муве-маске, то т.о. нам пастопенно открывается наша картинка-контур.

визуально эффект типа такого http://demiart.ru/forum/index.php?showtopic=29969

только в моем случае это будет не покадровая анимация, а AS3, и не рука а рукописная надпись, которую типа кто-то пишет

Возможно, этот эффект можно получить с помощью другого алгоритма.
Буду рада любому предложенному решению.

P.s. В AS 3.0 я еще новичок, но учусь быстро))

Старый 21.06.2012, 17:44
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Парадокс в том, что если Вы сможете описать путь, то и маска как бы совершенно не нужна)))
Весь вопрос как раз в том, как описать путь, последовательность координат.
Если надпись известна заранее (текст и шрифт), то можно забить координаты в Vector или массив.
Снять последовательность координат можно, написав свой маленький "редактор", взяв простой алгоритм "рисовалки", изменить его так чтобы координаты точек, по которым рисуется линия, записывались в массив (или просто трейсились), и аккуратно обвести надпись, подложив готовую картинку. Вы наверное видели такие рисовалки на флэше, которые сохраняют последовательность рисования и потом могут воспроизвести ее, как мультик. Я думаю надо копать в эту сторону.
__________________
Reality.getBounds(this);

Старый 21.06.2012, 18:00
BGI_HANNA вне форума Посмотреть профиль Отправить личное сообщение для BGI_HANNA Найти все сообщения от BGI_HANNA
  № 3  
Ответить с цитированием
BGI_HANNA

Регистрация: Jun 2012
Адрес: Минск
Сообщений: 6
Ваша идея понятна, но маска все же нужна, т.к. рисунок-контур под ней переменной толщины (шрифт имитирует разный нажим пера), он преравистый. и как я понимаю, заменить рисунок прорисовкой пути по координатам не подойдет.
и мне хотелось бы каких-то практических примеров кода.
В моем алгоритме я не записываю эти координаты в массив, а просто на лету "считываю" их в каждом кадре с движущегося по пути мувика. Но у загвоздка встала в том, как зацикленно каждый кадр добавлять новый экземпляр одного и того же клипа, но с уникальным именем.

Старый 21.06.2012, 18:04
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Почему просто не рисовать маску графиксом по координатам? Линия может быть не только 1 пиксель толщиной)) Все лучше, чем несколько тысяч клипов.
__________________
Reality.getBounds(this);

Старый 21.06.2012, 18:10
BGI_HANNA вне форума Посмотреть профиль Отправить личное сообщение для BGI_HANNA Найти все сообщения от BGI_HANNA
  № 5  
Ответить с цитированием
BGI_HANNA

Регистрация: Jun 2012
Адрес: Минск
Сообщений: 6
Ок. Давайте, пожалуйста здесь поподробнее. Про график и про координаты. Буду благодарна за ссылки на поясняющий материал и на примеры.

P.s. еще как-то на практике столкнулась с проблемой, что линия как таковая не применялась как маска, и пришлось заменить ее на прямоугольник толщиной 1-2 пикселя. Подскажите новичку?

Старый 21.06.2012, 18:18
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Возможно, не ставили маске cacheAsBitmap = true;
Цитата:
Про график и про координаты.
Не график. Graphics. Тот самый, который рисует программно линии и заливки))
На каждый кадр (ENTER_FRAME) Вы снимаете координаты ручного мувика на гайде (если я правильно понял). И рисуете в маске линию в эту координату ( Graphics#lineTo() ).
Ну, или добавляете свой кружок в эту координату.. Боюсь только что в таком случае линия будет прерывистой.
__________________
Reality.getBounds(this);

Старый 22.06.2012, 14:48
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 7  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
BGI_HANNA можно путь сделать в виде набора curveTo линий. Эти линии затем переделать в массив точек, кружек-перо передвигать по массиву точек, одновременно его перерисовывать в bitmapdata. А эту bitmapdat-у уже использовать как маску для основного текста.
Пример с исходником http://swf-flash.blogspot.com/2012/0...animation.html
__________________
Гоночка

Старый 22.06.2012, 14:51
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 8  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Может чуть не в тему. Но в своё время очень помогло вот это:
http://en.nicoptere.net/?p=476
__________________
adobe AS3 manual

Старый 22.06.2012, 18:09
BGI_HANNA вне форума Посмотреть профиль Отправить личное сообщение для BGI_HANNA Найти все сообщения от BGI_HANNA
  № 9  
Ответить с цитированием
BGI_HANNA

Регистрация: Jun 2012
Адрес: Минск
Сообщений: 6
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Возможно, не ставили маске cacheAsBitmap = true;
Нет не ставила. Поместила программно экземпляр своей картинки на сцену, сверху программно нарисовала линию (lineStyle,moveTo,lineTo), сделала линию маской. Результат - при публикации нет ничего (ни маски, ни картинки). Если вместо линии использовать например прямоугольник (с такими же физ размерами) - все работает.

В чем подвох?

Добавлено через 3 минуты
Допустим, я обрисовала линиями свой рукописный шрифт с помощью массива координат (на самом деле еще сложность с отрывом пера от бумаги для написания отдельных букв, пока получается делать только по 2буквы, если брать больше, то линия вопреки логике рисуется и месте отрыва).
Теперь вот эта проблема с линией-маской.

Добавлено через 10 минут
Цитата:
Сообщение от Alex Lexcuk Посмотреть сообщение
Пример с исходником http://swf-flash.blogspot.com/2012/0...animation.html
Вы не могли бы дать пояснения к своему коду?


Последний раз редактировалось BGI_HANNA; 22.06.2012 в 18:14.
Старый 22.06.2012, 18:30
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 10  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Цитата:
Сообщение от BGI_HANNA Посмотреть сообщение
Нет не ставила. Поместила программно экземпляр своей картинки на сцену, сверху программно нарисовала линию (lineStyle,moveTo,lineTo), сделала линию маской. Результат - при публикации нет ничего (ни маски, ни картинки). Если вместо линии использовать например прямоугольник (с такими же физ размерами) - все работает.

В чем подвох?
В таком случае подозреваю что как маска работает только заливка
__________________
adobe AS3 manual

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:23.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.