Ok, so here’s the code with comments. Basically Example 1 listener works if item is greater than 2048 and in Example 2 listener, items greater than 2048 do not work - but items less than do (even less than x=0)
-- Content in config.lua is set like.. { width = 1536, height = 2048, fps = 60, scale = kScale, imageSuffix = { ["@2"] = .5, ["@4"] = .2, } }, -- LISTENER EXAMPLE TYPE1 -- In another scene.lua.. -- eventListener for myButton works fine it is at .x = 2100 myButton = display.newImageRect( imgDir.. "myButton.png", 508, 184 ); myButton.x = 2100; myButton.y = 1296; myButton.alpha = 1; myButton.oldAlpha = 1 -- Button event listeners local function onkwkBtnNxtEvent(event) but\_nextSc(myButton) return true end myButton:addEventListener("tap", onkwkBtnNxtEvent ) -- Button functions function but\_nextSc(self) myButton:removeEventListener("tap", onkwkBtnNxtEvent ) NextScene() end -- LISTENER EXAMPLE TYPE2 -- For these listeners, only those items2-4 receive the touch eventListener -- Item1 which is at x = 2100 is outside of x=2048 and does not. objectList = { { name="item1", w=345, h=300, x=2100, y=288}, { name="item2", w=300, h=200, x=1281, y=1414}, { name="item3", w=322, h=184, x=454, y=1012}, { name="item4", w=330, h=170, x=429, y=130}, } propButton = function () for i = 1, #objectList do local button = display.newImageRect ( imgDir.. objectList[i].name..".png", objectList[i].w, objectList[i].h ) button.name = objectList[i].name button.x = objectList[i].x; button.y = objectList[i].y button.xScale = 0.1; button.yScale = 0.1 button.alpha = 0 gp\_items:insert (button) button:addEventListener( "touch", onTouch ) end function onTouch (event) local t = event.target local phase = event.phase if "began" == phase and multiFlag == true then multiFlag = false local parent = t.parent; parent:insert(t); display.getCurrentStage():setFocus( t, event.id ) t.isFocus = true -- Store initial position t.x0 = event.x - t.x t.y0 = event.y - t.y elseif t.isFocus then if "moved" == phase then t.x = event.x - t.x0 t.y = event.y - t.y0 -- do more stuff elseif "ended" == phase or "cancelled" == phase then display.getCurrentStage():setFocus( t, nil ) t.isFocus = false -- do more stuff end end end return true end -- end onTouch