私は同じ画面を何度も再ロードする必要があるコロナでアプリケーションを開発しています。どのようにしたらいいのか分かりません。誰でもコードで説明できます。コロナの画面をリロードする
答えて
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
ストーリーボード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
私は正確に知らないが、私のゲームは、私がchangeSceneに同じLUAファイルを使用しています。
myscene.lua
ディレクター:changeScene( "myscene")
私は例を以下に示している、私のために働いた別の方法を試してみました -
ステップ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)
私はあなたがこの手順を実行する必要がありますだと思いますコロナでのシーン。
ステップ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
このメソッドを使用して同じ画面をリロードすることもできます。 timer.performWithDelay(500、function()director:changeScene( "your scene name")); しかし、上記の関数を呼び出す前に、すべてのオブジェクトを表示グループから削除する必要があります。
リロードシーンを作成することができます。 シーンをローリングすることができます。この
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
のようなあなたのリロードシーンコードのように