Actionscriptを使用して検査時間タスクを実装したいと思います。アイデアは、ユーザーの応答に基づいて、マスクされた画像とマスクされていない画像の間の時間間隔を動的に変更することです。「検査時間」は、ユーザーが一定の精度を達成する間隔として定義されます。その間隔の精度に影響を与えるさまざまな要因があります:モニターのリフレッシュレート、フラッシュvmフレームレート、タイマーイベントの精度、レンダリング時間。他に何か?ユーザーに表示される実際のインバーバルを確認するにはどうすればよいですか?通常のパフォーマンスはそのタスクで20〜80ミリ秒であるため、高精度が必要です。制限要因はモニターのリフレッシュレートだと思います。60Hzの場合、16.7ミリ秒しかインクリメントできません。この制限を回避する方法はありますか?より高いフレームレートを使用した場合でも、プレーヤーはそれを60Hzに同期しますか?
1 に答える
Flash プレーヤーで達成できるフレームレートには上限があります。技術的には 60fps よりも高い値を設定できますが、ユーザーが最新バージョンの Flash Player をインストールしている場合、画面がこれより速く更新されるとは思えません。また、設定したフレームレートは実際には問題ではありません。これは、プレイヤーがそのレートでリフレッシュするために最善を尽くす必要があることを示唆しているためです...そして、可能であればそうします! ただし、プレーヤーが実際にそのフレームレートに追いつくことが不可能になる要因がいくつかあります。
複数のネストされた多数の異なるムービークリップを含む複雑なシーン。
マスクの使いすぎ
フィルタの繰り返し適用
ENTER_FRAME または TIMER イベント ハンドラ (またはそれらの多く) に実装された特に複雑または非効率的なコード
複雑なオブジェクト グラフ
オブジェクトの無駄なインスタンス化と破棄により、ガベージ コレクションが強制されます (これにより、非常に高いフレームレートで顕著な問題が発生します)。
また、最善の状況であっても、ENTER_FRAME または TIMER のいずれかが 100% 一貫していると、更新間のデルタ時間に真に依存することはできないことにも注意してください。
うまくいけば、これが役に立ちます。