![]() |
Вращение объекта по центру
Вложений: 1
В примере, если зажать мышь и потянуть, создается прямоугольная форма, при нажатии на кнопку, форма делает поворот. Вращается она из точки 0,0. Нужно, чтобы форма вращалась по центру. А в идеале пивот вращения может находиться в произвольном месте.
Код AS3:
|
Нужно положить объект в контейнер и сдвинуть координаты на минус половину длины и ширины.
Вращать контейнер. |
Т.е. при отпускании мыши сдвигать созданный объект, который внутри контейнера?
Тогда приходится такой мазохизм делать Код AS3:
|
Всё так.
Ещё вариант - задействовать матрицу |
|
|
alatar, круто. Но у меня вся анимация c использованием твинов, как в таком случае использовать подход с матрицей, не знаю.
|
твинеру всё равно что анимировать вы можете передать ему любую функцию, которая будет принимать "анимируемое" значение.
|
Так то оно так.
Не могу понять, как применить ваш метод. Я делаю Код AS3:
Объект улетает в сторону. |
Координаты, передаваемые в функцию должены быть в локальных координатах объекта, который необходимо повернуть. Углы, если используются, должны быть в радианах.
А дальше, например так. Код AS3:
|
Во оно как, спасибо!
Добавлено через 27 часов 31 минуту alatar, можно еще вопрос. Теперь по scale из вашего блога) Допустим есть форма квадрата, если я ее делаю шире, а потом поворачиваю на 90 гр. то ширина становится высотой. Как то это странно. Ведь я меняю не width а scale. Есть какие-нибудь варианты решения? |
with и height вычмсляемые свойства. По-сути они показывают размеры квадрата описанного вокруг DisplayObject и эквивалентны значениям возвращаемым getBounds() в родительской системе координат.
"Реальные" значения ширины и высоты (как если бы объект не был повернут) можно вычислить, если взять getBounds() в локальных координатах объекта и умножить полученные width и height на scaleX и scaleY, соответственно. А зачем вам это? Мне в голову приходит не так много случаев, когда это дейтсвительно требуется. |
Вложений: 1
По вопросу выше, я немного ошибся, с этим все отлично.
Но вот интересно, почему при повороте scaleAround объект начинает уменьшаться? Код AS3:
И вот еще, мне нужно чтобы объект, по мимо изменении размеров, одновременно мог делать разворот. По одиночке я могу это использовать в твине, а совместно, это возможно? |
Цитата:
Цитата:
P.S. Но вообще-то в TweenMax есть готовый плагин TransformAroundPointPlugin который делает то, что вы хотите. |
TransformAroundPointPlugin
Да, это то что надо, спасибо! |
| Часовой пояс GMT +4, время: 03:55. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.