2011-11-01 10 views
7

私は同じ画面を何度も再ロードする必要があるコロナでアプリケーションを開発しています。どのようにしたらいいのか分かりません。誰でもコードで説明できます。コロナの画面をリロードする

答えて

3

1)director class

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() 

3)myscene.lua

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 

4)reloader.lua

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 
1

ストーリーボードAPIビルド2011.678

はここ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 
1

私は正確に知らないが、私のゲームは、私がchangeSceneに同じLUAファイルを使用しています。

myscene.lua

ディレクター:changeScene( "myscene")

0

私は例を以下に示している、私のために働いた別の方法を試してみました -

ステップ1-作成 - local reloadSceneのようなオブジェクト

ステップ2:再ロードシーンが必要な場合は、ステップ2を適用します。 reloadScene = "YES " storyboard.reloadScene(" eventsButtonClicked」)

ステップ3 - リロードシーンの必要が無い場合は、STEP3の適用 - 機能scene2a:exitScene(イベント) reloadScene場合== "YES" その後、 storyboard.purgeScene ( "eventsButtonClicked") reloadScene = "NO" 終了 エンド scene2a:私は、ストーリーボードを再起動/再ロードするために実装されている:addEventListenerを( "exitScene"、scene2a)

0

私はあなたがこの手順を実行する必要がありますだと思いますコロナでのシーン。

ステップ1:リロードまたは再起動するストーリーボードクラスから同じシーンを何度も再起動/再読み込みする関数またはコード行を作成します。

function forRestart(event) 

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

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

return true; 
end 

ステップ2:名前のリロードと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 

- シーンのビューが削除された場合、シーン:destroyScene()は、直前に呼び出されます。

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 
0

このメソッドを使用して同じ画面をリロードすることもできます。 timer.performWithDelay(500、function()director:changeScene( "your scene name")); しかし、上記の関数を呼び出す前に、すべてのオブジェクトを表示グループから削除する必要があります。

0

リロードシーンを作成することができます。 シーンをローリングすることができます。この

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 
のようなあなたのリロードシーンコードのように