2011-11-01 9 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

स्टोरीबोर्ड एपीआई निर्माण के बाद से उपलब्ध है 2011,678

यहाँ स्टोरीबोर्ड एपीआई का उपयोग कर का उपयोग करते हुए एक नमूना निर्माण 2011,704

प्रत्येक स्पर्श पूरे फिर से लोड होगा दृश्य

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

मुझे बिल्कुल नहीं पता लेकिन मेरा गेम मैं चेंजसेन के लिए एक ही लुआ फ़ाइल का उपयोग करता हूं।

myscene.lua

निर्देशक: changeScene ("myscene")

0

मैं एक और तरीका है जो मेरे लिए काम किया की कोशिश की है, उदाहरण के नीचे दिया गया है -

चरण 1 बनाने एक वस्तु जैसे - स्थानीय रीलोडसेन

चरण 2- चरण 2 लागू करें, जब पुनः लोड दृश्य आवश्यक है - reloadScene = "हाँ " storyboard.reloadScene (" eventsButtonClicked ")

चरण 3 चरण 3 लागू करें, जब पुनः लोड दृश्य की कोई जरूरत नहीं है - समारोह scene2a: exitScene (घटना) अगर reloadScene ==" हाँ "तो storyboard.purgeScene ("eventsButtonClicked") reloadScene = "नहीं" अंत अंत 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 

- यदि दृश्य के दृश्य हटा दिया जाता है , दृश्य: नष्ट करेंसेन() को पहले से पहले कहा जाएगा:

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, फ़ंक्शन() निदेशक: चेंजसेन ("आपका दृश्य नाम")); लेकिन उपर्युक्त फ़ंक्शन को कॉल करने से पहले, आपको प्रदर्शन समूह से सभी ऑब्जेक्ट को निकालना होगा।

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 
की तरह आपका पुनः लोड दृश्य कोड की तरह
संबंधित मुद्दे