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

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

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

Регистрация: Mar 2006
Сообщений: 41
По умолчанию Двойное нажатие кнопки

Как сделать, чтобы на быстрое двойное нажатие клавиши случалось какое-либо действие? Если не влом, напишите пример кода.

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

Регистрация: Nov 2007
Сообщений: 1,724
Вот скрипт:
Код:
Mouse.addListener(Mouse);       
Mouse["onMouseDown"+""] = function():Void {  
if (getTimer()-this.time<=300 && this.flag) {  
		Mouse["broadcastMessage"]("onDoubleClick");
		this.flag = false;
		trace("АгА!!!!")
		// здесь писать условия
	} else {
		this.time = getTimer();
		this.flag = true;
	}
}; 
Mouse["rightClick"] = function():Void {
	if (Key.isDown(2)) {
		trace(9)
		Mouse["broadcastMessage"]("onRightClick");
	}
};
setInterval(Mouse, "rightClick", 100);
Хотя вообще-то ты еще маленький, что бы такие вещи знать.

Старый 12.10.2008, 17:46
Pedro вне форума Посмотреть профиль Отправить личное сообщение для Pedro Найти все сообщения от Pedro
  № 3  
Ответить с цитированием
Pedro

Регистрация: Mar 2006
Сообщений: 41
Так, отлично. Только я имел ввиду клавишу клавиатуры... Что на что заменить?

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

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
Для клавеши [A]
Код:
var keyListener:Object = new Object();
keyListener.onKeyDown = down;
keyListener.onKeyUp = up;
Key.addListener(keyListener);

var downs = 0;
var ups = 0;
var timer;

function down() {
	if (Key.getCode() == 65) {
		downs++;
		clearInterval(timer);
		if (downs == 2 && ups == 1) {
			clear(); done();
		} else timer = setInterval(clear, 600);
	}
}
function up() {
	if (Key.getCode() == 65) ups = downs;
}
function clear() {
	clearInterval(timer);
	ups = 0; downs = 0;
}
function done() {
	trace('ok');
}


Последний раз редактировалось Mnilionic; 12.10.2008 в 18:40.
Старый 12.10.2008, 18:49
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 5  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
ZIK68, эммм.. это к чему?

Mouse["onMouseDown"+""] = function():Void { }
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 12.10.2008, 18:50
Pedro вне форума Посмотреть профиль Отправить личное сообщение для Pedro Найти все сообщения от Pedro
  № 6  
Ответить с цитированием
Pedro

Регистрация: Mar 2006
Сообщений: 41
Блин! Все гениальное просто! Огромный сенькс!!!

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Mnilionic, зачем создавать объект-листенер для того, чтобы переназначить его callback-функции на рутовые?
Проще надо быть
Код:
Key.addListener(this);

var downs = 0;
var ups = 0;
var timer;

function onKeyDown() {
	if (Key.getCode() == 65) {
		downs++;
		clearInterval(timer);
		if (downs == 2 && ups == 1) {
			clear(); done();
		} else timer = setInterval(clear, 600);
	}
}
function onKeyUp() {
	if (Key.getCode() == 65) ups = downs;
}
function clear() {
	clearInterval(timer);
	ups = 0; downs = 0;
}
function done() {
	trace('ok');
}
Update. И раз пошла такая пьянка, то нужно все остальное типизировать, а не только var keyListener:Object = new Object();
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


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

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
эта типизация попала случайна, в следствии копирования строк из хелпа.
а писать в объект или в мувик это задача автора, я только возможную логику показал.

Старый 13.10.2008, 12:43
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 9  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Привет!
Или без setInterval
Код:
Key.addListener(this);
var oldStartTimer:Number = 0;
function onKeyDown() {
	if (Key.getCode() == 65) {
		if (getTimer()-oldStartTimer<300) {
			done();
		} else {
			oldStartTimer = getTimer();
		}
	}
}
function done() {
	trace('ok');
}

Старый 13.10.2008, 15:03
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 10  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
Жень Шень, "залипание" кнопки не учтено

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:47.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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