-1

こんにちは、ゲームでアニメーションを使用しようとしていますが、何らかの理由でエラーが発生します。アニメーションに使用したコードは次のとおりです

local function animate( event )
    gear.rotation = gear.rotation + 10
end
Runtime:addEventListener("enterFrame", animate);

これは、ディレクタークラスなしで使用すると機能します ディレクタークラスはシーンごとに変更されます

クラスを離れようとすると、または他のクラスに移動するとエラーメッセージが表示されますが、クラスを離れようとするまで回転します

エラー = フィールド 'rotation' (nil 値) で演算を実行しようとしました

事前に感謝します!

4

4 に答える 4

1

これを試して:

gear.rotation = 0

local function animate( event )
    gear.rotation = gear.rotation + 10
end

Runtime:addEventListener("enterFrame", animate);
于 2013-05-09T21:04:50.347 に答える
0

これを試して:

local gear.rotation = 0

local function animate( event )
    gear.rotation = gear.rotation + 10
end

Runtime:addEventListener("enterFrame", animate);

ページを離れるときは、次のように呼び出します。

Runtime:removeEventListener("enterFrame", animate);
director:changeScene("yourScene")

それでも問題が解決しない場合は、次のコードを試してください。

 local bg = display.newRect(0,0,display.contentWidth,display.contentHeight) -- or simply create a background

 -- create gear
 local gear.rotation = 0

local function animate( event )
    gear.rotation = gear.rotation + 10
end

bg:addEventListener("enterFrame", animate);

ページを離れるときは、次のように呼び出します。

bg:removeEventListener("enterFrame", animate);
director:changeScene("yourScene")

コーディングを続けてください..... :)

于 2013-05-10T04:02:37.247 に答える
0

私の問題の解決策を見つけました。ローカル関数を単に機能するように変更したところ、機能しました。

 function animate( event )
     gate_a.rotation = gate_a.rotation + 2
 end
 Runtime:addEventListener("enterFrame", animate);

そして私がその場を離れるとき

 Runtime:removeEventListener("enterFrame", animate);
于 2013-05-10T13:27:54.770 に答える