Hello,
I’m trying to work with the scrollView again and cannot get any touch event listener to work. All I am doing is creating a scrollView and placing an image in it. That scrolls fine. But as soon as I assign the touch event listener to the image I added to the scrollView it no longer scrolls. Below is my code for the scene.
Thanks!
When these lines are removed it scrolls okay:
imgHome.touch = onSceneTouch
imgHome:addEventListener( "touch", imgHome )
Full scene code:
----------------------------------------------------------------------------------
--
-- sceneSelectMenu.lua
--
----------------------------------------------------------------------------------
local storyboard = require( "storyboard" )
storyboard.removeAll()
local scene = storyboard.newScene()
local widget = require "widget"
local imgHome
local scrollView = widget.newScrollView{
width = 320,
height = 480,
top = 0,
left = 0,
scrollWidth = 320,
scrollHeight = 705,
maskFile="maskSelectMenu.png",
listener = scrollViewListener,
}
-- Touch event listener for background image
local function onSceneTouch( self, event )
if event.phase == "began" and imgHome.ready then -- [!] Using a flag instead
--MENU BAR
if event.x \> 0 and event.y \> 90 and event.x \< 48 and event.y \< 121 then
storyboard.gotoScene( "SceneHome" )
end
end
return true
end
-- function to listen to scrollView events
local function scrollViewListener( event )
local s = event.target -- reference to scrollView object
if event.type == "beganScroll" then
print( "beganScroll event type" )
elseif event.type == "endedScroll" then
print( "endedScroll event type" )
elseif event.type == "movingToTopLimit" then
print( "movingToTopLimit event type" )
elseif event.type == "movingToBottomLimit" then
print( "movingToBottomLimit event type" )
elseif event.type == "movingToLeftLimit" then
print( "movingToLeftLimit event type" )
elseif event.type == "movingToRightLimit" then
print( "movingToRightLimit event type" )
end
end
---------------------------------------------------------------------------------
-- BEGINNING OF YOUR IMPLEMENTATION
---------------------------------------------------------------------------------
-- Called when the scene's view does not exist:
function scene:createScene( event )
local group = self.view
local screenGroup = self.view
imgHome = display.newImage( "background.png" )
imgHome.touch = onSceneTouch
imgHome:addEventListener( "touch", imgHome )
scrollView:insert( imgHome )
end
-- Called immediately after scene has moved onscreen:
function scene:enterScene( event )
local group = self.view
imgHome.ready = true
--[[[!] Disabled since the listener is added above.
-- Update Lua memory text display
local showMem = function()
imgHome:addEventListener( "touch", imgHome )
end
local memTimer = timer.performWithDelay( 1000, showMem, 1 )
--]]
end
-- Called when scene is about to move offscreen:
function scene:exitScene( event )
local group = self.view
imgHome.ready = false
end
-- Called prior to the removal of scene's "view" (display group)
function scene:destroyScene( event )
local group = self.view
end
---------------------------------------------------------------------------------
-- END OF YOUR IMPLEMENTATION
---------------------------------------------------------------------------------
-- "createScene" event is dispatched if scene's view does not exist
scene:addEventListener( "createScene", 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 )
-- "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 )
---------------------------------------------------------------------------------
return scene
[import]uid: 184193 topic_id: 35736 reply_id: 335736[/import]
