![]() |
Angle для мувиклипа(круговой прелоадер)
Добрый день
Кто нибудь сталкивался с созданием кругового прелоадера, когда линия загрузки идет по кругу. У меня идея создать это с помощью angle(start angle, end angle), но встретился с проблемой, существуют ли такие параметры у мувиклипа в as3. У овальной области в овал параметрс эти параметры есть. |
был пример с программной отрисовкой окружности, но т.к. за раз отрисовывается градус то выглядит не гладко, так же можно руками нарисовать.
|
Можно так например:
Нарисовать ручками мувиклип, где допустим за 100 кадров круг заполняется. И в класе прелоадера просто отображать его № кадра, соответствующего %-у загруженного. Если без анимаций, тогда отрисовать линию загрузки как полу-круг под маской, и манипулировать ротацией |
Эти круговые загрузки 2-мя способами делают:
1. 100-кадровый анимированный ролик (в котором балуются вращением масок в виде половины бублика и движением самой линии в виде половины бублика) 2. маска или сама линия рисуется с помощью матана. Можно погуглив найти библиотеки, позволяющие рисовать дуги. Само API флешплеера такого не умеет - только кривые безье. О, рисование сигмента у себя нашёл: Код AS3:
|
Собственно круги рисовать не обязательно, можно построить маску и на основе прямоугольника.
|
Но там тоже не сахар - придется искать пересечение этой повернутой линии с одной из 4-х сторон этого прямоугольника.
...если только вручную (в этом 100-кадровом клипе) вместо круга прямоугольник изобразить - может чуть поменьше процессорного времени есть будет. |
В частном случае можно рисовать лучи из одного центра, который можно закрыть маской. Толщину лучей подобрать экспериментально.
|
Вложений: 2
Както делал... Нужен был троббер вроде Spinning Wheel, но как-то легко получилась штука более универсальная – можно использовать и как прелоадер, вычисляя нужный угол сектора, и как маску для шкалы вращающейся ручки-слайдера. По сути это просто рисовалка сектора с "дыркой" или без (innerRadius = 0) с задаваемым начальным углом (rotation) и длиной дуги (arc) – всё в градусах.
По какому-нибудь событию производим обновление ( update() ). Для троббера просто слушаем ентерФрейм и меняем стартовый угол (пример 1). Для прелоадера или шкалы соответственно вычисляем длину дуги (по проценту загрузки/углу поворота ручки) и меняем ее, оставляя стартовый угол постоянным (пример 2 и 3). |
Цитата:
|
| Часовой пояс GMT +4, время: 21:37. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.