IEのFlash Playerが遅い件と、wmodeとの悩ましい関係

Flashの変な仕様シリーズ第2弾。
「WindowsIEのFlash Playerの再生速度が遅いのは、wmodeを設定すると回避できるけど」という有名なやつを取り上げます。

このことについてはいろんなブログやらなんやらで解説されていますが、以下の記事がわかりやすくまとめられています。

3ping.org - FLASHのFPSを正常に

↑の記事が書かれたのは4年前。その間にIEは6から7になり、FlashもCS3までバージョンアップしましたが、この仕様は未だに直っていません。
 
CS3で作ってみた参考Flash(フレームレート50で作成)

wmode設定なし wmode設定あり

 
「wmode」はFlashの背景を透過させるかどうか設定するパラメータです。値は「opaque(不透明表示)」と「transparent(透明表示)」の二つがありますが、どっちを設定しても、WindowsIEの再生スピードを正常にすることができます。なぜなのかは全くわかりません。回避できる以上、プレイヤーの処理スピードが追いつかないで起こっている現象じゃないと思うので直せそうなのになぜ直さないんでしょうか。

でもまあwmodeを設定すれば回避できるんだから解決解決、めでたしめでたし。
というわけにいかないのがFlashの悩ましいところです。wmodeにはこれまたたくさんのバグというか変な仕様があるのです。
 

[wmodeのバグについての参考ページ]
不健康ノート - wmodeは鬼門
graffiti-blog - wmodeのクセ
 
wmodeを使うことで起こる、以下の二つのバグは深刻です
・日本語入力がうまくいかなくなる
・キー入力、マウスホイール操作がうまくいかなくなる
 
キー入力がうまくいかなくなる参考Flash

wmode設定なし wmode設定あり

 
上の二つのFlashは十字キーでMCを移動させるFlashです。左のwmodeを設定していないFlashは普通に動作します。右のFlashは左のFlashと全く同じものをwmode=opaqueで貼り付けたものですが、クリックしてスタートした後、上下のキーを押すと、WindowsIEの場合はキーフォーカスがうまく効かず、ブラウザがスクロールしてしまいます。FireFoxだとキー入力を全く受け付けなくなることもあります。
 
インタラクティブ性の高いFlashや、ゲーム的なFlashで、操作性の部分で不具合が出てしまってはお話になりません。その場合はwmodeの設定は外して、WindowsIEの再生スピードが遅くなるのを諦めるほかないでしょう。涙。

wmodeの設定なんかつけなくても、WindowsIEでFlashが正常なスピードで再生される。そんな日が早く来たらいいのになー。
 
[追記]
どうしてもフレームレートどおり表示させたいときは、無音の音をストリーミングで流して強引に合わすという方法があります。
Flashゲーム講座&ASサンプル集 - 音に合せて映像の同期を取る
 
[追記] 2008/11/02
Flash Player10より、wmodeを設定しなくても正常なスピードで再生されるようになりました。

COMMENTS [1]

  1. 通りすがり :

    firefoxで再生速度が遅い
    Operaでは早い
    IEが一番普通でした
    これって環境に左右されるんじゃないでしょうか

    6 月 6th, 2012 at 11:18:52

トラックバック URL :