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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.09.2011, 09:28
wolhw вне форума Посмотреть профиль Отправить личное сообщение для wolhw Найти все сообщения от wolhw
  № 1  
Ответить с цитированием
wolhw

Регистрация: Oct 2010
Сообщений: 57
По умолчанию Как проверить нажата ли кнопка мыши?

Сопственно после срабатывания MouseEvent.MOUSE_DOWN нужно проверить нажата ли все еще кнопка и повторять действие с заданым интервалом если нажата(нетрогая причем MouseEvent.MOUSE_OUT/UP) .
???

Старый 18.09.2011, 12:14
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 2  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
нетрогая причем MouseEvent.MOUSE_OUT/UP
Чем вас не устраивает то, от чего вы отказываетесь?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 18.09.2011, 13:52
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 3  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Есть специальный класс Key
Код AS3:
package  {
 
	import flash.display.Stage;
	import flash.display.StageDisplayState;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.geom.Rectangle;
 
	public class Key {
 
		private static var initialized:Boolean = false;		
		private static var keysDown:Object = new Object();	
 
		public static function initialize(stage:Stage):void {
			if (!initialized) {
				stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
				stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
				stage.addEventListener(Event.DEACTIVATE, clearKeys);
				initialized = true;
			}
		}
 
		public static function isDown(keyCode:uint):Boolean {
			if (!initialized) {
				throw new Error("Key class has yet been initialized.");
			}
			return Boolean(keyCode in keysDown);
		}
		private static function keyPressed(event:KeyboardEvent):void {
			keysDown[event.keyCode] = true;
		}
		private static function keyReleased(event:KeyboardEvent):void {
			if (event.keyCode in keysDown) {
				delete keysDown[event.keyCode];
			}
		}
		private static function clearKeys(event:Event):void {
			keysDown = new Object();
		}
	}
}
Инициализируем, передав в конструкторе stage
Код AS3:
Key.initialize(stage);
после в любое время проверяем нажата ли какая-нибудь клавиша:
Код AS3:
if (Key.isDown(Keyboard.SPACE)) {
    trace("нажат пробел");
}

Старый 18.09.2011, 16:59
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 4  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Кажется все таки о мышке речь была.

Старый 18.09.2011, 17:51
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 5  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
kackbip, ну выходные же все-таки )
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 18.09.2011, 18:24
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 6  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
kackbip, ну выходные же все-таки )
Точно Загон зашел, что о клавиатуре )
Мозг в нирване

п.с. Ну по тому же принципу можно и мышь проверять. Так же создать статический класс и ставить при нажатии какую-то переменную true, при отпускании false

Код AS3:
package  {
 
	import flash.display.Stage;
	import flash.events.MouseEvent;
 
	public class MouseButton {
 
		private static var initialized:Boolean = false;		
		private static var mouseDown:Boolean = false;	
 
		public static function initialize(stage:Stage):void {
			if (!initialized) {
				stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
				stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
				initialized = true;
			}
		}
 
		public static function isDown():Boolean {
			if (!initialized) {
				throw new Error("MouseButton class has yet been initialized.");
			}
			return mouseDown;
		}
		private static function onMouseDown(event:MouseEvent):void {
			mouseDown = true;
		}
		private static function onMouseUp(event:MouseEvent):void {
			mouseDown = false;
		}
	}
}


Последний раз редактировалось goodguy; 18.09.2011 в 18:32.
Старый 18.09.2011, 18:45
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
has not yet been initialized [x]
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 18.09.2011, 18:48
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 8  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
has not been initialized yet =)
если уж быть точнее )
Но эту строчку писал не я

Старый 18.09.2011, 19:26
wolhw вне форума Посмотреть профиль Отправить личное сообщение для wolhw Найти все сообщения от wolhw
  № 9  
Ответить с цитированием
wolhw

Регистрация: Oct 2010
Сообщений: 57
Цитата:
Сообщение от GBee Посмотреть сообщение
Чем вас не устраивает то, от чего вы отказываетесь?
хотелось предвидеть возможность таскать курсор с зажатой клавишей по разным мувикам...

goodguy спасибо за примеры, пригодитса.

И есче вопрос касающийся мыши-- можно ли каким то способом задать MouseX/Y тоисть двигать курсор мышки програмно?


Последний раз редактировалось wolhw; 18.09.2011 в 19:38.
Старый 18.09.2011, 20:12
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 10  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
"has not yet been initialized" - Результатов: примерно 455 000
"has not been initialized yet" - Результатов: примерно 127 000

Добавлено через 2 минуты
Цитата:
Сообщение от wolhw Посмотреть сообщение
И есче вопрос касающийся мыши-- можно ли каким то способом задать MouseX/Y тоисть двигать курсор мышки програмно?
Еще, каким-то, то есть, программно.

Нет, нельзя.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 18.09.2011 в 20:16.
Создать новую тему Ответ Часовой пояс GMT +4, время: 10:08.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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