Zajmuję się tworzeniem aplikacji w Corona, gdzie muszę ponownie załadować ten sam ekran.I nie mam pojęcia, jak to zrobić, Czy ktoś może mi wyjaśnić to z kodemPrzeładowanie ekranu w Corona
Odpowiedz
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
Storyboard API jest dostępny od budowy 2011,678
Oto przykład przy użyciu API storyboard korzystając budować 2011,704
każdy dotyk będzie przeładować całość Scena
--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
Nie wiem dokładnie, ale w mojej grze używam tego samego pliku lua dla changeScene.
myscene.lua
reżyseria: changeScene ("myscene")
Próbowałem innej metody, które pracowały dla mnie przykład jest podany poniżej -
Krok 1- utwórz obiekt taki jak - lokalne ponowne załadowanieScene
Krok 2 - Zastosuj krok 2, gdy wymagane jest ponowne załadowanie sceny - reloadScene = "YES " storyboard.reloadScene (" eventsButtonClicked ")
Etap 3 Zastosować KROK3, kiedy nie ma konieczności ponownego ładowania sceny - funkcja scene2a: exitScene (zdarzenia) jeśli reloadScene == "Tak", wówczas storyboard.purgeScene ("eventsButtonClicked") reloadScene = "NO" koniec koniec scene2a: addEventListener ("exitScene" scene2a)
myślę, że należy mieć się do tej czynności: który I wprowadziły do przeładunku/restartowania storyboard scena w koronie.
Krok 1: Utwórz funkcję lub linię kodu, aby ponownie uruchomić/ponownie załadować tę scenę z poziomu serii scenorysów, z której chcesz przeładować lub ponownie uruchomić.
function forRestart(event)
if(event.phase == "ended") then
local current_scene_name = storyboard.getCurrentSceneName()
**storyboard.gotoScene("reload", "fade", 250)**
return true;
end
Krok 2: Utwórz plik lua o nazwie przeładować. Poniżej znajduje się szablon pliku 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
- Zadzwoniłem natychmiast po scenie przeniósł się na ekranie:
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
- Wywoływana gdy scena ma zamiar przenieść poza ekranem:
function scene:exitScene(event)
local group = self.view
end
- Jeśli widoku sceny jest usuwany , scena: destroyScene() zostanie wywołana tuż przed:
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
Możesz również ponownie załadować ten sam ekran za pomocą tej metody: timer.performWithDelay (500, funkcja() director: changeScene ("twoja nazwa sceny")); Ale przed wywołaniem powyższej funkcji, musisz usunąć cały obiekt z grupy wyświetlania.
Możesz utworzyć scenę przeładowania, i zadzwoń do programu Roload Any Scene. Ci się to
composer.gotoScene("Scene.Reload" ,
{
params =
{
reloadSceneOptions =
{
effect = "slideLeft",
time = 500,
},
reloadSceneName = SceneName
}
})
i twoi Reload Kodeksu sceny jak
elseif phase == "did" then
local reloadSceneOptions = event.params.reloadSceneOptions
local reloadSceneName = event.params.reloadSceneName
composer.removeScene(reloadSceneName)
composer.gotoScene(reloadSceneName , reloadSceneOptions)
end
- 1. Funkcja Przeładowanie
- 2. Jak utworzyć ekran ładowania w Corona SDK?
- 3. Czy powinniśmy pójść drogą Corona?
- 4. Precyzja renderowania kart paskowych Corona
- 5. Corona: Próba łączenia globalnej „sceneName”
- 6. Corona SDK produkowane aplikację rozmiar
- 7. Czy mogę przedłużyć Corona z natywnym kodem?
- 8. Powiadomienie o wielu liniach Corona sdk display
- 9. Począwszy od Corona Enterprise Plugin Development
- 10. kontrola systemu plików chrome - przeładowanie po zmianie
- 11. jak zresetować reagowania-router na przeładowanie strony
- 12. "obsłuży przeładowanie httpd" przeładuje nowe ustawienia php.ini?
- 13. jak przekazać parametry na przeładowanie DataTables
- 14. Przeładowanie serwera deweloperskiego Django trwa zbyt długo
- 15. Przeładowanie na żywo dla aplikacji elektronowej
- 16. Jak tworzyć i zapisywać ustawienia w corona sdk?
- 17. Jak zmienić bibliotekę Tableview w Corona SDK dla Retina Graphics
- 18. Nakładka ekranu do zrzutu ekranu
- 19. ekranu tylko część ekranu - Swift
- 20. Zrzut ekranu w Haskell?
- 21. Czyszczenie ekranu w IPython
- 22. Podział ekranu w LibGDX
- 23. Rozmycie ekranu w LibGDX
- 24. LUA (Corona SDK) Math.floor() zwraca błędną wartość z przyrostem 0,1
- 25. Rozmiar aplikacji aplikacji Corona sdk jest zbyt duży
- 26. UICollectionView: Czy istnieje sposób na przeładowanie tylko widoków dodatkowych?
- 27. Dlaczego przycisk powoduje przeładowanie całej mojej strony internetowej?
- 28. siła jQuery mobile pełne przeładowanie po kliknięciu łącza
- 29. Iskrzenie strumieniowe z wielu źródeł, przeładowanie ramek danych
- 30. bezpłatny przydzielane przez <canvas/> pamięci na przeładowanie strony