0

コードの問題を理解するのを手伝ってください。関数を定義しています

local function goOnLesson()
   if date.hour==1  then
   index=1
   local subj=schToday[index]
   local text = display.newRetinaText("А сейчас у тебя: "..subj, 0, 0, native.systemFont, 70)
   text:setTextColor(128,64,0)
   text:setReferencePoint(display.CenterReferencePoint)
   localGroup:insert(text)
   end
end

そして、私がそれを実行しているとき、すべてが大丈夫です。

コードを再編成しましたが、ブロックする必要はありません

local function goOnLesson()
   index=1
   local subj=schToday[index]
   local text = display.newRetinaText("А сейчас у тебя: "..subj, 0, 0, native.systemFont, 70)
   text:setTextColor(128,64,0)
   text:setReferencePoint(display.CenterReferencePoint)
   localGroup:insert(text)
end

if-endブロックを削除しましたが、機能しなくなりました。助けてください :)

4

1 に答える 1

1

このエラーは、Coronaイベントの実行中に実行時エラーが発生した場合の一般的なメッセージのように見えます。同じ問題への参照がいくつか見つかりました(たとえば、ここ)。

schTodayに要素がなく、subj変数がnil値を取得し、文字列の連結に失敗する可能性があります。元のコードは、そのセクションに入らないため、おそらく「機能」します(day.hour == 1ほとんどの場合、条件は「false」を返します)。

コードを再確認して、期待どおりに機能することを確認することをお勧めします。

もう1つ試してみるのは、index変数をローカライズすることです。プログラムの他の部分で何かを壊すような値を割り当てることができます。

于 2012-09-03T23:12:38.370 に答える