Pex Textbook 1.1.0 documentation

再生スピードをコントロールする

«  アニメーション演出待ち   ::   Contents   ::   参考 実践的ソースコード  »

再生スピードをコントロールする

ここでは、 Pex の再生速度を制御する例をみていきます。

framerate の動的な変更

Pex 1.0.7 からは 再生framerate(fps) を動的に変更する事ができるようになりました。

コンテンツがアクティブではない間は低 framerate で再生し、必要時だけ高 framerate に移行させる、 というような対応を取る事ができます。 複数の Pex を同時に扱う際や、全体的に動作が重たいコンテンツを扱う際などの 負荷コントロールに役に立つのではないでしょうか。

var api = pex.getAPI();
api.getFPS();// 現在のfpsを得る
api.setFPS(15);// fps 15に変更

なお、api#engineStop (と api#engineStart )を用いる事で、一時的に Pex 自体の動作を一時停止する事もできます。 しかし、その場合は、アニメーションや ActionScript も完全に停止してしまうため、 framerate の変更の方が融通は利きそうです。

サンプル例

実際にframerateを変更しているサンプルは以下です。

_images/change_fps.png

動作サンプル: change_fps.html

flaファイル: change_fps.fla

強制的に描画更新する

Pex 1.0.7 からは、任意のタイミングで強制的な画面の再描画を Pex に行わせる事ができます。 この命令と MovieClip の位置を変更する命令やフレーム移動命令を組み合わせると 設定された framerate に依存しない動きをするコンテンツを制作する事ができます。

例えば、低 framerate コンテンツでもタップ反応を良くする用途などに使えるかと思います。

var api = pex.getAPI();
var xx = 10;
var yy = 10;
btn.onclick = function() {
   //ボタンを押すたびにmcがすぐさま右へ移動
   xx += 10;
   api.setPosition("mc", xx, yy)
   api.redraw();//フレームの移動を待たない
}

サンプル例

実際に強制描画更新を行うサンプルは以下です。

API#redraw を使うと、キャラクターの位置移動がスムーズに動き、 キャラクターの切り替えが1テンポ早い反応をする事が確認できると思います。

_images/redraw.jpg

動作サンプル: redraw.html

flaファイル: redraw.fla

«  アニメーション演出待ち   ::   Contents   ::   参考 実践的ソースコード  »