transition help?

Hello,

in my app, i have a menu button to transition you from the puzzle you are in, to the menu. Now all the buttons work fine, until you hit the menu button and go back to the menu. When you try and go back to the puzzle pages, you get stuck. Here is my code, and am i doing something incorrect?

[code]
local physics = require(“physics”)
physics.start()
physics.setDrawMode(“hybrid”)

module(…, package.seeall)
local localGroup
function new()
localGroup = display.newGroup()
print( “flower” )

local leftWall = display.newRect(0, 0, 1, display.contentHeight )
localGroup:insert(leftWall)
local rightWall = display.newRect(display.contentWidth, 0, 1, display.contentHeight )
localGroup:insert(rightWall)
local ceiling = display.newRect(0, 0, display.contentWidth, 1 )
localGroup:insert(ceiling)

physics.addBody(leftWall, “static”, { bounce = 0.0} )
physics.addBody(rightWall, “static”, { bounce = 0.0} )
physics.addBody(ceiling, “static”, { bounce = 0.0} )

local ground = display.newImage(“ground.png”)
ground.x = 160; ground.y = 490
physics.addBody( ground, “static”, { friction=0.5, bounce=0.0 } )
localGroup:insert(ground)

local image = display.newImage( “piecebox.png”, 0, 350 )
localGroup:insert(image)

local image = display.newImage( “solvebox.png”, 40, 80 )
localGroup:insert(image)

local button = display.newImage( “menu.png” )
local function buttont ( event )
media.playEventSound( “Robot Blip.caf” )
if event.phase == “ended” then
director:changeScene(“page1”,“moveFromRight”)
end
end
button:addEventListener(“touch”,buttont)
button.x = 278
button.y = 30
localGroup:insert(button)

local image = display.newImage( “flowerpiece1.png”, 5, 420 )
localGroup:insert(image)

local function drag ( event )
local image = event.target
local phase = event.phase
if “began” == phase then
display.getCurrentStage():setFocus( image )
image.x0 = event.x - image.x
image.y0 = event.y - image.y
event.target.bodyType = “kinematic”
event.target:setLinearVelocity( 0, 0 )
event.target.angularVelocity = 0
else
if “moved” == phase then
image.x = event.x - image.x0
image.y = event.y - image.y0
elseif “ended” == phase or “cancelled” == phase then
display.getCurrentStage():setFocus( nil )
event.target.bodyType = “dynamic”
image:setLinearVelocity(speedX, speedY)
end
end

return true
end
image:addEventListener(“touch”, drag)
local speedX = 0
local speedY = 0
local prevTime = 0
local prevX = 0
local prevY = 0

function trackVelocity(event)
local timePassed = event.time - prevTime
prevTime = prevTime + timePassed

speedX = (image.x - prevX)/(timePassed/1000)
speedY = (image.y - prevY)/(timePassed/1000)

prevX = image.x
prevY = image.y
end

Runtime:addEventListener(“enterFrame”, trackVelocity)

local image = display.newImage( “flowerpiece2.png”, 5, 370 )
localGroup:insert(image)

local function drag ( event )
local image = event.target
local phase = event.phase
if “began” == phase then
display.getCurrentStage():setFocus( image )
image.x0 = event.x - image.x
image.y0 = event.y - image.y
event.target.bodyType = “kinematic”
event.target:setLinearVelocity( 0, 0 )
event.target.angularVelocity = 0
else
if “moved” == phase then
image.x = event.x - image.x0
image.y = event.y - image.y0
elseif “ended” == phase or “cancelled” == phase then
display.getCurrentStage():setFocus( nil )
event.target.bodyType = “dynamic”
image:setLinearVelocity(speedX, speedY)
end
end

return true
end
image:addEventListener(“touch”, drag)
local speedX = 0
local speedY = 0
local prevTime = 0
local prevX = 0
local prevY = 0

function trackVelocity(event)
local timePassed = event.time - prevTime
prevTime = prevTime + timePassed

speedX = (image.x - prevX)/(timePassed/1000)
speedY = (image.y - prevY)/(timePassed/1000)

prevX = image.x
prevY = image.y
end

Runtime:addEventListener(“enterFrame”, trackVelocity)
local image = display.newImage( “flowerpiece3.png”, 100, 420 )
localGroup:insert(image)

local function drag ( event )
local image = event.target
local phase = event.phase
if “began” == phase then
display.getCurrentStage():setFocus( image )
image.x0 = event.x - image.x
image.y0 = event.y - image.y
event.target.bodyType = “kinematic”
event.target:setLinearVelocity( 0, 0 )
event.target.angularVelocity = 0
else
if “moved” == phase then
image.x = event.x - image.x0
image.y = event.y - image.y0
elseif “ended” == phase or “cancelled” == phase then
display.getCurrentStage():setFocus( nil )
event.target.bodyType = “dynamic”
image:setLinearVelocity(speedX, speedY)
end
end

return true
end
image:addEventListener(“touch”, drag)
local speedX = 0
local speedY = 0
local prevTime = 0
local prevX = 0
local prevY = 0

function trackVelocity(event)
local timePassed = event.time - prevTime
prevTime = prevTime + timePassed

speedX = (image.x - prevX)/(timePassed/1000)
speedY = (image.y - prevY)/(timePassed/1000)

prevX = image.x
prevY = image.y
end

Runtime:addEventListener(“enterFrame”, trackVelocity)
local image = display.newImage( “flowerpiece4.png”, 100, 370 )
localGroup:insert(image)

local function drag ( event )
local image = event.target
local phase = event.phase
if “began” == phase then
display.getCurrentStage():setFocus( image )
image.x0 = event.x - image.x
image.y0 = event.y - image.y
event.target.bodyType = “kinematic”
event.target:setLinearVelocity( 0, 0 )
event.target.angularVelocity = 0
else
if “moved” == phase then
image.x = event.x - image.x0
image.y = event.y - image.y0
elseif “ended” == phase or “cancelled” == phase then
display.getCurrentStage():setFocus( nil )
event.target.bodyType = “dynamic”
image:setLinearVelocity(speedX, speedY)
end
end

return true
end
image:addEventListener(“touch”, drag)
local speedX = 0
local speedY = 0
local prevTime = 0
local prevX = 0
local prevY = 0

function trackVelocity(event)
local timePassed = event.time - prevTime
prevTime = prevTime + timePassed

speedX = (image.x - prevX)/(timePassed/1000)
speedY = (image.y - prevY)/(timePassed/1000)

prevX = image.x
prevY = image.y
end

Runtime:addEventListener(“enterFrame”, trackVelocity)
local image = display.newImage( “flowerpiece5.png”, 195, 370 )
localGroup:insert(image)

local function drag ( event )
local image = event.target
local phase = event.phase
if “began” == phase then
display.getCurrentStage():setFocus( image )
image.x0 = event.x - image.x
image.y0 = event.y - image.y
event.target.bodyType = “kinematic”
event.target:setLinearVelocity( 0, 0 )
event.target.angularVelocity = 0
else
if “moved” == phase then
image.x = event.x - image.x0
image.y = event.y - image.y0
elseif “ended” == phase or “cancelled” == phase then
display.getCurrentStage():setFocus( nil )
event.target.bodyType = “dynamic”
image:setLinearVelocity(speedX, speedY)
end
end

return true
end
image:addEventListener(“touch”, drag)
local speedX = 0
local speedY = 0
local prevTime = 0
local prevX = 0
local prevY = 0

function trackVelocity(event)
local timePassed = event.time - prevTime
prevTime = prevTime + timePassed

speedX = (image.x - prevX)/(timePassed/1000)
speedY = (image.y - prevY)/(timePassed/1000)

prevX = image.x
prevY = image.y
end

Runtime:addEventListener(“enterFrame”, trackVelocity)
return localGroup
end
[/code] [import]uid: 19836 topic_id: 8989 reply_id: 308989[/import]

Oh and when i check it in the terminal, it says runtime error. [import]uid: 19836 topic_id: 8989 reply_id: 32808[/import]