从单个对象中删除触摸事件侦听器会从屏幕上的所有其他对象中删除触摸功能

时间:2013-10-05 17:55:59

标签: android iphone lua corona

我想从单个对象中删除触摸侦听器,并希望从gameloop中删除侦听器,但问题是,如果我从球对象中删除触摸侦听器,触摸事件侦听器也会从包含按钮的其他对象中删除,我想按下继续在下一个屏幕上,下面是代码的蓝色打印,但它不是我正在使用的确切代码。请尝试解决问题..谢谢

function displayScreen()
    local btnGroup = display.newGroup()
    local graphic = display.newRect( 0, 0, display.contentWidth, display.contentHeight)
    graphic:setFillColor(0, 0, 0, 50)
    btnGroup:insert(graphic)
    ball:removeEventListener("touch", moveball)
    restartMenu()
end

 function restartMenu()
    local menuGp = display.newGroup()
    graphic1 = display.newImageRect("Reset.png", 564, 216,true )
    graphic1.x = display.contentWidth / 2
    graphic1.y = display.contentHeight - display.contentHeight / 4
    graphic1:addEventListener("touch", restart)
    menuGp:insert(graphic1)
end

function restart()
{}

1 个答案:

答案 0 :(得分:0)

目前,您正在使用Runtime进行触摸事件。因此,删除所有其他对象触摸侦听器是很自然的。如果要单独使用事件侦听器,则应仅为一个对象创建事件侦听器。我的意思是这样的:

local ball = display.newCircle( 250, 250, 60 )
ball.x = display.contentCenterX
ball.y = display.contentCenterY
ball:setFillColor(240, 200, 0)
ball:addEventListener( "touch", ballTouchHandler )

并删除;

ball:removeEventListener( "touch", ballTouchHanler )

我不建议使用Runtime:addEventListener(“touch”,functiıon(){})。 您只能将它用于“enterFrame”函数