触摸事件未被移除,无论我在屏幕上触摸哪里,它都能继续生效。

我有一个单词搜索游戏,其中有代币,用户可以使用它们来揭示他们要查找的单词。但我的问题是,点击代币后,我无法在单词搜索中突出显示我找到的单词,而是无论在什么位置上,每次单击都会拿走一个代币。我尝试了token:removeEventListener,但它没有起作用,也许我把它放错了位置。

function token:touch(event)
if event.phase == "began" then
if storyboard.state.score > 0 then
    storyboard.state.score = storyboard.state.score - 1
    score.text = tostring(storyboard.state.score)
    clueText.isVisible = false
    answerText.isVisible = true
    display.getCurrentStage():setFocus(event.target)
    event.target.isFocus = true
elseif event.target.isFocus then
    if event.phase == "moved" then
        print("用户已将手指移开代币。 ")
    elseif event.phase == "ended" then
        print("用户已使用代币")
        display.getCurrentStage():setFocus(nil)
        event.target.isFocus = false
    end
end
return true
end
end
menubutton:addEventListener("touch", menubutton)
token:addEventListener("touch", token)

有什么建议吗?

点赞
用户1665243
用户1665243

如果你想要移除监听器,你必须在添加监听器之后添加移除监听器。

local function token(event)
    if event.phase == "began" then

    elseif event.phase == "moved" then

    elseif event.phase == "ended" then
    end
    return true
end

token:addEventListener("touch", token)

token:removeEventListener("touch", token)
2013-04-22 08:31:03
用户2186639
用户2186639

尝试修改你的函数如下:

function tokenTouch( event )
    if event.phase == "began" then
        if storyboard.state.score >0 then
            storyboard.state.score = storyboard.state.score - 1
            score.text = tostring(storyboard.state.score)
            clueText.isVisible = false
            answerText.isVisible = true
            display.getCurrentStage():setFocus( event.target )
            event.target.isFocus = true
        end
    elseif event.target.isFocus then
        if event.phase == "moved" then
            print( "用户已将手指移开令牌。" )
        elseif event.phase == "ended" then
            print( "用户已使用令牌" )
            display.getCurrentStage():setFocus( nil )
            event.target.isFocus = false
        end
    end
    return true
end
token:addEventListener( "touch", tokenTouch )
2013-04-22 09:07:09