![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2008
Сообщений: 20
|
У меня есть вопрос, что нужно прописать, точнее какими командами воспользоватся чтобы можно было вращать объект мышью во круг своей оси?
Написал функцию на вращение объекта с помощью нажатия кнопки по клавиатурным стрелкам, привожу пример ниже: stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressedHandler); private function keyPressedHandler(event:flash.events.KeyboardEvent):void { switch (event.keyCode) { case Keyboard.UP : myObj.roll +=2; break; case Keyboard.DOWN : myObj.roll -=2; break; case Keyboard.RIGHT : myObj.pan +=2; break; case Keyboard.LEFT : myObj.pan -=2; break; } } Не ругайте сильно, для меня это действительно проблематично. ![]() Последний раз редактировалось root.Unknown; 27.12.2008 в 09:38. |
|
|||||
addEventListener(MouseEvent.MOUSE_DOWN, вешаешь событие MOUSE_MOVE); addEventListener(MouseEvent.MOUSE_UP, удаляешь событие MOUSE_MOVE); addEventListener(MouseEvent.MOUSE_MOVE, в зависимости от того куда ведешь мышу, центрируясь например от центра myObj, и вращаешь. Кстати в тему http://www.flasher.ru/forum/showthread.php?t=119194, зачем тут появился такой скрол кода?
__________________
Оптимизация производительности на уровне кода |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 20
|
Это мне было понятно:
addEventListener(MouseEvent.MOUSE_DOWN, mouseRotateObj); addEventListener(MouseEvent.MOUSE_UP, mouseRotateObj); Фунrцию саму надо написать: Я же так понимаю что при нажатии на кнопку мыши вызвается функция mouseRotateObj которая там поворачивает объект по +2 по каком-то координату x, y, z, только не останавливаясь, пока двигаешь мышью... |
|
|||||
//в первом кадре (демка вращения черного квадрата)
var объектВращения:Sprite, триггерВращения:Boolean, центрВращения:Array,ABC:Number;
объектВращения = new Sprite();
объектВращения.graphics.beginFill(0);
объектВращения.graphics.drawRect(0,0,100,100);
addChild(объектВращения);
центрВращения = [200,200];
объектВращения.x=центрВращения[0];
объектВращения.y=центрВращения[1];
stage.addEventListener(MouseEvent.MOUSE_MOVE, boardMove);
stage.addEventListener(MouseEvent.MOUSE_UP, boardUp);
объектВращения.addEventListener(MouseEvent.MOUSE_DOWN, boardDown);
function boardMove(e:MouseEvent):void {
if (триггерВращения){
ABC = Math.atan2(центрВращения[0] - stage.mouseX, центрВращения[1] - stage.mouseY)*180/Math.PI;
объектВращения.rotation = 180-ABC;
}
}
function boardDown(e:MouseEvent):void {
триггерВращения = true;
}
function boardUp(e:MouseEvent):void {
триггерВращения = false;
}
http://www.dnadillo.dn.ua/flex/3d-text-cube.html Последний раз редактировалось Alex Lexcuk; 27.12.2008 в 13:24. |
|
|||||
|
[+1 14.08.08]
[+1 20.08.08] |
персонаж смотрит на курсор
__________________
~ Never trouble trouble till trouble troubles you! |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 20
|
Ага, спасибо, уже разобрался, только теперь не могу разобраться с кнопками на сцене, получается когда нажимаю по кнопке в сцене, то объект прокручивается... Можно как-то сделать чтобы при наведении курсора на кнопку объект переставал крутится?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 13:29. |
|
|
« Предыдущая тема | Следующая тема » |
|
|