|
|
|||||
Регистрация: Jul 2004
Сообщений: 430
|
Динамическое вращение вокруг оси
Народ привет, подскажите где почитать про то, как сделать динамическое вращение вокруг оси мувика. (т.е. мувик крутишь вокруг определенной точки) имеется ввиду драгом.... Если можно примерчик...
Спасибо! |
|
|||||
Модрон-ветеринар
|
Вот делал управление ручкой-шаттлом, может быть поможет вам, хотя реализвано и не "драгом".
Используется математическая функция арктангенса, потом переводим ее значения из радианов в градусы. Перед этим по условиям разбираем возможные значения внутренних координат мыши, чтобы всё корректно работало. Несколько кривовато, как я теперь думаю, но работает. Сам пример прилагается. //-----работа с ШАТТЛОМ-------------------------------------- //внутренние координаты мыши в мувике шаттла var rulxm:Number; var rulxm:Number; //угол поворота руля шаттла var a:Number; //организация вращения руля шаттла shMC.rulMC.butMC.onPress = function() { var mouseListenerRul:Object = new Object(); mouseListenerRul.onMouseMove = function() { rulxm = shMC._xmouse; rulym = shMC._ymouse; if (rulym > 0 && rulxm > 0) { a = 90 + (Math.atan(rulym/rulxm))*57.3; //приведение к градусам shMC.rulMC._rotation = a; } else if (rulym > 0 && rulxm < 0) { a = 270 + (Math.atan(rulym/rulxm))*57.3; shMC.rulMC._rotation = a; } else if (rulym < 0 && rulxm < 0) { a = 270 + (Math.atan(rulym/rulxm))*57.3; shMC.rulMC._rotation = a; } else if (rulym < 0 && rulxm > 0) { a = 90 + (Math.atan(rulym/rulxm))*57.3; shMC.rulMC._rotation = a; } else if (rulym < 0 && rulxm == 0) { shMC.rulMC._rotation = 0; } else if (rulym > 0 && rulxm == 0) { shMC.rulMC._rotation = 180; } else if (rulym == 0 && rulxm < 0) { shMC.rulMC._rotation = 270; } else if (rulym == 0 && rulxm > 0) { shMC.rulMC._rotation = 90; } };// end onMouseMove Mouse.addListener(mouseListenerRul); mouseListenerRul.onMouseUp = function() { Mouse.removeListener(mouseListenerRul); }; //end onMouseUp }; //end onPress Последний раз редактировалось mooncar; 02.05.2009 в 12:46. |
Часовой пояс GMT +4, время: 09:08. |
|
« Предыдущая тема | Следующая тема » |
|
|