繁体   English   中英

在Corona SDK中正确删除scrollView

[英]Properly remove a scrollView in Corona SDK

在我的游戏中,我在一个函数中声明了一个scrollview小部件,我想使用另一个函数删除该scrollview,如下所示:

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仍然存在,因为电晕终端一直在打印“移动”。

你知道我怎么删除它吗?

local scrollView ------------EDITED

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
    ---EDITED---------------------
   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

这样您就可以在removeScrollView函数中删除滚动视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM