在Corona SDK中正确地移除scrollView

在我的游戏中,我有一个在函数中声明的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

        --如果scrollView已达到其滚动限制         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             return true         end

        --创建一个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终端不断打印“移动”。

你知道我怎么能移除它吗?

点赞
用户2653067
用户2653067
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函数中删除滚动视图。

2015-07-02 05:23:33