Просмотр полной версии : Динамическое вращение вокруг оси
Народ привет, подскажите где почитать про то, как сделать динамическое вращение вокруг оси мувика. (т.е. мувик крутишь вокруг определенной точки) имеется ввиду драгом.... Если можно примерчик...
Спасибо!
Вот делал управление ручкой-шаттлом, может быть поможет вам, хотя реализвано и не "драгом".
Используется математическая функция арктангенса, потом переводим ее значения из радианов в градусы.
Перед этим по условиям разбираем возможные значения внутренних координат мыши, чтобы всё корректно работало.
Несколько кривовато, как я теперь думаю, но работает.
Сам пример прилагается.
//-----работа с ШАТТЛОМ--------------------------------------
//внутренние координаты мыши в мувике шаттла
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
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.