Also deleted a newText and properties from the table and adds a new one and dynamically displays.
display.setStatusBar( display.HiddenStatusBar ) – --------------------------------------------------------------------------------------------------------------------------------------- – This is standard newText in the app (great for a small number of elements). local txtHelp01 txtHelp01 = display.newText( “Talk to newText via Kwown Vars”, display.contentWidth / 2, 25, “HelveticaNeue-Thin”, 12 ) txtHelp01.x = display.contentWidth / 2 txtHelp01.y = 1 txtHelp01:setFillColor(1,1,1,1) local staticNewText01 staticNewText01 = display.newText( “staticNewText01 (Working OK)”, display.contentWidth / 2, display.contentHeight / 2, “HelveticaNeue-Thin”, 12 ) staticNewText01.x = display.contentWidth / 2 staticNewText01.y = 50 staticNewText01:setFillColor(0,1,0,1) local staticNewText02 staticNewText02 = display.newText( “staticNewText02 (Working OK)”, display.contentWidth / 2, display.contentHeight / 2, “HelveticaNeue-Thin”, 12 ) staticNewText02.x = display.contentWidth / 2 staticNewText02.y = 100 staticNewText02:setFillColor(0,1,0,1) – --------------------------------------------------------------------------------------------------------------------------------------- – I moved the items to a table to allow em to scale up the number of dynamic elements (but still known ID’s) local txtHelp02 txtHelp02 = display.newText( “Move newText to sub tables (appclass.subcollection)”, display.contentWidth / 2, 150, “HelveticaNeue-Thin”, 12 ) txtHelp02.x = display.contentWidth / 2 txtHelp02.y = 150 txtHelp02:setFillColor(1,1,1,1) local txtHelp02b txtHelp02b = display.newText( “with knwon IDs”, display.contentWidth / 2, 170, “HelveticaNeue-Thin”, 12 ) txtHelp02b.x = display.contentWidth / 2 txtHelp02b.y = 170 txtHelp02b:setFillColor(1,1,1,1) local appclass = { sampleval1 = “yada (sample property in the parent table)”, sampleval2 = “blah (sample property in the parent table)”, subcollectionitems = 0, – Used to hold the last highest item id in the sub collection subcollection = {}, } – Load Items Dynamically (Using ) appclass.subcollection[1] = {} appclass.subcollection[1].text = “asdf (sample property in the sub collection item)” appclass.subcollection[1].name = “Dynamic with known ID 01” appclass.subcollection[1].dynamicNewText = display.newText( “dynamicNewText[1] (Working OK)”, display.contentWidth / 2, display.contentHeight / 2, “HelveticaNeue-Thin”, 12 ) appclass.subcollection[1].dynamicNewText .x = display.contentWidth / 2 appclass.subcollection[1].dynamicNewText .y = 200 appclass.subcollection[1].dynamicNewText:setFillColor(1,0.4,0,1) appclass.subcollectionitems = (appclass.subcollectionitems + 1) – Increment the counter for the last highest item in appclass.subcollectionitems appclass.subcollection[2] = {} appclass.subcollection[2].text = “qwer (sample property in the sub collection item)” appclass.subcollection[2].name = “Dynamic with known ID 02” appclass.subcollection[2].dynamicNewText = display.newText( “dynamicNewText[2] (Working OK)”, display.contentWidth / 2, display.contentHeight / 2, “HelveticaNeue-Thin”, 12 ) appclass.subcollection[2].dynamicNewText .x = display.contentWidth / 2 appclass.subcollection[2].dynamicNewText .y = 250 appclass.subcollection[2].dynamicNewText:setFillColor(1,0.4,0,1) appclass.subcollectionitems = (appclass.subcollectionitems + 1) – Increment the counter for the last highest item in appclass.subcollectionitems print( “Quick check of parent table/collection (OK)”) print( "appclass.sampleval1 = " … tostring(appclass.sampleval1)) print( "appclass.sampleval2 = " … tostring(appclass.sampleval2)) print( " “) print( “Quick check of subtable/ collection (OK)”) print( “appclass.subcollection.name = " … tostring(appclass.subcollection[1].name)) print( “appclass.subcollection.name = " … tostring(appclass.subcollection[2].name)) print( " “) print( “appclass.subcollectionitems = " … tostring(appclass.subcollectionitems)) – --------------------------------------------------------------------------------------------------------------------------------------- – Now I need to add, enumerate and remove elements randomly without knowing the id’s local txtHelp03 txtHelp03 = display.newText( “Add newText items to sub table (appclass.subcollection)”, display.contentWidth / 2, 300, “HelveticaNeue-Thin”, 12 ) txtHelp03.x = display.contentWidth / 2 txtHelp03.y = 300 txtHelp03:setFillColor(1,1,1,1) local txtHelp0b txtHelp03b = display.newText( " without knowing the id.”, display.contentWidth / 2, 320, “HelveticaNeue-Thin”, 12 ) txtHelp03b.x = display.contentWidth / 2 txtHelp03b.y = 320 txtHelp03b:setFillColor(1,1,1,1) – todo add dynamic elements without knowing an id appclass.subcollectionitems = appclass.subcollectionitems + 1 – Add to the table increment thena use it to add to the table. appclass.subcollection[appclass.subcollectionitems] = {} appclass.subcollection[appclass.subcollectionitems].text = “uiop (sample property in the sub collection item)” appclass.subcollection[appclass.subcollectionitems].name = “Dynamic unknwon ID 01” appclass.subcollection[appclass.subcollectionitems].dynamicNewText = display.newText( “dynamicNewText[3] (OK)”, display.contentWidth / 2, display.contentHeight / 2, “HelveticaNeue-Thin”, 12 ) appclass.subcollection[appclass.subcollectionitems].dynamicNewText .x = display.contentWidth / 2 appclass.subcollection[appclass.subcollectionitems].dynamicNewText .y = 350 appclass.subcollection[appclass.subcollectionitems].dynamicNewText:setFillColor(1,0,0,1) appclass.subcollectionitems = appclass.subcollectionitems + 1 – Add to the table increment thena use it to add to the table. appclass.subcollection[appclass.subcollectionitems] = {} appclass.subcollection[appclass.subcollectionitems].text = “hjkl (sample property in the sub collection item)” appclass.subcollection[appclass.subcollectionitems].name = “Dynamic unknwon ID 02” appclass.subcollection[appclass.subcollectionitems].dynamicNewText = display.newText( “dynamicNewText[4] (OK)”, display.contentWidth / 2, display.contentHeight / 2, “HelveticaNeue-Thin”, 12 ) appclass.subcollection[appclass.subcollectionitems].dynamicNewText .x = display.contentWidth / 2 appclass.subcollection[appclass.subcollectionitems].dynamicNewText .y = 400 appclass.subcollection[appclass.subcollectionitems].dynamicNewText:setFillColor(1,0,0,1) appclass.subcollectionitems = appclass.subcollectionitems + 1 – Add to the table increment thena use it to add to the table. appclass.subcollection[appclass.subcollectionitems] = {} appclass.subcollection[appclass.subcollectionitems].text = “hjkl (sample property in the sub collection item)” appclass.subcollection[appclass.subcollectionitems].name = “Dynamic unknwon ID 0” … appclass.subcollectionitems appclass.subcollection[appclass.subcollectionitems].dynamicNewText = display.newText( “dynamicNewText[” … appclass.subcollectionitems … “] (OK)”, display.contentWidth / 2, display.contentHeight / 2, “HelveticaNeue-Thin”, 12 ) appclass.subcollection[appclass.subcollectionitems].dynamicNewText .x = display.contentWidth / 2 appclass.subcollection[appclass.subcollectionitems].dynamicNewText .y = 400 appclass.subcollection[appclass.subcollectionitems].dynamicNewText:setFillColor(1,0,0,1) appclass.subcollectionitems = appclass.subcollectionitems + 1 – Add to the table increment thena use it to add to the table. appclass.subcollection[appclass.subcollectionitems] = {} appclass.subcollection[appclass.subcollectionitems].text = “hjkl (sample property in the sub collection item)” appclass.subcollection[appclass.subcollectionitems].name = “Dynamic unknwon ID 0” … appclass.subcollectionitems appclass.subcollection[appclass.subcollectionitems].dynamicNewText = display.newText( “dynamicNewText[” … appclass.subcollectionitems … “] (OK)”, display.contentWidth / 2, display.contentHeight / 2, “HelveticaNeue-Thin”, 12 ) appclass.subcollection[appclass.subcollectionitems].dynamicNewText .x = display.contentWidth / 2 appclass.subcollection[appclass.subcollectionitems].dynamicNewText .y = 400 appclass.subcollection[appclass.subcollectionitems].dynamicNewText:setFillColor(1,0,0,1) function UpdateUI( event ) print( “UpdateUI() - " … tostring(os.time())) – Update the static elements (no problems here) staticNewText01.x = (display.contentWidth / 2 ) - math.random(10) staticNewText01.y = 50 - math.random(10) staticNewText02.x = (display.contentWidth / 2 ) - math.random(10) staticNewText02.y = 100 - math.random(10) – Update the dynamic elements with known ids (no problems here) appclass.subcollection[1].dynamicNewText.x = (display.contentWidth / 2 ) - math.random(10) appclass.subcollection[1].dynamicNewText.y = 200 + math.random(10) appclass.subcollection[2].dynamicNewText.x = (display.contentWidth / 2 ) - math.random(10) appclass.subcollection[2].dynamicNewText.y = 250 + math.random(10) – Update the dynamic elements with unknwon ids (no problems here) for key, value in pairs(appclass.subcollection) do local i = tonumber(key) if (i > 2) then – Dont move item 1 and 2 adn we knew their id’s appclass.subcollection[i].dynamicNewText.x = (display.contentWidth / 2 ) - math.random(10) appclass.subcollection[i].dynamicNewText.y = 220 + ( 40 * i ) + math.random(10) end end – debug output --print(” Show items (without knowing the ID)”) --for key, value in pairs(appclass.subcollection) do – local i = tonumber(key) – print( " " …tostring(appclass.subcollection[i].name) … " (OK)”) – print( " appclass.subcollection[” … tostring(i) … “].dynamicNewText.y = " … tostring(appclass.subcollection[i].dynamicNewText.y) … " (OK)”) --end – delete a key display.remove(appclass.subcollection[appclass.subcollectionitems].dynamicNewText) appclass.subcollection[appclass.subcollectionitems].dynamicNewText = nil – remove the text appclass.subcollection[appclass.subcollectionitems].text = nil – remove the text appclass.subcollection[appclass.subcollectionitems].name = nil – remove the name appclass.subcollection[appclass.subcollectionitems] = nil – remove item item – add a new one appclass.subcollectionitems = appclass.subcollectionitems + 1 – Add to the table increment thena use it to add to the table. appclass.subcollection[appclass.subcollectionitems] = {} appclass.subcollection[appclass.subcollectionitems].text = “hjkl (sample property in the sub collection item)” appclass.subcollection[appclass.subcollectionitems].name = “Dynamic unknwon ID 0” … appclass.subcollectionitems appclass.subcollection[appclass.subcollectionitems].dynamicNewText = display.newText( “dynamicNewText[” … appclass.subcollectionitems … “] (OK)”, display.contentWidth / 2, display.contentHeight / 2, “HelveticaNeue-Thin”, 12 ) appclass.subcollection[appclass.subcollectionitems].dynamicNewText .x = (display.contentWidth / 2 ) - math.random(10) appclass.subcollection[appclass.subcollectionitems].dynamicNewText .y = 460 + math.random(10) appclass.subcollection[appclass.subcollectionitems].dynamicNewText:setFillColor(1,0,0,1) print(” ") end Runtime:addEventListener( “enterFrame”, UpdateUI );