如何在 Tap 功能中对 Corona 进行连续操作

发布于 2024-11-03 04:06:38 字数 411 浏览 1 评论 0原文

如何在tap功能中对电晕进行连续操作?我的意思是,当 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)

希望你理解我的问题。

How to do continuous action on corona in tap function? I mean when event.phase="began" and until its tapped the action repeats until its ended.

My code:

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)

Hope u understand my question.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

咋地 2024-11-10 04:06:38

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

其次,要让事件一遍又一遍地重复,您需要使用 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)

我可能弄错了几个关键字,我只是凭空输入)

First off, use an event listener for "touch" not "tap". Tap event listeners only respond when the finger is removed, but touch listeners respond to both the beginning and end of the touch.

Secondly, to have an event repeat over and over you need to use enterFrame. So set an enterFrame listener when the touch begins and remove the enterFrame listener when the touch ends:

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)

(I may have gotten a couple keywords wrong, I just typed that off the top of my head)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文