Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Анимация dashed линии (http://www.flasher.ru/forum/showthread.php?t=144882)

toccoo 23.09.2010 13:08

Анимация dashed линии
 
Вложений: 1
Приветствую. Подскажите, как заставить контур (пунктирную линию) двигаться по кругу.
Контур произвольный, замкнутый.
Нужно чтобы эти пунктиры зацикленно двигались по контуру.

samana 23.09.2010 13:41

Это не просто, но Silin уже об этом подумал.

toccoo 23.09.2010 13:46

у Silin рисуется программно линия. А у меня допустим сложный контур - как мне его нарисовать программно?

Bgg 23.09.2010 13:58

Там же методы есть Draw.dashedPath, Draw.dashedCurve.

toccoo 23.09.2010 14:03

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

То есть ручками нарисовать контур. а программно заставить его "двигаться".

Bgg 23.09.2010 14:12

Ну все зависит от конкретной задачи. Координаты этих точек ведь известны должны быть, то почему бы и не программно описать алгоритм.

В общем создайте новую тему, да опишите проблему.

toccoo 23.09.2010 14:16

Зачем создавать новую тему. Тут за это "ругают".
Проблема в том что контур сложный. Да он заранее известен - например есть картинка девушки, её надо обвести по контуру. Ручками обвести ещё куда не шло. но программно - там может быть 300-400 опорных точек (учитывая волосы и т.д.). Вот в этом и проблема.

А если у меня таких картинок штук 20. Понимаете теперь сложность?

Bgg 23.09.2010 15:04

Угу, задача по распознаванию контуров девушек однозначно нетривиальная.

toccoo 23.09.2010 15:13

ну девушек или не девушек, это не принципиально. Принципиально то что контур сложный и хочется его именно ручками рисовать, а не программно.

djyamato 23.09.2010 15:49

раз в полсекунды (нужно подобрать интервал) запоминайте при нажатой кнопке мыши точку в массив (пользователь обрисовывает контур девушки)
так же, раз в полсекунды рисуйте точку опорную программно запомненную
При отжатии Силиновским классом по этим запомненным точкам отрисовывайте дашед лайн или карву эту

А так чтобы руками... Мне кажется это маловероятным

-De- 23.09.2010 15:56

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

drobinkin 24.09.2010 14:47

А не проще ли будет программно играться с параметрами (отрисованного вручную контура) такими, как Dash и Gap - типа, Штрих и Промежуток. В свойствах пунктирной линии они вызываются по нажатию кнопки Custom -> Dash. По идее, к ним должен быть доступ из AS.

О, нашел:
Stroke object

В хелпе ищи stroke.dash1 - An integer that specifies the lengths of the solid part of a dashed line.
Потом stroke.dash2 - An integer that specifies the lengths of the blank part of a dashed line.
Цитата: «If value is "dashed", there are two additional properties: "dash1" and "dash2".» - Т.е, эти параметры "dash1" and "dash2" как раз и отвечают за длину штриха и промежутка.

Потом stroke.style
Подобрать 2-3 пары нужных значений и с нужным интервалом в цикле присваивать линии очередной стиль (посмотри document.setStrokeStyle() и document.setCustomStroke(). ).

Я, конечно, не суперспец в АС, но, думаю, это — то, что нужно. :)

toccoo 24.09.2010 14:55

В том то и дело что к ним НЕТ доступа, если нарисовать линию вручную. Поправьте меня если я ошибаюсь.

toccoo 24.09.2010 14:58

Вложений: 1
вообщем вот как я сделал ВРУЧНУЮ, без единой строчки кода. помоему неплохо. Хотя програмный результат у Silin конечно получше.

Кому надо - юзайте на здоровье. А кто знает программный способ анимации НЕ ПРОГРАММНО нарисованного контура - с радостью выслушаю

drobinkin 24.09.2010 19:19

Как вариант - взять две копии линии с противоположными значениями даш1 и даш2 и программно по очереди менять им, например, видимость :)
Ну, или 3 и более копий со смещенными стилями — и потом то же самое.


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

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