![]() |
Анимация dashed линии
Вложений: 1
Приветствую. Подскажите, как заставить контур (пунктирную линию) двигаться по кругу.
Контур произвольный, замкнутый. Нужно чтобы эти пунктиры зацикленно двигались по контуру. |
Это не просто, но Silin уже об этом подумал.
|
у Silin рисуется программно линия. А у меня допустим сложный контур - как мне его нарисовать программно?
|
Там же методы есть Draw.dashedPath, Draw.dashedCurve.
|
то есть рисовать программно задавая каждый раз новую точку?
А можно избежать программного рисования? Просто боюсь что контур может быть очень сложным и точек там будет несколько сотен. То есть ручками нарисовать контур. а программно заставить его "двигаться". |
Ну все зависит от конкретной задачи. Координаты этих точек ведь известны должны быть, то почему бы и не программно описать алгоритм.
В общем создайте новую тему, да опишите проблему. |
Зачем создавать новую тему. Тут за это "ругают".
Проблема в том что контур сложный. Да он заранее известен - например есть картинка девушки, её надо обвести по контуру. Ручками обвести ещё куда не шло. но программно - там может быть 300-400 опорных точек (учитывая волосы и т.д.). Вот в этом и проблема. А если у меня таких картинок штук 20. Понимаете теперь сложность? |
Угу, задача по распознаванию контуров девушек однозначно нетривиальная.
|
ну девушек или не девушек, это не принципиально. Принципиально то что контур сложный и хочется его именно ручками рисовать, а не программно.
|
раз в полсекунды (нужно подобрать интервал) запоминайте при нажатой кнопке мыши точку в массив (пользователь обрисовывает контур девушки)
так же, раз в полсекунды рисуйте точку опорную программно запомненную При отжатии Силиновским классом по этим запомненным точкам отрисовывайте дашед лайн или карву эту А так чтобы руками... Мне кажется это маловероятным |
Вариант - контур, нарисованный руками конвертить в последовательность точек. Можно в сторонних программах, можно на флэше (я бы советовал не раз в полсекунды, а тупо по нажатию мыши заносить точку).
|
А не проще ли будет программно играться с параметрами (отрисованного вручную контура) такими, как 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(). ). Я, конечно, не суперспец в АС, но, думаю, это — то, что нужно. :) |
В том то и дело что к ним НЕТ доступа, если нарисовать линию вручную. Поправьте меня если я ошибаюсь.
|
Вложений: 1
вообщем вот как я сделал ВРУЧНУЮ, без единой строчки кода. помоему неплохо. Хотя програмный результат у Silin конечно получше.
Кому надо - юзайте на здоровье. А кто знает программный способ анимации НЕ ПРОГРАММНО нарисованного контура - с радостью выслушаю |
Как вариант - взять две копии линии с противоположными значениями даш1 и даш2 и программно по очереди менять им, например, видимость :)
Ну, или 3 и более копий со смещенными стилями — и потом то же самое. |
| Часовой пояс GMT +4, время: 11:48. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.