0

トークンを持つ単語検索ゲームがあり、ユーザーはそれらを使用して、見つけなければならない単語を明らかにすることができます。しかし、私の問題は、トークンをクリックした後、単語検索で見つかった単語を強調表示できないことです。代わりに、レベルのどこにいてもクリックするたびにトークンを奪い続けます。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( "user has moved their finger off the token." )
    elseif event.phase == "ended" then
        print( "user has used a token" )
        display.getCurrentStage():setFocus( nil )
        event.target.isFocus = false
    end
end
return true
end
end
menubutton:addEventListener( "touch", menubutton)
token:addEventListener( "touch", token)

何か案は?

4

2 に答える 2

2

次のように関数を変更してみてください。

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( "user has moved their finger off the token." )
        elseif event.phase == "ended" then
            print( "user has used a token" )
            display.getCurrentStage():setFocus( nil )
            event.target.isFocus = false
        end
    end
    return true
end
token:addEventListener( "touch", tokenTouch )
于 2013-04-22T09:07:09.340 に答える
0

リスナーを削除する場合は、リスナーを追加した後にリスナーを削除する必要があります。

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-22T08:31:03.167 に答える