如何在自来水功能中对电晕进行连续动作

时间:2011-04-23 13:13:00

标签: lua corona

如何在水龙头功能中对电晕进行连续动作?我的意思是event.phase="began",直到它的动作重复直到它结束。

我的代码:

function upArrowtap(event)
  if (event.phase == "began") then
    if ( ball.y > 45 ) then
      transition.cancel(trans1)
      transition.cancel(trans2)
      --ball.y = ball.y-15
      start()
    end
  end
end

upArrow:addEventListener("touch", upArrowtap)
希望你理解我的问题。

1 个答案:

答案 0 :(得分:8)

首先,使用事件监听器“触摸”而非“点击”。 Tap事件监听器仅在移除手指时响应,但触摸监听器会响应触摸的开始和结束。

其次,要重复一个事件,你需要使用enterFrame。因此,在触摸开始时设置一个enterFrame监听器,并在触摸结束时删除enterFrame监听器:

local function onEnterFrame(event)
  ball.y = ball.y + 2
end
local function onTouch(event)
  if (event.phase == "began") then
    Runtime:addEventListener("enterFrame", onEnterFrame)
  elseif (event.phase == "ended") then
    Runtime:removeEventListener("enterFrame", onEnterFrame)
  end
end
button:addEventListener("touch", onTouch)

(我可能错了几个关键字,我只是把它排在了我的头顶)