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);