Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вращение стрелки не по секундам (http://www.flasher.ru/forum/showthread.php?t=171571)

INDIEpendent 19.11.2011 01:22

Вращение стрелки не по секундам
 
Привет. Я жесткая нубище, но мне очень надо сделать такую штуку.
Есть картинка часов. Надо чтобы стрелка с этой картинки вращалась сначала по, потом против часовой.
Совершенно не должно быть связано с реальной датой и временем. Просто нужно чтобы она повернулась.
Читала все предыдущие подобные темы - там это событие связно с датой и временем.

Если можно, расскажите куда и как? И, поскольку я новичок, то как для дебилов)

Ookami 19.11.2011 03:49

Рисуем стрелку, затем помещаем ее в центр картинки с часами. Ну и далее вращаем ее, используя rotation. Более конкретно сформулируйте вопрос - может тогда более конкретно смогу подсказать.

Добавлено через 14 минут
В целом так:
Код AS3:

                        addChild(clockImage);
                        addChild(arrow);
                        arrow.rotation = 10; // по часовой
                        arrow.rotation = -10; // против часовой

Или для большей плавности - использовать TweenLite

imena 19.11.2011 04:19

Кстати, а как сместить точку, относительно которой будет вращаться спрайт? Т.е., как ее сместить в центр или к какому-либо краю.

Ookami 19.11.2011 10:53

Центр всегда в (0,0) вращаемого клипа. Как вариант - можно его вложить в другой клип, так чтоб центр был в (0,0) нового клипа.
Код AS3:

oldMC.x = -oldMC.width / 2;
oldMC.y = -oldMC.height / 2;
var newMC:Sprite = new Sprite();
newMC.addChild(oldMC);


imena 19.11.2011 17:05

ужас... ))) черт... что ж так неудобно то все

Ookami 19.11.2011 17:12

неудобно спать на потолке - одеялко падает (с)

=)

КорДум 19.11.2011 17:17

Цитата:

ужас... ))) черт... что ж так неудобно то все
Все как и везде. Координатный центр у всех один - в точке (0, 0).

Inet_PC 19.11.2011 19:26

Для тех кому сложно, есть Flash IDE, там легко.

imena 19.11.2011 20:06

Цитата:

Сообщение от Inet_PC (Сообщение 1047067)
Для тех кому сложно, есть Flash IDE, там легко.

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

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

Ookami 19.11.2011 20:52

при вращении клипа оно [вращение] ВСЕГДА происходит вокруг точки (0,0), так что не совсем понимаю какое смещение и относительно чего вы собираетесь рассчитывать.

Добавлено через 3 минуты
как вариант - можете написать метод, который будет принимать в себя параметры DisplayObject, угол поворота и точку, вокруг которой надо осуществить вращение, после чего уже делать необходимые преобразования и само вращение. Тогда получится что-то вроде
Код AS3:

rotate(yourMC, 45, new Point(0, 20))

Всяко удобнее чем постоянно писать громоздкую конструкцию


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

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