「Lwfクラス」の版間の差分
(→全てのトゥイーンクラスによる動作を停止する) |
(→フレームレートを変更する) |
||
18行: | 18行: | ||
==フレームレートを変更する== | ==フレームレートを変更する== | ||
フレームレート(FPS)を変更することができます。<br/> | フレームレート(FPS)を変更することができます。<br/> | ||
+ | 再生速度を変更したい時に使用してください。<br/> | ||
下記がサンプルになります。<br/> | 下記がサンプルになります。<br/> | ||
− | //フレームレート(FPS) | + | //フレームレート(FPS)を変更し倍速再生する(元が30fpsの場合) |
<lwfインスタンス>.setFrameRate(60); | <lwfインスタンス>.setFrameRate(60); | ||
setFrameRateの第1引数には設定したいフレームレートを設定します。<br/> | setFrameRateの第1引数には設定したいフレームレートを設定します。<br/> |
2013年10月10日 (木) 15:04時点における版
目次 |
Lwfクラスとは?
LWFクラスとはLWF全体を管理しているクラスになります。
LWF全体の設定変更や現在の設定を取得する際に利用します。
LWFインスタンスを取得するには下記のように行います
//LWFインスタンスを取得 var lef = <Movieインスタンス>.lwf;
Movieインスタンスはそれぞれ自分たちを管理しているLWFインスタンスを所持しているので
上記のようにMovieを経由して取得します。
フレームレートを取得する
現在のフレームレートを取得することができます。
下記がサンプルになります。
//フレームレートを取得 var frameRate = <lwfインスタンス>.frameRate;
なお、読み取り専用なので、ここの値を書き換えたからといってフレームレートを変更することはできません。
フレームレートを変更する場合はsetFrameRate()を使用します。
フレームレートを変更する
フレームレート(FPS)を変更することができます。
再生速度を変更したい時に使用してください。
下記がサンプルになります。
//フレームレート(FPS)を変更し倍速再生する(元が30fpsの場合) <lwfインスタンス>.setFrameRate(60);
setFrameRateの第1引数には設定したいフレームレートを設定します。
フレームスキップ機能を使う
LWFではデフォルトではフレームスキップがONになっており、処理が重い箇所では
描画のスキップを行うことで再生速度が遅くなることを防いでいますが
見せたい箇所もスキップされてしまう可能性があります。そういう時のために
フレームスキップ機能をOFFにすることもできます。
下記はサンプルになります
//フレームスキップをOFFにする <lwfインスタンス>.setFrameSkip(false);
ステージサイズを取得する
現在のステージサイズを取得することができます。
LWFはFlashで設定したステージサイズとは別のサイズで再生することができるます。
端末の画面比率にあわせてステージサイズを変更するといったことも可能です。
その際の判別用にステージサイズを取得します。
下記がサンプルになります。
//ステージサイズを取得 var size = <lwfインスタンス>.getStageSize(); //ステージサイズをログ出力 console.log(size.width, size.height);
rootに該当するMovieを取得する
lwf全体のrootに該当するMovieインスタンスを取得することができます。
下記がサンプルになります。
//rootのMovieインスタンスを取得 var rootMovie = <lwfインスタンス>.rootMovie;
また、_rootでもrootのMovieを取得することができます。
下記がサンプルになります。
//rootのMovieインスタンスを取得 var rootMovie = _root;
ステージオブジェクトを取得する
lwf全体のベースとなるHTML要素を取得することができます。
下記がサンプルになります
//lwfのステージとなっているHTML要素を取得 <lwfインスタンス>.stage;
※LWF側からステージを無闇に操作すると不具合の原因にもなるので
極力、LWFの外に影響するような処理はLWF内では行わないようにしてください。
特定のラベル名のフレーム番号を取得する
Movieインスタンスに設定されているラベルのフレーム番号を取得することができます。
下記はサンプルになります。
//ラベルが設定されているフレームを取得 var frame = <lwfインスタンス>.searchFrame(movie, "label");
searchFrameの第1引数は、調査対象となるMovieインスタンス。
第2引数は、調べたいラベル名を設定します。
もし、見つからなかった場合は-1が返ってきます。
特定の場所までスキップする
タイムラインではgotoAndPlay()等で木亭のフレームまでスキップする。
といったことが可能ですが、間にスクリプト処理などが含まれている場合は使えません。
そんな場合のために、スクリプト処理を行いつつスキップをするといった機能があります。
下記がサンプルになります。
//スキップをONに <lwfインスタンス>.setFastForward(true); //処理を解放する間隔を設定 <lwfインスタンス>.setFastForwardTimeout(100); ..... //スキップをOFFに <lwfインスタンス>.setFastForward(false);
スキップをONにしている間は、描画処理を行わずスキップ機能がOFFになるまで内部の処理のみを回し続けることでスキップ機能を実現しています。
なので、もしスキップがOFFにする処理が入っていないと、そのまま固まってしまうので注意しましょう。
また、スキップするフレーム数や、その間のスクリプトの処理の重さによりスキップ処理にかかる時間が変動します。
なので、この機能を使用する際は下記の条件に当てはまるときのみ使用することをオススメします。
- スキップするフレームが短い。
- スキップする間にスクリプトが使用されている。
setFastForwardTimeout()は、長時間ループ状態になっているとブラウザが停止してしまうため
一定間隔ごとにループを抜ける時間をミリ秒単位で設定することができます。
全てのトゥイーンクラスによる動作を停止する
Tweenクラスで設定されているアニメーションを全て停止させることができます。
下記がサンプルになります。
//全てのTweenによる処理を停止 <lwfインスタンス>.stopTweens();