刚学AS3的时候并不知道FLASH鼠标双击消息可用
mc.addEventListener(MouseEvent.DOUBLE_CLICK, onDoubleClick);
加了以上事件后依然得不到双击消息,后来才知道要得到双击消息需要将一个属性mc.doubleClickEnabled = true;
在这之前,想了一个馊办法,先看代码:
private var mClick:Boolean = false;
addEventListener(MouseEvent.MOUSE_DOWN, onClick);
private function onClick(e:MouseEvent):void
{
if (mClick)
{
trace("double click");
}
mClick = true;
var timer:Timer = new Timer(500, 1);
timer.addEventListener(TimerEvent.TIMER, onTimer);
timer.start();
function onTimer(e:TimerEvent):void
{
timer.removeEventListener(TimerEvent.TIMER, onTimer);
mClick = false;
}
}
addEventListener(MouseEvent.MOUSE_DOWN, onClick);
private function onClick(e:MouseEvent):void
{
if (mClick)
{
trace("double click");
}
mClick = true;
var timer:Timer = new Timer(500, 1);
timer.addEventListener(TimerEvent.TIMER, onTimer);
timer.start();
function onTimer(e:TimerEvent):void
{
timer.removeEventListener(TimerEvent.TIMER, onTimer);
mClick = false;
}
}
具体的思路是这样:监听鼠标点击的事件,每次点击就记录下来,即mClick = true;
然后设定500ms(可以自己定义)的延时,如果500ms内没有再次点击鼠标就mClick = false;
如果点击了自然就会执行到trace("double click");
这只是解决问题的一个思路。