onEnterFrame
先日更新した上部のFlashメニューですが、右のAmashと合わせて異常に重い!
メインPCのCore2Duoだとまったく気付かなかったんですが、初代MacBook(CoreDuo)上で見たら気付きました。
これはまずいなということで早速原因の特定と修正を行いました。
おそらく原因は2点。
1、
"HOME"や"Flash Counter"などのコンテンツへのリンクとなるMCですが、
実はステージ外に位置を移動させているだけで常にステージ上には存在していました。
各MCにはonEnterFrameでフィルタや移動などをやらせていたわけですが、必要のない(表示されていない)ものはremoveMovieClipでステージから消してしまい、必要なものだけattachMovieで配置してやることにしました。
最初はこれで軽くなったと思ったんですが、どうも効果は微妙。
2、
ステージ上に存在するMCのonEnterFrameが動きっぱなしでした。
いや、まさかこれでそれほど負荷がかかるとは思ってもいなかったので、ずっと動作させていたわけですが、delete this.onEnterFrameで止めて(消して)、MacBookで確認してみたら明らかに負荷が減ってる。
ということで、動く必要のないときはonEnterFrameを止め、必要なときはthis.onEnterFrame = 関数名;として再び設定してやることに。
これで負荷が激減しました。
他にも効果が微妙な修正を行いましたが、やっぱり非力なPCではフィルタはきつい。
あと、FirefoxのFlash Playerは重いということもわかった。
onEnterFrameは必要ないときは止めてしまいましょう!
