2012-10-19 55 views
1

我已經實現了一個函數,我添加了一個視圖,並添加了一些按鈕以及添加的Eventlistener。移除父視圖後,RemoveEventListener無法正常工作

與按鈕偵聽器我過渡到另一個視圖,並刪除最後一個視圖,但仍然按鈕監聽器是活動的。

function loadingMenu() 

    playBtn = display.newImage('play-btn.png', 170, 130) 
    playBtn:addEventListener("tap", listener) 

    instructionBtn = display.newImage('instructions-btn.png', 150, 164) 
    -- instructionBtn:addEventListener("tap", instructionListener) 

    creditBtn = display.newImage('credits-btn.png', 180, 201) 
    --creditBtn:addEventListener("tap",ceditsListener) 

    titleBg = display.newImage('background-with-title.png') 

    --titleView = display:newGroup() 
    titleView = display.newGroup(titleBg, playBtn, instructionBtn,creditBtn) 

end 


function listener(event) 
     if titleView ~= nil then 
     playBtn:removeEventListener("tap", listener) 
     transition.to(titleView, {time = 300, y = -titleView.width, onComplete = function() --startButtonListeners('rmv') --titleView:removeSelf() display.remove(titleView) titleView = nil end}) 

     end 
     return true 
end 

在此先感謝

+0

我試圖修復你的代碼,它有很多隨機評論,我不明白它。 請先修復代碼,清理它,進行適當的縮進,然後我可以嘗試理解它並查看你做錯了什麼。 – speeder

回答

1

試試這個。這將工作...

---------------------------------------------------------------------------- 
    local playBtn,instructionBtn,creditBtn,titleBg,titleView 
    ---------------------------------------------------------------------------- 
    function newfunction() 
     print("inside newfunction...") 
    end 
    ---------------------------------------------------------------------------- 
    function listener() 
     print("inside listener...") 
     if titleView ~= nil then 
       playBtn:removeEventListener("tap", listener) 
       transition.to(titleView, {time = 300, y = -titleView.width, onComplete = newfunction()}) --startButtonListeners('rmv') --titleView:removeSelf() display.remove(titleView) titleView = nil end}) 
     end 
     return true 
    end 
    ---------------------------------------------------------------------------- 
    function loadingMenu() 
     playBtn = display.newImage("play-btn.png", 170, 130) 
     instructionBtn = display.newImage("instructions-btn.png", 150, 164) 
     creditBtn = display.newImage("credits-btn.png", 180, 201) 
     titleBg = display.newImage("background-with-title.png") 
     titleView = display.newGroup(titleBg, playBtn, instructionBtn,creditBtn) 

     playBtn:addEventListener("tap", listener) 
    end 
    ---------------------------------------------------------------------------- 
    loadingMenu() 
    ----------------------------------------------------------------------------