composer.hideOverlay()

类型 函数
composer.*
返回值
修订 版本 2024.3703
关键词 composer, 场景, 叠加层, hideOverlay
另请参阅 composer.showOverlay()

概述

此函数用于隐藏/移除当前的叠加场景(参见 composer.showOverlay()),如果当前正在显示叠加场景的话。

当一个叠加层被隐藏时,一个特定于叠加层的场景 `event` 参数,event.parent,将会被派发到该叠加场景。此参数为您提供对父场景对象的引用,以便您可以在其中调用函数/方法。有关使用案例,请参阅示例部分。

语法

composer.hideOverlay( [recycleOnly] [, effect] [, time] )
recycleOnly (可选)

布尔值 如果设置为 `true`,则该场景将仅被回收(`self.view` 显示组将被移除,但场景对象将保留在内存中)。如果您打算在不久的将来再次显示叠加层,则将此设置为 `true` 很有用。默认值为 `false`,这意味着叠加场景将被完全移除,包括其场景对象。

effect (可选)

字符串 应用于叠加层在其隐藏之前的视觉过渡效果。可以在 composer.gotoScene() 文档中查看过渡效果列表。

time (可选)

数字 如果已指定有效效果,则为效果的持续时间。默认值为 `500` 毫秒。

示例

-- ----------------------------------------------------------------------------
-- In "scene1.lua" (parent scene)
-- ----------------------------------------------------------------------------
local composer = require( "composer" )

local scene = composer.newScene()

-- Custom function for resuming the game (from pause state)
function scene:resumeGame()
    --code to resume game
end

-- Options table for the overlay scene "pause.lua"
local options = {
    isModal = true,
    effect = "fade",
    time = 400,
    params = {
        sampleVar = "my sample variable"
    }
}

-- By some method (a pause button, for example), show the overlay
composer.showOverlay( "pause", options )

return scene

-- ----------------------------------------------------------------------------
-- In "pause.lua"
-- ----------------------------------------------------------------------------
local composer = require( "composer" )

local scene = composer.newScene()

function scene:hide( event )
    local sceneGroup = self.view
    local phase = event.phase
    local parent = event.parent  --reference to the parent scene object
        
    if ( phase == "will" ) then
        -- Call the "resumeGame()" function in the parent scene
        parent:resumeGame()
    end
end

-- By some method (a "resume" button, for example), hide the overlay
composer.hideOverlay( "fade", 400 )

scene:addEventListener( "hide", scene )
return scene