Actionscript 3 如何在AS3中使用“if Single Click”而不是“if MouseDown”?

Actionscript 3 如何在AS3中使用“if Single Click”而不是“if MouseDown”?,actionscript-3,Actionscript 3,我想做一个单一的点击,并没有重复的功能,如果我的鼠标仍在下降,如果有任何意义 目前我有: if (mouseDown) { avatar.moveABit( 0, -2); sfxSoundChannel = moveSound.play(); } 如果我按住鼠标,它就会不断重复。我希望它只需单击一次就可以工作,并且必须不断地点击才能工作,而不是让鼠标处于按下状态。您可能希望这样做 MouseEvent.MOUSE_CLICK 我会在被点击的对象上添加一个事件监听器来监听

我想做一个单一的点击,并没有重复的功能,如果我的鼠标仍在下降,如果有任何意义

目前我有:

if (mouseDown)
{
     avatar.moveABit( 0, -2);
     sfxSoundChannel = moveSound.play();
}
如果我按住鼠标,它就会不断重复。我希望它只需单击一次就可以工作,并且必须不断地点击才能工作,而不是让鼠标处于按下状态。

您可能希望这样做

MouseEvent.MOUSE_CLICK
我会在被点击的对象上添加一个事件监听器来监听点击,并在点击上运行处理程序函数,该函数将包含您的移动和声音播放代码

请参阅。

您需要MouseEvent。单击类似的按钮:


编辑:moveABit不应该使用ENTER\u FRAME事件。

我不知道我是否正确理解了它,也许我们需要更多的代码来理解您真正想要的内容。 我假设您正在使用某种循环setInterval,Event.ENTER_FRAME来检查鼠标按钮是否按下。如果您是,我认为您应该将其更改为仅在函数内部激发,如下所示:

    function OnMouseDownHandler(event:MouseEvent):void
    {
        avatar.moveABit( 0, -2);
        sfxSoundChannel = moveSound.play();
    }
    stage.addEventListener(MouseEvent.MOUSE_DOWN, OnMouseDownHandler, false, 0, true);
如果使用MouseEvent.CLICK事件,只有在释放鼠标按钮时才会触发OnMouseDownHandler方法,使用MouseEvent.mouse\u DOWN更像是轻敲

    function OnMouseDownHandler(event:MouseEvent):void
    {
        avatar.moveABit( 0, -2);
        sfxSoundChannel = moveSound.play();
    }
    stage.addEventListener(MouseEvent.MOUSE_DOWN, OnMouseDownHandler, false, 0, true);