Android storyboard.purgese()在exitScene中不起作用,但当它使用类似于tap的函数时,它会起作用
我是android开发新手,想问一个简单的问题 storyboard.Purgesene(sceneName)在我的场景:exitScene(e)中不起作用,但当我将其附加到tap函数时,它会起作用。为什么会这样 下面是正在运行的示例代码:Android storyboard.purgese()在exitScene中不起作用,但当它使用类似于tap的函数时,它会起作用,android,corona-storyboard,Android,Corona Storyboard,我是android开发新手,想问一个简单的问题 storyboard.Purgesene(sceneName)在我的场景:exitScene(e)中不起作用,但当我将其附加到tap函数时,它会起作用。为什么会这样 下面是正在运行的示例代码: local storyboard = require ( "storyboard" ); local scene = storyboard.newScene(); local startbtn; local roller; local ceiling; l
local storyboard = require ( "storyboard" );
local scene = storyboard.newScene();
local startbtn;
local roller;
local ceiling;
local ground;
local leftwall;
local rightwall;
function scene:createScene(e)
local view = self.view;
local background = display.newImageRect( "background.png", _W, _H);
background.x = _W * 0.5;
background.y = _H * 0.5;
local logo = display.newImageRect( "logo.png", 800, 300);
logo.x = _W * 0.5;
logo.y = logo.height - 100;
startbtn = display.newImageRect( "start.png", 400, 150)
startbtn.x = _W * 0.5;
startbtn.y = logo.height + 150;
roller = display.newImageRect ( "roller.png", 150, 150 );
roller.x = _W * 0.5;
roller.y = _H - 150;
ceiling = display.newImageRect( "horizontal.png", _W, 50);
ceiling.x = _W * 0.5;
ceiling.y = 25;
ground = display.newImageRect( "horizontal.png", _W, 50);
ground.x = _W * 0.5;
ground.y = _H - 25;
leftwall = display.newImageRect( "vertical.png", 50, _H);
leftwall.x = 25;
leftwall.y = _H * 0.5;
rightwall = display.newImageRect( "vertical.png", 50, _H);
rightwall.x = _W - 25;
rightwall.y = _H * 0.5;
view:insert(background);
view:insert(ceiling);
view:insert(ground);
view:insert(leftwall);
view:insert(rightwall);
view:insert(logo);
view:insert(startbtn);
view:insert(roller);
startbtn:addEventListener ( "tap", startbtn );
function startbtn:tap(e)
storyboard.gotoScene("stage1");
storyboard.purgeScene("menu");
end
end
function scene:enterScene(e)
physics.addBody ( roller, {density=10, friction=0.5, bounce=0.1, radius = 75});
physics.addBody ( ground, "static", {friction=0.5, bounce=0.1} );
physics.addBody ( ceiling,"static", {friction=0.5, bounce=0.1} );
physics.addBody ( leftwall, "static",{friction=0.5, bounce=0.1} );
physics.addBody ( rightwall,"static", {friction=0.5, bounce=0.1} );
end
function scene:exitScene(e)
end
scene:addEventListener ( "createScene", scene );
scene:addEventListener ( "enterScene", scene );
scene:addEventListener ( "exitScene", scene );
return scene;
下面是应该可以工作但不能工作的代码
storyboard = require ( "storyboard" );
local scene = storyboard.newScene();
local startbtn;
local roller;
local ceiling;
local ground;
local leftwall;
local rightwall;
function scene:createScene(e)
local view = self.view;
local background = display.newImageRect( "background.png", _W, _H);
background.x = _W * 0.5;
background.y = _H * 0.5;
local logo = display.newImageRect( "logo.png", 800, 300);
logo.x = _W * 0.5;
logo.y = logo.height - 100;
startbtn = display.newImageRect( "start.png", 400, 150)
startbtn.x = _W * 0.5;
startbtn.y = logo.height + 150;
roller = display.newImageRect ( "roller.png", 150, 150 );
roller.x = _W * 0.5;
roller.y = _H - 150;
ceiling = display.newImageRect( "horizontal.png", _W, 50);
ceiling.x = _W * 0.5;
ceiling.y = 25;
ground = display.newImageRect( "horizontal.png", _W, 50);
ground.x = _W * 0.5;
ground.y = _H - 25;
leftwall = display.newImageRect( "vertical.png", 50, _H);
leftwall.x = 25;
leftwall.y = _H * 0.5;
rightwall = display.newImageRect( "vertical.png", 50, _H);
rightwall.x = _W - 25;
rightwall.y = _H * 0.5;
view:insert(background);
view:insert(ceiling);
view:insert(ground);
view:insert(leftwall);
view:insert(rightwall);
view:insert(logo);
view:insert(startbtn);
view:insert(roller);
startbtn:addEventListener ( "tap", startbtn );
function startbtn:tap(e)
storyboard.gotoScene("stage1");
end
end
function scene:enterScene(e)
physics.addBody ( roller, {density=10, friction=0.5, bounce=0.1, radius = 75});
physics.addBody ( ground, "static", {friction=0.5, bounce=0.1} );
physics.addBody ( ceiling,"static", {friction=0.5, bounce=0.1} );
physics.addBody ( leftwall, "static",{friction=0.5, bounce=0.1} );
physics.addBody ( rightwall,"static", {friction=0.5, bounce=0.1} );
end
function scene:exitScene(e)
storyboard.purgeScene("menu");
end
scene:addEventListener ( "createScene", scene );
scene:addEventListener ( "enterScene", scene );
scene:addEventListener ( "exitScene", scene );
return scene;
有人能给我解释一下吗,因为我在这里很困惑。NVM,你的功能启动了tn:tap(e)在你的createScene功能中,你必须将它移出。试试这段代码 --场景1.lua 本地情节提要=需要“情节提要” 本地场景=故事板.newScene() --CreateSecene事件只是创建一个背景图像 功能场景:CreateSecene(事件) 本地bg=display.newImage(self.view,“background.png”) 终止 场景:addEventListener(“创建场景”) 返场 如果您有更多疑问,请登录:
function scene:didExitScene( event )
storyboard.purgeScene( "scene1" )
end
scene:addEventListener( "didExitScene" )