这是我一次又一次遇到的问题。我无法理解它。这个代码现在在创建场景下我想把它放在一个函数中,想要通过循环自动生成这些块在不同的位置。我得到的错误是: 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)
答案 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。