ボタンを使用すると、アプリケーションが遅くなることはありません。だから間違ったことがある。
- A)そのあなたのコード
- B)その彼らのコード(トゥイーン)
だから何が起こる可能性があり:
- Time 0 sec - Button click - 1. tween starts, duration 3 sec.
- Time .1 sec - Button click - 2. tween starts, duration 3 sec.
- Time .2 sec - Button click - 3. tween starts, duration 3 sec.
我々は0.1の間隔で新しいトゥイーンを開始秒である。 3セク後。私たちは同時に30のトゥイーンを走らせます。
この時点で、最初のトゥイーンは終了し、表示オブジェクト(フレーム入力)またはタイマーによって送出されたイベントから登録解除されます。明らかにそうではなく、あなたのアプリケーションはトゥイーンでトゥイーンを追加しますが、どちらも終了していません。
トゥイーンがcurrentposx
とvarx
の間の距離をチェックし、両方が等しい場合にのみトゥイーンが停止する可能性があります。現在のところトゥイーンが並んでいるため、このような状況は起こり得ず、トゥイーンはディスプレイオブジェクトを何度も何度も移動しようとし続けます。
実行中のコードが完全に表示される場合は、これをプロファイラでテストできます。
:とにかく
、あなたがそのような_currentTween
として永続的な変数に現在のトゥイーンを保存し、新しいものを開始する前にトゥイーンを殺すか、もう一度ボタンをクリックすると、単純に現在のトゥイーンの値を更新すべきです -
private var _currentTween : Tween;
private function buttonClickedVersionA() : void {
if (_currentTween) _currentTween.stop(); // or whatever it is called
_currentTween = new Tween(...);
}
private function buttonClickedVersionB() : void {
if (!_currentTween) {
_currentTween = new Tween(...);
} else {
_currentTween.start = currentposx;
_currentTween.end = varx;
_currentTween.restart(); // or whatever
}
}
トゥイーンの持続時間は3ですか? 3秒? –
通常、このような場合には注意が必要なトゥイーンライブラリを使用することをお勧めします。 –