鼠标的移动事件。高手们进来帮帮小弟!该如何解决
鼠标的移动事件。高手们进来帮帮小弟!
stage.addEventListener(MouseEvent.MOUSE_MOVE,moves);
function moves(e:Event)
{
trace(" 鼠标坐标X:"+mouseX);
}
谁都知道这是一个当鼠标移动的时候输出鼠标的X坐标,但是可不可以,鼠标移动的时候不输出,当鼠标移动后停下来的时候输出一次当前鼠标的坐标。
例如:
鼠标,从A点到B点,两点之间的距离是(100),用上面的发用上面的方法就会输出一百次。
能不能当鼠标从A点移动到B点的时候,只输出两个坐标。
谢谢高手帮忙!
------解决方案--------------------
楼主不要到处都发啊。这个不难,给你写了一个,用帧的监听写的,也可以用timer。
stage.addEventListener(MouseEvent.MOUSE_MOVE,moves);
function moves(e:Event)
{
trace(" 鼠标坐标X:"+mouseX);
}
谁都知道这是一个当鼠标移动的时候输出鼠标的X坐标,但是可不可以,鼠标移动的时候不输出,当鼠标移动后停下来的时候输出一次当前鼠标的坐标。
例如:
鼠标,从A点到B点,两点之间的距离是(100),用上面的发用上面的方法就会输出一百次。
能不能当鼠标从A点移动到B点的时候,只输出两个坐标。
谢谢高手帮忙!
------解决方案--------------------
楼主不要到处都发啊。这个不难,给你写了一个,用帧的监听写的,也可以用timer。
- Java code
import flash.events.Event; import flash.events.MouseEvent; var temp:Object = new Object(); var boo:Boolean = false; stage.addEventListener(MouseEvent.MOUSE_MOVE,moveEvt); function moveEvt(e) { if (!hasEventListener(Event.ENTER_FRAME)) { trace(stage.mouseX,stage.mouseY) boo = true addEventListener(Event.ENTER_FRAME,entEvt); } } function entEvt(e) { if (temp.x == stage.mouseX && temp.y == stage.mouseY && boo) { trace(temp.x,temp.y); removeEventListener(Event.ENTER_FRAME,entEvt); boo = false; } temp.x = stage.mouseX; temp.y = stage.mouseY; }