Остановить распространение событий в Corona SDK
Я использую Corona SDK и Director 1.4 для создания приложения. Моя цель - открыть всплывающее окно при нажатии кнопки (btn_play
) нажата.
Однако я столкнулся с проблемой. Когда btn_play
нажата, это вызывает openPopup(e)
так же как changeScene(e)
(так как задан фон для выполнения функции). Как я могу остановить функцию changeScene(e)
от выполнения при нажатии на btn_play
кнопка?
Вот коды моего игрового экрана:
module(..., package.seeall)
local localGroup
function new()
localGroup = display.newGroup();
-- Background Image
local background = display.newImageRect("background.jpg", display.contentWidth, display.contentHeight )
background:setReferencePoint( display.TopLeftReferencePoint )
background.x, background.y = 0, 0
background.scene = "scene_menu";
-- Play button
local btn_play = display.newImageRect("grass.png", 320, 82 )
btn_play:setReferencePoint( display.CenterReferencePoint )
btn_play.x = display.contentWidth * 0.5
btn_play.y = 600
btn_play.scene = "inventory"
localGroup:insert(background);
localGroup:insert(btn_play);
function changeScene(e)
if(e.phase == "ended") then
director:changeScene(e.target.scene);
end
end
function openPopup(e)
if(e.phase == "ended") then
director:openPopUp(e.target.scene);
end
end
background:addEventListener("touch", changeScene);
btn_play:addEventListener("touch", openPopup);
return localGroup;
end
1 ответ
Решение
Просто положи return
в конце вашей функции. Это предотвратит touch
к нижележащим объектам.
function openPopup(e)
if(e.phase == "ended") then
director:openPopUp(e.target.scene);
return true; -- put this in your function.
end
end
Продолжайте кодировать..............:)