2014-09-03 52 views
2

我有以下代码:科罗娜SDK widget.newButton()没有出现在模拟器里面的时候的场景:创建

function scene:create(event) 

    local sceneGroup = self.view 

    -- Initialize the scene here. 
    -- Example: add display objects to "sceneGroup", add touch listeners, etc. 

    local options1 = { 
    x = display.contentWidth/2, 
    y = 200, 
    onRelease = button, 
    lableAlign = "center", 
    emboss = true, 
    id = "1", 
    label = "Button1" 
    } 

    local options2 = { 
    y = 300, 
    x = display.contentWidth/2, 
    onRelease = button, 
    lableAlign = "center", 
    emboss = true, 
    id = "2", 
    label = "Button2" 
    } 

    local button1 = widget.newButton(options1) 
    local button2 = widget.newButton(options2) 
    sceneGroup:insert(button1) 
    sceneGroup:insert(button2) 
end 

当我把这个代码放在一个独立的文件(而不是场景)的按钮显示如所假设的。但是现在我将这个独立文件变成了一个场景,由于某种原因,上面的代码在模拟器中没有任何结果。有任何想法吗?

+0

我们将需要更多代码 - 向我们展示如何转换到场景中,并且您是否在新场景中包含小部件? – 2014-09-03 11:47:18

+0

这是我的main.lua文件。也许这是问题? – user1790813 2014-09-03 11:55:27

+0

是的,这是问题所在。 – 2014-09-03 11:56:59

回答

3

你有两个选择:(按照您的意愿命名)

  1. 移动场景中的一个yourScene.lua文件,在其中你调用storyboard.newScene()(无参数),并在您main.lua您使用storyboard.goto('yourScene')
  2. 您可以创建通过storyboard.newScene('yourScene')main.lua现场,并通过storyboard.goto('yourScene')

从main.lua内后藤它基本上你的场景可以在一个单独的模块,共rona会根据模块名称自动命名,main.lua会自动命名,或者您的场景可以位于同一个模块中,但是您必须自己给它一个名称,并且main.lua可以“转到”它(在同一个模块中)。你甚至可以在同一模块中有多个场景。

我建议你在单独的模块中有你的场景,它只是为了更好的模块化。猜想:也许方法2是原始方法,当开发人员发现他们的场景变大并需要将它们移动到单独的模块时,方法1被添加。

2

上面贴出的代码在main.lua文件中。因此,这个场景永远不会被调用。解决方法是将上面的文件重命名为menu.lua,然后从main.lua调用此场景。