动作脚本3鼠标按下

时间:2011-08-19 16:36:35

标签: flash actionscript-3 mouseevent

我如何能够不断检查鼠标是否已关闭,以及鼠标是否已关闭且它是否移动了我的功能

我尝试了mk_mc.addEventListener(MouseEvent.MOUSE_DOWN,fct),但它只调用了函数然后停止,我想不断地做,我该怎么做?

3 个答案:

答案 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_以了解鼠标是否已关闭。