我如何能够不断检查鼠标是否已关闭,以及鼠标是否已关闭且它是否移动了我的功能
我尝试了mk_mc.addEventListener(MouseEvent.MOUSE_DOWN,fct)
,但它只调用了函数然后停止,我想不断地做,我该怎么做?
答案 0 :(得分:7)
之前已经要求您提出要求,但我无法轻易找到重复的问题,因此我会将链接发布到 my 问题我{{3} }。
在AS3中处理拖动事件的一些合理代码是:
stage.addEventListener( MouseEvent.MOUSE_DOWN, beginDrag );
function beginDrag( e:MouseEvent )
{
stage.addEventListener( MouseEvent.MOUSE_MOVE, drag );
stage.addEventListener( MouseEvent.MOUSE_UP, endDrag );
stage.addEventListener( MouseEvent.DEACTIVATE, endDrag );
stage.addEventListener( Event.MOUSE_LEAVE, endDrag );
stage.addEventListener( Event.REMOVED_FROM_STAGE, stageEndDrag );
//trigger beginDrag event
}
function drag( e:MouseEvent )
{
//trigger drag event
}
function endDrag( e:Event )
{
stage.removeEventListener( MouseEvent.MOUSE_MOVE, drag );
stage.removeEventListener( MouseEvent.MOUSE_UP, endDrag );
stage.removeEventListener( MouseEvent.DEACTIVATE, endDrag );
stage.removeEventListener( Event.MOUSE_LEAVE, endDrag );
stage.removeEventListener( Event.REMOVED_FROM_STAGE, stageEndDrag );
//trigger endDrag event
}
答案 1 :(得分:4)
那么你想要做的是当鼠标移动并按下按钮时调用一个函数?
最简单的方法是在鼠标移动时调用该函数(如果你想在鼠标不移动时调用该函数,也可以使用一个Timer),并让它检查鼠标上/下设置的标志。它需要采取任何行动。
var isDown:Boolean = false;
stage.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
stage.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMove);
function onMouseDown(evt:MouseEvent):void
{
isDown = true;
}
function onMouseUp(evt:MouseEvent):void
{
isDown = false;
}
function onMouseMove(evt:MouseEvent):void
{
if(isDown) {
//party
}
}
答案 2 :(得分:1)
我认为你可以在鼠标停机时设置一些标志,并在鼠标启动时再将其设置回来。这样的事情:
private var down_:Boolean = false;
mk_mc.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
function onMouseDown(event) {
down_ = true;
mk_mc.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
}
function onMouseUp(event) {
down_ = false;
mk_mc.removeEventListener(MouseEvent.MOUSE_UP,onMouseUp);
}
然后只需轮询down_
以了解鼠标是否已关闭。