2017-04-18 4 views
0

これは私が時間と時間に対して再び浮かび上がる問題です。私はちょうどそれの周りに私の頭を得ることができません。このコードは作成シーンの下にあったので、これらのブロックをループによって自動的に別々の場所に生成するという考え方で関数に入れたいと思っています。私が得るエラーは次のとおりです。 newRect(number expected)の1番目の行に不正な引数#1があります。 sceneGroupはゼロ値です。関数内のsceneGroupに追加しますか?

私が試した解決策は次のとおりです。 1)スクリプトの先頭にsceneGroupを定義します。しかし、その後、私はupvalueが無価値であるというエラーを得る。 2)直前に定義する。 - nil値。

誰かが私にこれを説明できるなら、私は非常に感謝します。私はこのような問題を続けています。

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

[Composer APIの紹介](https://coronalabs.com/blog/2014/01/21/introducing-the-composer-api-plus-tutorial/)と[チュートリアル:Composer APIの理解](https ://coronalabs.com/blog/2014/06/03/tutorial-understanding-the-composer-api/)は、作曲家とシーングループの使用に関する有益な情報源です。私はそれを読むことをお勧めします:) – ldurniat

答えて

1

「上位値がnilであると、」ランタイムがsceneGroupは、関数のスコープ外で定義されたローカルであると想定していますが、これはコロナでこれを行うための通常の方法ではないことを意味します。

あなたがシーンのためのあなたのLuaファイルの先頭にこの

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

を持っている場合は、シーンのGroupObject(おそらくあなたscene:create()方法で)にDisplayObjectを追加したい時はいつでも、あなたは

を宣言することができます
local sceneGroup = scene.view 

と入力してからsceneGroupを使用してください。 sceneが定義され(ファイルスコープを持ちます)、viewプロパティはシーンのGroupObjectを与えます。

関連する問題