0

我想从单个对象中删除触摸侦听器并希望从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()
{}
4

1 回答 1

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”功能一起使用

于 2013-10-06T11:56:10.713 回答