2011-02-07 11 views
0


私はsetIntervalで時間間隔を使用するフラッシュゲームを作成しており、重い計算を行うこともあります。問題は、遅いマシンでは、これらの計算ではフレームレートに追いつかず、ムービーは遅くなりますが、タイマーはムービーに対して非同期になるため影響を受けません。振り返ってみると、タイマーを使用するのは悪い考えでしたが、今は戻すことはできません。だから...
描画フレームをスキップする方法はありますか?一部の地域ではゲームのフレームレートが遅くなっても、タイマーに追いついても問題ありません。それとも私の問題を解決するための他のアイデアはありますか?私はAS2 btwを使用しています。描画フレームをスキップする方法はありますか?

答えて

0

溶液をのいずれか使用時間ベースの測定、またはフレームベースの措置で、ミックス・アンド・マッチしない2。

あなたのすべてのフレームイベントでは、getTime()を使用して、前のフレームからの経過時間を判断し、そのイベントでどれくらい実行する必要があるかを判断することをお勧めします。

+0

しかし、それはとにかくフレームを描画するためにフラッシュを防ぐことはできません。間隔に2つの連続したフレームが必要な時間を追加することを考えましたが、残念ながら 'updateInterval'関数はありません。 –

+0

@Alex:これはフレームレートを変更することではありません。それはあなたの実際の問題を解決することです*。 –

+0

ああ、私はそれを試してみるかもしれない。 –

0

どのように2つの領域に、あなたの更新プログラムを分割について:アップデートを(あなただけがレンダリングのために、後に使用する値とドロー() /レンダリング()すべてのあなたのグラフィックスを持っているでしょう関連のコードを更新してしまう)

必要なときにレンダリングするためにonEnterFrameで使用するフレームスキップ変数があります。

onEnterFrame = function(){ 
    update(); 
    if(_currentframe % frameSkip == 0) draw(); 
} 

HTH

関連する問題