【发布时间】:2015-09-19 05:52:14
【问题描述】:
在我的游戏中,我在一个函数中声明了一个滚动视图小部件,我想使用另一个函数删除该滚动视图,如下所示:
local function createScrollView(event)
if(event.phase=="ended")then
local function scrollListener( event )
local phase = event.phase
local direction = event.direction
if "began" == phase then
--print( "Began" )
elseif "moved" == phase then
print( "Moved" )
elseif "ended" == phase then
--print( "Ended" )
end
-- If the scrollView has reached it's scroll limit
if event.limitReached then
if "up" == direction then
print( "Reached Top Limit" )
elseif "down" == direction then
print( "Reached Bottom Limit" )
elseif "left" == direction then
print( "Reached Left Limit" )
elseif "right" == direction then
print( "Reached Right Limit" )
end
end
return true
end
-- Create a ScrollView
local scrollView = widget.newScrollView
{
left = display.contentWidth/2-130,
top = display.contentHeight/2-165,
width = 440,
height = 300,
bottomPadding = 10,
id = "onBottom",
backgroundColor = { 0, 0, 0, 0 },
horizontalScrollDisabled = true,
verticalScrollDisabled = false,
listener = scrollListener,
}
end
end
local function removeScrollView(event)
if(event.phase==ended)then
if scrollView then
scrollView:removeSelf()
scrollView = nil
end
end
end
它没有返回任何错误,但我可以看到 scrollView 仍然存在,因为 Corona 终端一直在“移动”打印。
你知道我怎样才能删除它吗?
【问题讨论】:
-
快速解决方法是从
local scrollView = widget.newScrollView中删除local,使其成为全局并可从removeScrollView访问。我怀疑使用电晕的事件系统有更好的方法。 -
请不要简单地删除本地并使其成为全局。你正在为未来的问题做好准备。请花时间了解范围。