|
|
|||||
Регистрация: Feb 2014
Сообщений: 30
|
Вращение вокруг своей оси
Здравствуйте!
Понадобилось сделать вращение предмета вокруг своей оси (по оси У), вроде бы просто, но при повороте объект растягивается (по оси Х) а потом обратно, вроде бы не сильно но всё равно смотрится не эстетично) Что это такое и как с этим бороться?) Код: |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
что перспектива хоть и есть, но она почему-то только на левую сторону действует, правая сторона осталась обделенной. Вот может именно о этом ТС и спрашивает? |
|
|||||
А как вы это увидели, ведь ТС не предоставил исходников, а лишь только код?
|
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
Цитата:
|
|
|||||
Регистрация: Jun 2013
Сообщений: 133
|
Дело состоит в проекции. Центр проекции(точка схода) задан в центре рабочей области, поэтому при разных позициях объекта на экране, проекция тоже будет разная. Пронаблюдать это можно, если подвигать объект во время вращения:
import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent; var speed = 1; var test:MovieClip = new Test(); test.x = 50; test.y = 50; addChild(test); test.addEventListener(Event.ENTER_FRAME, loop); stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); function loop(e:Event):void { test.rotationY += speed;//Поворачиваем объект } function mouseMoveHandler(e:MouseEvent):void { test.x = e.stageX; test.y = e.stageY; } Однако точку схода можно менять: import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent; var speed = 1; var test:MovieClip = new Test(); test.x = 50; test.y = 50; addChild(test); test.addEventListener(Event.ENTER_FRAME, loop); stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); function loop(e:Event):void { test.rotationY += speed;//Поворачиваем объект } function mouseMoveHandler(e:MouseEvent):void { test.x = e.stageX; test.y = e.stageY; test.parent.transform.perspectiveProjection.projectionCenter = new Point(test.x, test.y); } |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Rivexe Спасибо за объяснение! И у меня ещё вопрос -
Вы эти примеры делали в адоби и точка регистрации находится в центре? |
|
|||||
Регистрация: Jun 2013
Сообщений: 133
|
Точка регистрации у объекта? Да в центре объекта.
|
|
|||||
Регистрация: Feb 2014
Сообщений: 30
|
Спасибо всем за объяснения, очень помогли
|
Часовой пояс GMT +4, время: 14:48. |
|
« Предыдущая тема | Следующая тема » |
|
|