via:gotoAndLern(), SWF Framerate Optimization – Learn to how dynamically change your movie’s framerate to use only the resources it needs.
いっつもお世話になっているgotoAndLern()のTutorial Video。
今回もかなり役に立ちそうです。
フレームレートを最適化することで無駄にCPUリソースを消費しないようにしよう、って趣旨のTutorialだと理解しました。
アニメーション(Tween)させる時は Framerate を30に設定し、何もアニメーションさせてないなら5にしとこうね、ということらしい。
何もアニメーションさせてない、の中にはFLVを単に再生させている、も含まれてました。
ビデオはビデオのレートで再生されるのでFlashのフレームレートには影響されないのでしょう。
単にフレームレートを低くすれば良いわけでもなさそうです。
フレームレートを1にするとビデオの再生がスムーズにならないようです。
Tutorialで5に設定しているのは意味があるようです。
今回のTutorialビデオで、フレーレートをActionScriptで設定できるのがまず発見です。
思い込みもあるのですが、フレームレートは変えられないと決めつけてました。
stage.frameRate = 30; |
とすることでフレームレートは設定可能です。
ヘルプによれば Flash Player 9 かららしいので、CS3だと設定できるようになってたんだ。
知らないと色々損をする。
また、マウスがステージ外に出たらフレームレートを落とし、戻ってきたらフレームレートをもとに戻す、のイベントの使い方が参考になりました。
stage.addEventListener(Event.MOUSE_LEAVE, mouseLeaveHandler); function mouseLeaveHandler (e:Event):void { stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseBackHandler); } function mouseBackHandler (e:MouseEvent):void { stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseBackHandler); } |
なるほど MouseEvent.MOUSE_MOVE
が発生するってことはマウスはステージに戻ってきてるってわけなんですね。