2017-04-18 94 views
0

這是我一次又一次遇到的問題。我無法把頭轉過來。這段代碼是在創建場景下創建的,現在我想把它放在一個函數中,並且通過循環自動在不同位置生成這些塊。我得到的錯誤是: newRect中錯誤的參數#1(預期的數字) - 第一行。 sceneGroup是一個零值。將函數添加到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

[介紹作曲API](https://coronalabs.com/blog/2014/01/21/introducing-the-composer-api-plus-tutorial/)和[教程:瞭解作曲API](HTTPS ://coronalabs.com/blog/2014/06/03/tutorial-understanding-the-composer-api/)是有關使用作曲家和場景組的有用信息的來源。我建議你閱讀它:) – ldurniat

回答

1

「的upvalue爲零」指的是運行時預計sceneGroup是功能的範圍之外定義的本地,但是這不是在電暈這樣做的通常的方法。

如果你有這樣的

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

在該場景你的Lua文件的頂部,只要你想一個顯示對象(可能在你的scene:create()法)添加到場景中的GroupObject,你可以聲明

local sceneGroup = scene.view 

,然後使用sceneGroup因爲你一直。 scene將其定義(它具有文件作用域)和view屬性爲您提供了場景的GroupObject。