12 18, 2006

WMODEの落とし穴 in FIREFOX

えっとですね。

Flashを貼り付ける時に「wmode」というタグがありますね。
Flashステージの背景を透過したりみたいな。

また、IEだとフレームレートが正常のスピードで動くようになるとか。

しかし。
こやつには色々落とし穴があるようです。

まぁ。有名所で、
日本語のテキスト入力ができない。(いや。できるけど変みたいな。そんな感じ?)

しかし。
今回はまた違うバグ?(少僕能では、バグと認定)
が発生しました。

経緯としては、
おすぃごとでブログパーツなるものを作成しておりました。

で、
ハックバージョン用SWF : 全画面に表示されるようなやつ。
バナー用SWF : ブログに常駐してるやつ。
の二つがあるとしましょう。

この二つをExternalInterfaceでやり取りしながら消したり出したり、何かしたり・・みたいな。
そんな少僕能では生意気な事してたんですよ。

けどね。けどね。
WIN+FIREFOX(MACはわからない)だと動かないんですよ。

何で?わかんない。
って事で、ExternalInterfaceをLocalConnectionでやってみたんですよ。
や・・・やっぱり・・・WIN+FIREFOXだと動かない・・・。

ピーーーーーーンチ!
僕はひどい汗をかきながら(モイモラ風でいくと豚骨ってやつですね)顔ひきつりながら色々探りましたよ。。

で、色々なブログにあるFlashバナー的なモノを見ながら見ながら探したんですよ。
そしたら一つ発見したんです。。。

Flashバナー的なモノの中で、
ブラウザ領域に入った時に再生完了してるものと再生スタートされるものがあるんですよ。

あれ?あれ?あれ?ハケーーーン。

wmodeを使用していると(値は関係なし、タグを挿入してるかしてないか)
FIREFOXでは、ブラウザの表示領域内に入ったタイミングでレンダリングが開始されるっぽいです。

けど。貼り付けは完了してます。
けど。再生もされないし。そのSWFに何かしらで値を送ろうとしても拒否されます。
そう。張り付いてるけどレンダリングされない。ということです。

僕の確認ではFIREFOXだけです。
IEは問題ないです。

ですから。
----------
長いHTML内にwmodeをありで貼り付ける際。
他のswfと通信したい場合、JSの変数等に値を格納しておいて。

レンダリングされると同時にJSの値を読み込み処理をする。

ただし、レンダリングされてないSWFに値を送って、返り値で何か処理をする。
みたいな事はもしかしたらきついのかもしれない。(わからない)
----------

のような感じでした。

投稿者 koui : 2006年12月18日 19:51

トラックバック

このエントリーのトラックバックURL:

コメント

あーーー僕もそれと似たような件でこの週末さんざん悩みましたよ!僕の豚骨も負けないくらいどろっどろでしたね!

僕の場合もどういうわけかFirefoxのみ正常に動かない!しかもWin・Mac両方とも!みたいな滝汗問題が発生しました。ExternalInterface経由でJavascriptからFlashにマウスイベントを送るという多少トリッキーなバナーで、(少僕脳)

ExternalInterface.availableも、
ExternalInterface.addCallbackも、
trueを返してくれるんですが、なぜか全く反応しない!
ピーーーーーーンチ!(少僕脳)

とりあえず、いろいろ検証した結果、
どういうわけかアクティブコンテンツアップデート対策用に使ってるAdobe純正のAC_RunActiveContent.jsが悪さしていることがわかり、(少僕脳)

Firefoxのみそれを使わずに一連のタグを直接ハードコーディングでdocument.writeしてあげたらなんとか動くようになりました(少僕脳)

ちなみに、wmodeは特に指定してないし、
最初っからブラウザ表示領域内でした。
もうねFirefoxシネって思いました(少僕脳)

ちなみに、(少僕脳)って改行コードですよね?(少僕脳)

投稿者 hi : 2006年12月19日 01:31

>hiさん

純正が悪さって。。すごい・・w

って、ExternalInterface関係であった問題もありました。

僕と別の方が全く同じ環境で確認したところ
(ex : WIN XP pro SP2 + FF 1.5xというレベルまで一緒)
僕だけJSのエラーが出たり、その逆あったりみたいな謎現象起こりました。。
this.getURL("javascript:*****()");に変えたら問題なく行きましたけど・・・。

原因がわからず、
ExternalInterfaceが不安定ということで僕の中では消化しましたけどw

ちなみに「少僕脳」は
「少なくても僕の能力では」の略ですw

Categoriesにred languageというのがあるんで
意味わかんない言葉はここに説明があると思いますww

投稿者 koui : 2006年12月19日 03:26

僕もさいきんブログパーツで、見えてから読み込まれてるなーと気になってたんですよ。
そういうことだったんですね。。。

投稿者 nao : 2006年12月25日 13:06

>naoくん

あなたのブログパーツ。
色んな所で見てますYO!

すごいですYO!
チッ

投稿者 neet-red : 2006年12月25日 14:17

コメントしてください




保存しますか?