Lua 电晕重装屏

Lua 电晕重装屏,lua,coronasdk,Lua,Coronasdk,我正在corona开发一个应用程序,需要一次又一次地重新加载同一个屏幕。我不知道怎么做,有人能用代码给我解释一下吗 2)main.lua display.setStatusBar (display.HiddenStatusBar) --> Hides the status bar local director = require ("director") --> Imports director local mainGroup = display.newGroup() -->

我正在corona开发一个应用程序,需要一次又一次地重新加载同一个屏幕。我不知道怎么做,有人能用代码给我解释一下吗

2)main.lua

display.setStatusBar (display.HiddenStatusBar)
--> Hides the status bar

local director = require ("director")
--> Imports director

local mainGroup = display.newGroup()
--> Creates a main group

local function main()
--> Adds main function

    mainGroup:insert(director.directorView)
    --> Adds the group from director

    director:changeScene("myscene")
    --> Change the scene, no effects

    return true
end

main()
module(..., package.seeall)

function new()
    local localGroup = display.newGroup()

    local redbutton = display.newImage ("redbutton.png")
    redbutton.x = 160
    redbutton.y = 100
    localGroup:insert(redbutton)

    local function pressRed (event)
        if event.phase == "ended" then
            director:changeScene ("reloader")
        end
    end

    redbutton:addEventListener ("touch", pressRed)

    return localGroup
end
module(..., package.seeall)

function new()
    local localGroup = display.newGroup()

        local function listener( event )
            director:changeScene ("myscene", "fade")
        end

        timer.performWithDelay(50, listener )

        return localGroup
end
3)myscene.lua

display.setStatusBar (display.HiddenStatusBar)
--> Hides the status bar

local director = require ("director")
--> Imports director

local mainGroup = display.newGroup()
--> Creates a main group

local function main()
--> Adds main function

    mainGroup:insert(director.directorView)
    --> Adds the group from director

    director:changeScene("myscene")
    --> Change the scene, no effects

    return true
end

main()
module(..., package.seeall)

function new()
    local localGroup = display.newGroup()

    local redbutton = display.newImage ("redbutton.png")
    redbutton.x = 160
    redbutton.y = 100
    localGroup:insert(redbutton)

    local function pressRed (event)
        if event.phase == "ended" then
            director:changeScene ("reloader")
        end
    end

    redbutton:addEventListener ("touch", pressRed)

    return localGroup
end
module(..., package.seeall)

function new()
    local localGroup = display.newGroup()

        local function listener( event )
            director:changeScene ("myscene", "fade")
        end

        timer.performWithDelay(50, listener )

        return localGroup
end
4)重新加载程序。lua

display.setStatusBar (display.HiddenStatusBar)
--> Hides the status bar

local director = require ("director")
--> Imports director

local mainGroup = display.newGroup()
--> Creates a main group

local function main()
--> Adds main function

    mainGroup:insert(director.directorView)
    --> Adds the group from director

    director:changeScene("myscene")
    --> Change the scene, no effects

    return true
end

main()
module(..., package.seeall)

function new()
    local localGroup = display.newGroup()

    local redbutton = display.newImage ("redbutton.png")
    redbutton.x = 160
    redbutton.y = 100
    localGroup:insert(redbutton)

    local function pressRed (event)
        if event.phase == "ended" then
            director:changeScene ("reloader")
        end
    end

    redbutton:addEventListener ("touch", pressRed)

    return localGroup
end
module(..., package.seeall)

function new()
    local localGroup = display.newGroup()

        local function listener( event )
            director:changeScene ("myscene", "fade")
        end

        timer.performWithDelay(50, listener )

        return localGroup
end

故事板API自构建2011.678开始提供

下面是一个使用build 2011.704的故事板API的示例

每次触摸都将重新加载整个场景

--main.lua
module(...,package.seeall)
local storyboard=require("storyboard")
local scene=storyboard.newScene()
scene.name="scnMenu"

function scene:createScene(event)
    local group=self.view
    bg=display.newRect(0,0,100,100)
    group:insert(bg)
end


function scene:enterScene(event)
    Runtime:addEventListener("touch",onTouch) 
end

function onTouch(event)
    storyboard.gotoScene("main","fade",1000)
end

function scene:exitScene(event)
    Runtime:removeEventListener("touch",onTouch)
end

function scene:destroyScene(event)
end

scene:addEventListener("createScene",scene)
scene:addEventListener("enterScene",scene)
scene:addEventListener("exitScene",scene)
scene:addEventListener("destroyScene",scene)

return scene

我不知道确切的情况,但我的游戏我使用了相同的lua文件用于changeScene

myscene.lua

导演:changeScene(“myscene”)


我尝试了另一种对我有效的方法,下面给出了一个例子-

步骤1-创建一个类似-局部重新加载场景的对象

步骤2-在需要重新加载场景时应用步骤2- 重新加载场景=“是” 情节提要。重新加载场景(“eventsButtonClicked”)

步骤3-在不需要重新加载场景时应用步骤3- 功能场景2A:exitScene(事件) 如果重新加载场景==“是”,则 情节提要.Purgese(“eventsButtonClicked”) 重新加载场景=“否” 结束 结束
scene2a:addEventListener(“exitScene”,scene2a)

我认为您应该遵循以下步骤:我已经实现了这些步骤,用于重新加载/重新启动corona中的情节提要场景

步骤1:创建一个函数或一行代码,从要重新加载或重新启动的脚本类中反复重新启动/重新加载同一场景。

function forRestart(event)

if(event.phase == "ended") then

   local current_scene_name = storyboard.getCurrentSceneName()
   **storyboard.gotoScene( "reload", "fade", 250 )**

return true;
end
步骤2:创建一个名为reload的lua文件。下面是reload.lua文件的模板。

local storyboard = require( "storyboard" )
local scene = storyboard.newScene()

-- Called when the scene's view does not exist:
function scene:createScene( event )
    local group = self.view

end
--在场景在屏幕上移动后立即调用:

function scene:enterScene( event )
    local group = self.view
    --purge level
    local previous_scene_name = storyboard.getPrevious()
    print("previous",previous_scene_name)
    --storyboard.removeScene(previous_scene_name)
    storyboard.purgeScene( previous_scene_name )
    --go back to level, by loading it from scratch
    storyboard.gotoScene( previous_scene_name, "fade", 250 )
end
--当场景即将移到屏幕外时调用:

function scene:exitScene( event )
    local group = self.view
end
--如果删除了场景的视图,则会在执行以下操作之前调用scene:destroySecene():

 function scene:destroyScene( event )
        local group = self.view
    end


-- "createScene" event is dispatched if scene's view does not exist

    scene:addEventListener( "createScene", scene )


-- "enterScene" event is dispatched whenever scene transition has finished

    scene:addEventListener( "enterScene", scene )


-- "exitScene" event is dispatched whenever before next scene's transition begins
scene:addEventListener( "exitScene", scene )

-- "destroyScene" event is dispatched before view is unloaded, which can be
-- automatically unloaded in low memory situations, or explicitly via a call to
-- storyboard.purgeScene() or storyboard.removeScene().
scene:addEventListener( "destroyScene", scene )

return scene

也可以使用此方法重新加载同一屏幕: timer.performWithDelay(500,function()控制器:changeSecene(“您的场景名称”);
但在调用上述函数之前,您需要从显示组中删除所有对象。

您可以创建一个重新加载场景, 然后调用它来加载任何场景。 像这样

composer.gotoScene("Scene.Reload" , 
    {
        params = 
        {
            reloadSceneOptions = 
            {
                effect = "slideLeft",
                time = 500,
            },
            reloadSceneName = SceneName
        }
    })
然后重新加载场景代码,如

elseif phase == "did" then
    local reloadSceneOptions = event.params.reloadSceneOptions
    local reloadSceneName = event.params.reloadSceneName

    composer.removeScene( reloadSceneName )
    composer.gotoScene( reloadSceneName , reloadSceneOptions )
end