在函数中添加到sceneGroup?

时间:2017-04-18 19:09:10

标签: corona

这是我一次又一次遇到的问题。我无法理解它。这个代码现在在创建场景下我想把它放在一个函数中,想要通过循环自动生成这些块在不同的位置。我得到的错误是: newRect中的错误参数#1(预期数量) - 第1行。 sceneGroup是一个零值。

我尝试的解决方案是: 1)在脚本顶部定义sceneGroup。但后来我得到的错误是upvalue是零值。 2)之前定义它。 - 零值。

如果有人能向我解释这一点,我将非常感激。我一直遇到这样的问题。

local Backgroundrectangle = display.newRect(sceneGroup, 75, 75, display.contentWidth-150, display.contentHeight/2 )
Backgroundrectangle.isVisible = false
Backgroundrectangle.anchorX = 0
Backgroundrectangle.anchorY = 0

 aAbackground = display.newRoundedRect(sceneGroup, Backgroundrectangle.x, Backgroundrectangle.y, 100, 125, 10 )
sceneGroup:insert(aAbackground)
aAbackground.id = "a"
aAbackground.strokeWidth = 2
aAbackground:setFillColor( gradient )
aAbackground:setStrokeColor( 0.2 )
aAmenutext = display.newText( "Aa", 100, 200, "Comic Sans MS", 50)
aAmenutext.x = aAbackground.x
aAmenutext.y = aAbackground.y - aAbackground.height/6
aAmenutext:setFillColor( 0.2 )
sceneGroup:insert(aAmenutext)

1 个答案:

答案 0 :(得分:1)

" Upvalue为零"表示运行时期望sceneGroup是在函数范围之外定义的局部,但这不是在Corona中执行此操作的常用方法。

如果你有这个

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

在场景的Lua文件的顶部,只要您想将DisplayObject添加到场景的GroupObject(可能在您的scene:create()方法中),您就可以声明

local sceneGroup = scene.view

然后像往常一样使用sceneGroup。将定义scene(它具有文件范围),view属性为您提供场景的GroupObject。