9
октября

Тройной клик (as3.0)

Написал    в категории  Программирование

Тройной клик понадобился для функционала аудио плеера, аналогично управлению на ipod`ах. Один клик это — запуск песни и пауза, двойной клик — переход к следующей композиции, тройной — переход к началу композиции.

Задача. Сделать событие на тройной клик мыши, и убрать промежуточное срабатывание одного клика перед дабл кликом.

Минус в том что ожидание нажатия для всех положений одно :)

public function Main()
{
	clickTimer = new Timer(1);
	but = new button();
	addChild(but);

	but.buttonMode = true;
	but.doubleClickEnabled = true;
	but.addEventListener(MouseEvent.DOUBLE_CLICK, doubleHandle);
	but.addEventListener(MouseEvent.CLICK, clickHandle);
}

public function clickHandle(e:MouseEvent):void {
	stateClick = true;
	stateDoubleClick = false;

	if (! clickTimer.running) {
		clickTimer = new Timer(500, 1);
		clickTimer.addEventListener("timer", timerClickHandler);
		clickTimer.start();
	} else {
		trace("triple click");
		stateDoubleClick = false;
		stateClick = false;
	}
}

public function doubleHandle(e:MouseEvent):void {
	stateDoubleClick = true;
	stateClick = false;
}

public function timerClickHandler(event:TimerEvent):void {
	if (stateDoubleClick) trace("double click")
	if (stateClick) trace("just one click");
}

Наверное есть ещё какие-нибудь решение этой задачи, если кто знает то пишите в комменты.

Оставьте свой комментарий
  1. Dimka:

    Круто! Понравилась реализация. С нетерпением жду пятерной клик и семерной ;)

  2. :) Ну ты сразу стебаться, что не сделаешь ради желания клиентов.

  3. Greg:

    Спасибо большое!!!


Rss Feed Tweeter button Facebook button