HTML5テクニカルノート EaselJS 0.8.0: フレームレートを扱う
説明アニメーションの進行する速さは、1秒当たりに進めるフレーム数となるフレームレート(FPS)またはフレームを進めるミリ秒間隔で表されます。Ticker.tickイベントがおおもととなって、Stageオブジェクトを頂点とする表示リスト内のインスタンスやイベントリスナーに送られます。値は目標値で、処理の負荷などにより間隔にはばらつきが生じます。 Ticker.framerateプロパティは、Tickerクラスが配信するTicker.tickイベントのフレームレート(FPS)を示します。内部的にはTicker.intervalプロパティでTicker.tickイベントの間隔が定められており、FPS = 1000 / Ticker.intervalで換算されます。Ticker.timingModeプロパティに定数Ticker.RAFを与えると、プロパティTicker.framerateとTicker.intervalの定めは無効になります。 MovieClip.framerateプロパティがデフォルト値nullのとき、インスタンスはDisplayObject.tickイベント(定数"tick")ごとに1フレーム進みます。プロパティに値を定めると、そのフレームレートにもとづく時間が過ぎたときにフレームを進めます[*2]。 フレームを進める仕組みは、Stage.update()メソッドに渡されるtickイベントオブジェクト(または適切なdeltaプロパティを備えたオブジェクト)にもとづきます。tickイベントの間隔にはばらつきがありますので、MovieClip.framerateプロパティで定められるフレームレートも厳密な値にはなりません。 なお、プロパティTicker.framerateとTicker.intervalが備わったことにもとづき、つぎの4つのメソッドは使うことが推奨されなくなりました。替わりに、ふたつのプロパティを用います。
例Stageオブジェクトの子に加えたMovieClipインスタンスを変数(my_mc)に納め、つぎのようなJavaScriptコードを書くと、Ticker.tickイベントは40FPS(25ミリ秒間隔)で送られつつ、MovieClipインスタンスのフレームは10FPS(100ミリ秒間隔)で進みます。
作成者: 野中文雄 Copyright © 2001-2015 Fumio Nonaka. All rights reserved. |
||||||||||||||||||||||||