![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2011
Сообщений: 29
|
Привет, пробую реализовать вращение объекта драгом.
Легко сделать, чтобы объект всегда следил за курсором, но мне нужно порционное движение при нажатой мышке. Как когда пальцем крутишь пластинку на граммофоне. Для этого напиал следующий код, но запутался, когда и что надо обновлять, подскажите, пожалуйста. В интернете нашел только либо простые следящие драги, либо handle, которая по сути тоже просто прыгает на курсор при клике. Попытался изобразить на схеме, что я делаю в коде. В аттаче файл сцены. [IMG]http://img440.**************/img440/9692/schemeh.jpg[/IMG] var CurX:Number=0; var CurY:Number=0; var GunX:Number=0; var GunY:Number=0; var lengthT:Number=0; var heightT:Number=0; var angleActual:Number=0; var anglePast:Number=0; var angle2rotate:Number=0; GunX=round.x; GunY=round.y; var clicked:Boolean=false; stage.addEventListener (MouseEvent.MOUSE_DOWN , mouseDownFunc); function mouseDownFunc(e:MouseEvent):Boolean { clicked=true; return clicked; } stage.addEventListener (MouseEvent.MOUSE_UP , mouseUpFunc); function mouseUpFunc(e:MouseEvent):Boolean { clicked=false; return clicked; } addEventListener(Event.ENTER_FRAME, frameUpdate); function frameUpdate(e:Event):void { if(clicked) { lengthT=Math.floor(stage.mouseX-GunX); heightT=-(Math.floor(stage.mouseY-GunY)); trace("lengthT",lengthT); trace("heightT",heightT); anglePast=angleActual; trace("anglePast",anglePast); angleActual=(Math.atan2(lengthT,heightT))*180/Math.PI; trace("аngleActual",angleActual); angle2rotate=angleActual-anglePast; trace("angle2rotate",angle2rotate); round.rotation+=angle2rotate; } } Спасибо! |
![]() |
Часовой пояс GMT +4, время: 07:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|