我正在尝试从按钮小部件中删除 onEvent 侦听器。我试图将 nil 分配给 onEvent 属性,但它不起作用,最后我尝试了这个:
buttonWidget : removeEventListener("touch", buttonWidget.onEvent)
我有几个这样的按钮,它只是停止了所有按钮的事件监听器。你有什么建议?如何删除一个按钮小部件的事件侦听器?谢谢。
这是我创建按钮小部件的方法:
for i=0,2 do
for j=0,8 do
count=count+1
letterBtn[count] = widget.newButton{
id = alphabet[count],
left = 5+j*50,
top = H-160+i*50,
label = alphabet[count],
width = 45,
height = 45,
font = nil,
fontSize = 18,
labelColor = { default = {0,0,0}, over = {255,255,255}},
onEvent = btnOnEventHandler
};
end
end
你能告诉我以后如何删除 onEvent 吗?
好吧,我试过 Button: setEnabled(false) 但它仍然禁用所有按钮,而不仅仅是一个。我已经尝试过你的第二个建议,但它给出了相同的结果。我正在复制其余的代码。你能看看它并告诉我我错过了什么吗?
local function checkLetter(e)
if(guessWord) then
for i=1, #guessWord do
local c = guessWord:sub(i,i)
if c==e.target.id then
letter[i].text = e.target.id
letterCount = letterCount +1
print("letterCount"..letterCount)
e.target:setEnabled(false)
end
end
if (letterCount == #guessWord and not hanged) then
timer.performWithDelay(500, function()
letterCount=0
rightWGuess = rightWGuess+1
for k,v in pairs(notGuessedWord) do
if v == guessWord then
notGuessedWord[k]=nil
end
end
enableButtons()
startGame() end ,1)
end
end
end
local function btnOnEventHandler(e)
if(e.phase == "began") then
checkLetter(e)
print(e.target.id)
end
return true
end