【问题标题】:Corona SDK widget.newButton() not appearing in simulator when inside scene:createCorona SDK widget.newButton() 在场景中没有出现在模拟器中:创建
【发布时间】:2014-09-03 11:34:04
【问题描述】:

我有以下代码:

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

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

【问题讨论】:

  • 我们需要更多代码 - 向我们展示您是如何过渡到场景中的,您是否在新场景中添加了小部件?
  • 这是在我的 main.lua 文件中。也许这就是问题所在?
  • 是的,这就是问题所在。
  • 好的。在下面添加了答案。谢谢。

标签: lua coronasdk


【解决方案1】:

你有两个选择:

  1. 将您的场景移动到一个yourScene.lua 文件(根据您的意愿命名),您可以在其中调用storyboard.newScene()(无参数)并在您的main.lua 中使用storyboard.goto('yourScene')
  2. 您可以通过storyboard.newScene('yourScene')main.lua 中创建场景,并通过storyboard.goto('yourScene') 从main.lua 中转到它

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

我建议您将场景放在单独的模块中,这样可以更好地模块化。猜想:可能方法二是原来的方法,方法一是后来开发者发现场景变大需要移动到单独的模块时才加入的。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-12
      • 1970-01-01
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多