Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 02.05.2009, 12:34
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Вот делал управление ручкой-шаттлом, может быть поможет вам, хотя реализвано и не "драгом".
Используется математическая функция арктангенса, потом переводим ее значения из радианов в градусы.
Перед этим по условиям разбираем возможные значения внутренних координат мыши, чтобы всё корректно работало.
Несколько кривовато, как я теперь думаю, но работает.
Сам пример прилагается.

Код AS1/AS2:
//-----работа с ШАТТЛОМ--------------------------------------
 
//внутренние координаты мыши в мувике шаттла
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
Вложения
Тип файла: rar Shuttle.rar (8.9 Кб, 102 просмотров)


Последний раз редактировалось mooncar; 02.05.2009 в 12:46.
Создать новую тему   Часовой пояс GMT +4, время: 00:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:22.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.