我正试图在Corona进行一场比赛,其中包括使用力矢量在某个方向击球。我试图在球停止时触发一个事件。我无法使用“触摸”事件,因为当我触摸球并设置释放方向时,会多次调用触摸事件。
答案 0 :(得分:4)
当球停止时,您可以使用Corona的自定义事件在发生事件时派遣您的事件。下面的代码将一个事件分派给Runtime对象。
local event = { name = "ballHasStoppedMoving", target = Runtime }
Runtime:dispatchEvent( event )
以下代码将用于侦听“ballHasStoppedMoving”事件,并在事件触发时调用您的函数“ballStoppedMoving”。
local function ballStoppedMoving(event)
print("The ball has stopped moving")
end
Runtime:addEventListener("ballHasStoppedMoving", ballStoppedMoving)
答案 1 :(得分:0)
使用touch event的phase
属性,仅对“开始”阶段作出反应。
答案 2 :(得分:0)
在enterFrame事件中,使用ball.getLinearVelocity检查球的速度。如果它们不等于(0,0),则执行方法/事件。如果您想在此时执行自定义事件,请按照Michael的回答。