Показать сообщение отдельно
Старый 23.02.2004, 23:55
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 5  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
я когда-то писал в исходники такую штуковину...
но это было давно и не правда :)

сейчас я бы сделал так:
Код:
// —————————————————————————————————
// doubleclick event
Mouse.addListener(Mouse);
// dblclick time (msec)
Mouse.doubleClickTime = 300;
// global dblclick event generator
Mouse.onMouseDown = function() {
	var md = Mouse.onMouseDown;
	trace("["+md.click+"]"+(getTimer()-md.click)+" :: "+Mouse.doubleClickTime);
	if (md.click && (getTimer()-md.click<=Mouse.doubleClickTime)) {
		this.broadcastMessage("onDoubleClick");
	} else {
		md.click = getTimer();
	}
};
Mouse.onMouseMove = function() {
	Mouse.onMouseDown.click = 0;
};
// —————————————————————————————————
// sample:
// **
Mouse.addListener(this);
// ** 
this.onDoubleClick = function() {
	trace(this+" : doubleclicked");
};
для использования события необходимо только подписать нужны объект на события мышки, и создать обработчик onDoubleClick.

Mouse.doubleClickTime - это время между кликами в милисекундах

таким образом занят только обработчик Mouse.onMouseDown

кстати, обратите внимание на отсутствие конструкции ASBroadcaster.initialize(Mouse); которая разрешила бы объекту Mouse передавать события). объект Mouse и так передает события.