在Corona SDK中,可以将场景用于部分覆盖另一个视图的视图

时间:2013-10-15 07:33:33

标签: corona

我有一个设置视图,我想在我的主游戏视图上滑动,但只是部分,所以主视图仍然可以在设置视图后面看到(有点像模态对话框) 主游戏视图会稍微变暗(或模糊),因此很明显它不再活跃了。

是否可以使用场景来实现此效果?我更愿意将“设置”视图的代码与主视图的代码分开。如果不是场景,那么我可以看看任何其他建议或例子。

2 个答案:

答案 0 :(得分:2)

我设法使用源视图中按钮的tap事件处理程序中的以下代码来使其工作:

local options =
{
    effect = "zoomOutIn",
    time = 200,
    isModal = true,
}
storyboard.showOverlay( "scenes.settings", options )

使用isModal = true可防止叠加视图上的任何点击向下传播到仍显示在叠加视图下方的原始视图。这是一个解释如何创建叠加视图的教程: http://www.coronalabs.com/blog/2012/04/27/scene-overlays-and-parameter-passing/

答案 1 :(得分:0)

是的,这是可能的。我会给你一个样本:

- main.lua -

local storyboard = require "storyboard"
storyboard.gotoScene( "scene1", "fade", 400 )

- settings.lua -

local function myObject(group,x,y,imagePath)

  local image = display.newImage( imagePath )
  image.x, image.y = x, y
  group:insert( image )

  -- add motion (if needed) --
  transition.to(image, {time=1000, x=display.contentWidth/2, y=0, transition=easing.inOutQuad})

  -- add Listener --
  image:addEventListener("touch", function() print("imageClicked") end )
end

local status = { myObject = myObject }

return status

- Gamemenu.lua - (这是你的游戏场景)

local storyboard = require( "storyboard" )
local scene = storyboard.newScene()

function scene:createScene( event )
  -- create a display group --
  local screenGroup = self.view

  settings.myObject(screenGroup, display.contentWidth/2, -(display.contentHeight/2), "bg.jpg")
  screenGroup:insert( bg )

  -- require object page --
  local settings = require "settings"

  -- call object --
  settings.myObject(screenGroup, 200, 100, "Icon.png")

end
scene:addEventListener( "createScene", scene )

return scene

保持编码............:)