I have 3 .lua files, every file has a storyboard with image sheet animation. when the first .lua(intro.lua) file has finished its animation, the scene will go to the second .lua file(introb.lua), and after the animation of the second file the scene will be directed to the third .lua file(introc.lua). My problem is when the scene is in the third .lua file(introc.lua) the screen freezes. I am wondering if the problem is because of the image size. I dont know how to delete the previous scene so please help me solving this problem.
these are the codes of the 1st, 2nd and 3rd .lua file (intro.lua, introb.lua, introc.lua):
INTRO.LUA
local storyboard = require( “storyboard” )
local scene = storyboard.newScene()
local Intrologo
local IntrologosequenceData
local Intrologoanimation
– Clear previous scene
storyboard.removeAll()
storyboard.purgeOnSceneChange = true
– local forward references should go here –
– BEGINNING OF YOUR IMPLEMENTATION
– Called when the scene’s view does not exist:
function scene:createScene( event )
local group = self.view
Intrologo = { width=640, height=480, numFrames=34, sheetContentWidth=1280, sheetContentHeight=8160 }
local IntrologoSheet = graphics.newImageSheet( “images/intrologosmall.png”, Intrologo )
IntrologosequenceData = {
{ name = “fastRun”,
frames = { 1,2,3,25,25,25,25,25}, --specific order of frame indexes from the image sheet
time = 3000, – higher = slower , lower = faster
loopCount = 1
} --if defining more sequences, place a comma here and proceed to the next sequence sub-table
}
Intrologoanimation = display.newSprite( IntrologoSheet, IntrologosequenceData )
Intrologoanimation.x = 240
Intrologoanimation.y = 160
Intrologoanimation:scale( display.contentWidth / 640, display.contentHeight / 480 )
Intrologoanimation:play()
group:insert ( Intrologoanimation ) --group
local function mySpriteListener( event )
if ( event.phase == “ended” ) then
display.remove( Intrologoanimation )
storyboard.gotoScene(“introb”)
end
end
Intrologoanimation:addEventListener( “sprite”, mySpriteListener )
end
– Called BEFORE scene has moved onscreen:
function scene:willEnterScene( event )
local group = self.view
end
– Called immediately after scene has moved onscreen:
function scene:enterScene( event )
local group = self.view
end
– Called when scene is about to move offscreen:
function scene:exitScene( event )
local group = self.view
Intrologoanimation:removeSelf()
end
– Called AFTER scene has finished moving offscreen:
function scene:didExitScene( event )
local group = self.view
end
– Called prior to the removal of scene’s “view” (display view)
function scene:destroyScene( event )
local group = self.view
end
– Called if/when overlay scene is displayed via storyboard.showOverlay()
function scene:overlayBegan( event )
local group = self.view
local overlay_name = event.sceneName – name of the overlay scene
end
– Called if/when overlay scene is hidden/removed via storyboard.hideOverlay()
function scene:overlayEnded( event )
local group = self.view
local overlay_name = event.sceneName – name of the overlay scene
end
– END OF YOUR IMPLEMENTATION
– “createScene” event is dispatched if scene’s view does not exist
scene:addEventListener( “createScene”, scene )
– “willEnterScene” event is dispatched before scene transition begins
scene:addEventListener( “willEnterScene”, scene )
– “enterScene” event is dispatched whenever scene transition has finished
scene:addEventListener( “enterScene”, scene )
– “exitScene” event is dispatched before next scene’s transition begins
scene:addEventListener( “exitScene”, scene )
– “didExitScene” event is dispatched after scene has finished transitioning out
scene:addEventListener( “didExitScene”, 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 )
– “overlayBegan” event is dispatched when an overlay scene is shown
scene:addEventListener( “overlayBegan”, scene )
– “overlayEnded” event is dispatched when an overlay scene is hidden/removed
scene:addEventListener( “overlayEnded”, scene )
return scene
INTROB.LUA
local storyboard = require( “storyboard” )
local scene = storyboard.newScene()
local Intrologo2
local IntrologosequenceData2
local Intrologoanimation2
– Clear previous scene
storyboard.removeAll()
storyboard.purgeOnSceneChange = true
– local forward references should go here –
– BEGINNING OF YOUR IMPLEMENTATION
– Called when the scene’s view does not exist:
function scene:createScene( event )
local group2 = self.view
Intrologo2 = { width=640, height=480, numFrames=34, sheetContentWidth=1280, sheetContentHeight=8160 }
local IntrologoSheet2 = graphics.newImageSheet( “images/intrologosmall.png”, Intrologo2 )
IntrologosequenceData2 = {
{ name = “fastRun2”,
frames = { 1,2,3,25,25,25,25,25}, --specific order of frame indexes from the image sheet
time = 3000, – higher = slower , lower = faster
loopCount = 1
} --if defining more sequences, place a comma here and proceed to the next sequence sub-table
}
Intrologoanimation2 = display.newSprite( IntrologoSheet2, IntrologosequenceData2 )
Intrologoanimation2.x = 240
Intrologoanimation2.y = 160
Intrologoanimation2:scale( display.contentWidth / 640, display.contentHeight / 480 )
Intrologoanimation2:play()
group2:insert ( Intrologoanimation2 ) --group
function mySpriteListener2( event )
if ( event.phase == “ended” ) then
storyboard.gotoScene(“introc”)
end
end
Intrologoanimation2:addEventListener( “sprite”, mySpriteListener2 )
end
– Called BEFORE scene has moved onscreen:
function scene:willEnterScene( event )
local group2 = self.view
end
– Called immediately after scene has moved onscreen:
function scene:enterScene( event )
local group2 = self.view
end
– Called when scene is about to move offscreen:
function scene:exitScene( event )
local group2 = self.view
Intrologoanimation2:removeSelf()
end
– Called AFTER scene has finished moving offscreen:
function scene:didExitScene( event )
local group2 = self.view
end
– Called prior to the removal of scene’s “view” (display view)
function scene:destroyScene( event )
local group2 = self.view
end
– Called if/when overlay scene is displayed via storyboard.showOverlay()
function scene:overlayBegan( event )
local group2 = self.view
local overlay_name = event.sceneName – name of the overlay scene
end
– Called if/when overlay scene is hidden/removed via storyboard.hideOverlay()
function scene:overlayEnded( event )
local group2 = self.view
local overlay_name = event.sceneName – name of the overlay scene
end
– END OF YOUR IMPLEMENTATION
– “createScene” event is dispatched if scene’s view does not exist
scene:addEventListener( “createScene”, scene )
– “willEnterScene” event is dispatched before scene transition begins
scene:addEventListener( “willEnterScene”, scene )
– “enterScene” event is dispatched whenever scene transition has finished
scene:addEventListener( “enterScene”, scene )
– “exitScene” event is dispatched before next scene’s transition begins
scene:addEventListener( “exitScene”, scene )
– “didExitScene” event is dispatched after scene has finished transitioning out
scene:addEventListener( “didExitScene”, 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 )
– “overlayBegan” event is dispatched when an overlay scene is shown
scene:addEventListener( “overlayBegan”, scene )
– “overlayEnded” event is dispatched when an overlay scene is hidden/removed
scene:addEventListener( “overlayEnded”, scene )
return scene
INTROC.LUA
local storyboard = require( “storyboard” )
local scene = storyboard.newScene()
local Intrologo3
local IntrologosequenceData3
local Intrologoanimation3
– Clear previous scene
storyboard.removeAll()
storyboard.purgeOnSceneChange = true
– local forward references should go here –
– BEGINNING OF YOUR IMPLEMENTATION
– Called when the scene’s view does not exist:
function scene:createScene( event )
local group3 = self.view
Intrologo3 = { width=640, height=480, numFrames=34, sheetContentWidth=1280, sheetContentHeight=8160 }
local IntrologoSheet3 = graphics.newImageSheet( “images/intrologosmall.png”, Intrologo3 )
IntrologosequenceData3 = {
{ name = “fastRun3”,
frames = { 1,2,3,25,25,25,25,25}, --specific order of frame indexes from the image sheet
time = 3000, – higher = slower , lower = faster
loopCount = 1
} --if defining more sequences, place a comma here and proceed to the next sequence sub-table
}
Intrologoanimation3 = display.newSprite( IntrologoSheet3, IntrologosequenceData3 )
Intrologoanimation3.x = 240
Intrologoanimation3.y = 160
Intrologoanimation3:scale( display.contentWidth / 640, display.contentHeight / 480 )
Intrologoanimation3:play()
group3:insert ( Intrologoanimation3 ) --group
function mySpriteListener3( event )
if ( event.phase == “ended” ) then
storyboard.gotoScene(“menu”)
end
end
Intrologoanimation3:addEventListener( “sprite”, mySpriteListener3 )
end
– Called BEFORE scene has moved onscreen:
function scene:willEnterScene( event )
local group3 = self.view
end
– Called immediately after scene has moved onscreen:
function scene:enterScene( event )
local group3 = self.view
end
– Called when scene is about to move offscreen:
function scene:exitScene( event )
local group3 = self.view
Intrologoanimation3:removeSelf()
end
– Called AFTER scene has finished moving offscreen:
function scene:didExitScene( event )
local group3 = self.view
end
– Called prior to the removal of scene’s “view” (display view)
function scene:destroyScene( event )
local group3 = self.view
end
– Called if/when overlay scene is displayed via storyboard.showOverlay()
function scene:overlayBegan( event )
local group3 = self.view
local overlay_name = event.sceneName – name of the overlay scene
end
– Called if/when overlay scene is hidden/removed via storyboard.hideOverlay()
function scene:overlayEnded( event )
local group3 = self.view
local overlay_name = event.sceneName – name of the overlay scene
end
– END OF YOUR IMPLEMENTATION
– “createScene” event is dispatched if scene’s view does not exist
scene:addEventListener( “createScene”, scene )
– “willEnterScene” event is dispatched before scene transition begins
scene:addEventListener( “willEnterScene”, scene )
– “enterScene” event is dispatched whenever scene transition has finished
scene:addEventListener( “enterScene”, scene )
– “exitScene” event is dispatched before next scene’s transition begins
scene:addEventListener( “exitScene”, scene )
– “didExitScene” event is dispatched after scene has finished transitioning out
scene:addEventListener( “didExitScene”, 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 )
– “overlayBegan” event is dispatched when an overlay scene is shown
scene:addEventListener( “overlayBegan”, scene )
– “overlayEnded” event is dispatched when an overlay scene is hidden/removed
scene:addEventListener( “overlayEnded”, scene )
return scene