1.フレームレートを変更する
フレームレートを変更するといってもはじめに設定したFlashのフレームレートを変更することはできません。
setInterval 関数を使ってFlash上で別のフレームレートのムービークリップを混在させます。
2.setInterval関数とは?
setInterval 関数を使うとFlashで設定したフレームレートのタイミングではなく、自分で指定した秒間で関数を実行することができます。
setInterval(関数名, 数値);
第一引数は関数名または匿名関数の参照。
第二引数は呼び出される関数の時間隔 (ミリ秒)。
この関数を使って、ムービークリップを座標上で動かしてみます。
3.ユーザー関数を作る
ムービークリップ meme をx方向に動かす関数 MyFunc を作ります。
function MyFunc(){
// ムービークリップをx方向に移動
_root.meme._x += 1;
}
|
4.setInterval関数で時間隔を設定
関数 MyFunc が実行されるタイミングをsetInterval関数で設定します。
setInterval(MyFunc , 100);
|
これで、Flashのフレームレートとは関係なく指定した時間隔でムービークリップが動き出します。
だだしFlashのフレームレートより指定した時間隔の方が早い場合は、画面が更新されないため、updateAfterEvent関数を呼び出して画面を更新します。
// 画面を更新
updateAfterEvent();
}
|
次にムービークリップを再生してみます。
5.設定した時間隔で再生する
ムービークリップを自分で設定した時間隔で再生するには、ユーザー関数内で再生ヘッドをひとつ動かしてから画面を更新します。
function MyFunc(){
// 再生ヘッドをひとつ進める
_root.meme.gotoAndStop(_root.meme._currentframe + 1);
// 画面を更新する
updateAfterEvent();
}
setInterval(MyFunc , 100);
|
6.設定した時間隔呼び出しを解除する
clearInterval( );
設定した時間隔呼び出しを解除するには、clearInterval関数を使います。
setInterval関数を実行したときに戻り値として、ID番号が返ってきます。それを、変数に退避させておきます。
解除したいときに、clearInterval関数に引数として指定します。
function MyFunc(){
}
// 番号を保存
var intervalID = setInterval(MyFunc , 100);
|
// 解除
clearInterval( intervalID );
|
7.Interval関数の注意点
Flashのフレームレートが小さすぎると指定した時間隔を正確に呼び出すことができません。
Flashの1フレームレートは 約 1 秒 = 1000 ミリ秒 です。
Flashのフレームレートの上限は 120FPS ですがInterval関数を使うと、この制限を越えることができます。数値だけなら 1000FPS くらい出るようです。
|