как сделать непрерывное действие на короне в функции крана - PullRequest
2 голосов
/ 23 апреля 2011

Как сделать непрерывное воздействие на корону в функции крана?Я имею в виду, когда 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 Ответ

8 голосов
/ 23 апреля 2011

Во-первых, используйте прослушиватель событий для «прикосновения», а не «прикосновения». Слушатели событий касания реагируют только когда палец убран, а слушатели касания реагируют как на начало, так и на конец касания.

Во-вторых, чтобы повторять событие снова и снова, вы должны использовать 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)

(возможно, я неправильно набрал пару ключевых слов, я просто набрал это на макушке)

...