我想点击一下,如果我的鼠标仍然按下,如果有任何意义,请不要重复此功能。
目前我拥有它:
if (mouseDown)
{
avatar.moveABit( 0, -2);
sfxSoundChannel = moveSound.play();
}
如果我将鼠标放下,它会不断重复。我希望它只需单击即可完成,并且必须继续点击才能执行此操作而不是将鼠标放下。
答案 0 :(得分:0)
你可能想要
MouseEvent.MOUSE_CLICK
我会在被点击的对象上添加一个事件监听器来监听点击,并在点击运行时包含你的移动和声音播放代码的处理函数。
答案 1 :(得分:0)
您需要MouseEvent.CLICK
,如此:
//Create a function (which moves avatar) to be called on mouse click
function moveAvatar(e:MouseEvent):void
{
avatar.moveABit( 0, -2);
sfxSoundChannel = moveSound.play();
}
stage.addEventListener(MouseEvent.CLICK, moveAvatar); //add mouse click event listener
编辑:moveABit
不应该使用ENTER_FRAME
事件。
答案 2 :(得分:0)
我不知道我是否理解正确,也许我们需要更多的代码才能理解你真正想要的东西。 我假设您正在使用某种循环(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_DOWN将更像“Tap”。