Corona按钮无法将焦点传递给scrollView

我在使用scrollView时遇到了滚动问题,具体问题是事件无法正确处理。将焦点传递到scrollView的所有尝试都被证明是徒劳的。我发现在下面的代码中,它没有返回任何内容,即使在按钮不妨碍它滚动正确的情况下也是如此。

以下是场景使用的实际代码:

进入场景:

--创建背景 创建了一个背景= display.newImageRect(“ background.png”,320,580) 背景。x = 160 背景。y = 240

--创建scrollview local scrollView = widget.newScrollView { 顶部= 10, 左= 10, 宽度= 300, 高度= 500, 滚动宽度= 300, 滚动高度= 500, 禁用水平滚动= true, 监听器=滚动侦听器 }

本地按钮= {}

本地计数器= 0

对于我= 1,11 do button [i] = widget.newButton { 标签= “按钮”..i, 左=0, ID = button [i], 上= yCount, 宽度= 300, 高度= 100, defaultFile = “ menuButton.png”, onEvent = handleButtonEvent }

 yCount = yCount + 100 
 scrollView: insert(button [i])

结束

menu = display.newImageRect(“ menu2.png”,90,50) 菜单。x = 50 菜单。y =-15

function menu:touch(event) 如果event.phase ==“ began” then 显示。remove(menu) 显示。remove(taskBar) 显示。remove(background)

    taskBar = nil 
    背景=无 
    菜单=无 
    storyboard.gotoScene(“菜单”) 
结束 
返回真 

结束

menu:addEventListener(“ touch”,menu)


--按钮事件处理程序

local function handleButtonEvent(event)

local phase = event.phase 

如果(phase ==“ moved”) then 
    本地dy = math.abs((event.y-event.yStart)) 
    -如果按钮上的触摸移动超过10个像素, 
    -将焦点返回到scrollView,以便它可以继续滚动 
    如果(dy> 10)则 
        scrollView:takeFocus(event) 
    结束 
end 
返回真 

结束

点赞
用户825481
用户825481

尝试将 event.phase 传递到 scrollView 中,类似如下所示:

scrollView:takeFocus(event.phase)
2014-11-20 23:15:57
用户4276433
用户4276433

问题被通过从' handleButtonEvent '和'scrollListener'函数中移除' local ',以及从'scrollView'小部件中移除' local '而解决。

因此,在corona中,或者至少我正在制作的程序中,全局变量似乎必须比它们本应该更多地使用,除非有其他解决方案。

2014-11-21 17:35:13