Hello everybody
Please help me.
I tried to get the snippet of the solutions together with part in composer and I don’t get over this error:
“\ scene1.lua:38: ERROR: table expected. If this is a function call, you might have used ‘.’ instead of ‘:’”.
This is all the code I put together from the snippets.
https://github.com/galahad9/AccessClassObjectInComposer
main.lua
local composer = require "composer" -- load first scene composer.gotoScene( "scene1", "fade", 400 )
world.lua (class/module)
local world = {} function world.new() local worldGroup = display.newGroup() local sky = display.newRect(350,50, 50,100 ) worldGroup:insert(sky) local ground = display.newRect(250,120, 30,36 ) worldGroup:insert(ground) world.worldGroup = worldGroup return worldGroup end function world:move() local thisSky = world.worldGroup[1] thisSky.x = thisSky.x - 10 -- this gave me nil end return world
scene1.lua (here is the error)
local composer = require( "composer" ) local scene = composer.newScene() local image, text1, text2, text3, memTimer local function onSceneTouch( self, event ) if event.phase == "began" then composer.gotoScene( "scene2", "slideLeft", 800 ) return true end end function scene:create( event ) local sceneGroup = self.view image = display.newImage( "bg.jpg" ) image.x = display.contentCenterX image.y = display.contentCenterY sceneGroup:insert( image ) image.touch = onSceneTouch text1 = display.newText( "Scene 1", 0, 0, native.systemFontBold, 24 ) text1:setFillColor( 255 ) text1.x, text1.y = display.contentWidth \* 0.5, 50 sceneGroup:insert( text1 ) text2 = display.newText( "MemUsage: ", 0, 0, native.systemFont, 16 ) text2:setFillColor( 255 ) text2.x, text2.y = display.contentWidth \* 0.5, display.contentHeight \* 0.5 sceneGroup:insert( text2 ) text3 = display.newText( "Touch to continue.", 0, 0, native.systemFontBold, 18 ) text3:setFillColor( 255 ); text3.isVisible = false text3.x, text3.y = display.contentWidth \* 0.5, display.contentHeight - 100 sceneGroup:insert( text3 ) -- ACCESSING MODULE world.lua local World = require "world" local thisWorld = World.new() sceneGroup:insert(thisWorld.worldGroup) print( "\n1: create event") end function scene:show( event ) local phase = event.phase if "did" == phase then print( "1: show event, phase did" ) -- remove previous scene's view composer.removeScene( "scene2" ) -- Update Lua memory text display local showMem = function() image:addEventListener( "touch", image ) text3.isVisible = true text2.text = text2.text .. collectgarbage("count")/1000 .. "MB" text2.x = display.contentWidth \* 0.5 end memTimer = timer.performWithDelay( 1000, showMem, 1 ) end end function scene:hide( event ) local phase = event.phase if "will" == phase then print( "1: hide event, phase will" ) -- remove touch listener for image image:removeEventListener( "touch", image ) -- cancel timer timer.cancel( memTimer ); memTimer = nil; -- reset label text text2.text = "MemUsage: " end end function scene:destroy( event ) print( "((destroying scene 1's view))" ) end scene:addEventListener( "create", scene ) scene:addEventListener( "show", scene ) scene:addEventListener( "hide", scene ) scene:addEventListener( "destroy", scene ) return scene
scene2.lua
local composer = require( "composer" ) local scene = composer.newScene() local image, text1, text2, text3, memTimer local function onSceneTouch( self, event ) if event.phase == "began" then composer.gotoScene( "scene1", "fade", 400 ) return true end end function scene:create( event ) local sceneGroup = self.view image = display.newImage( "bg2.jpg" ) image.x = display.contentCenterX image.y = display.contentCenterY sceneGroup:insert( image ) image.touch = onSceneTouch text1 = display.newText( "Scene 2", 0, 0, native.systemFontBold, 24 ) text1:setFillColor( 255 ) text1.x, text1.y = display.contentWidth \* 0.5, 50 sceneGroup:insert( text1 ) text2 = display.newText( "MemUsage: ", 0, 0, native.systemFont, 16 ) text2:setFillColor( 255 ) text2.x, text2.y = display.contentWidth \* 0.5, display.contentHeight \* 0.5 sceneGroup:insert( text2 ) text3 = display.newText( "Touch to continue.", 0, 0, native.systemFontBold, 18 ) text3:setFillColor( 255 ); text3.isVisible = false text3.x, text3.y = display.contentWidth \* 0.5, display.contentHeight - 100 sceneGroup:insert( text3 ) print( "\n2: create event" ) end function scene:show( event ) local phase = event.phase if "did" == phase then print( "2: show event, phase did" ) -- remove previous scene's view composer.removeScene( "scene1" ) -- Update Lua memory text display local showMem = function() image:addEventListener( "touch", image ) text3.isVisible = true text2.text = text2.text .. collectgarbage("count")/1000 .. "MB" text2.x = display.contentWidth \* 0.5 end memTimer = timer.performWithDelay( 1000, showMem, 1 ) end end function scene:hide( event ) local phase = event.phase if "will" == phase then print( "2: hide event, phase will" ) image:removeEventListener( "touch", image ) timer.cancel( memTimer ); memTimer = nil; text2.text = "MemUsage: " end end function scene:destroy( event ) print( "((destroying scene 2's view))" ) end scene:addEventListener( "create", scene ) scene:addEventListener( "show", scene ) scene:addEventListener( "hide", scene ) scene:addEventListener( "destroy", scene ) return scene