SWFObject 1.4.3がリリースされたよ

HTMLにFlashを埋め込むためのJavascript「SWFObject」がバージョンアップしています。Flash Player 9で起こる問題を修正したそうです。(SWFObjectの使用方法はこちら
注意:この記事ではver 1.4.3についての日本語訳を掲載しますが、このバージョンにも問題があったため、直後に1.4.4に修正されています。1.4.4については次のエントリで紹介していますので、併せてご覧下さい。
なので、この1.4.3は幻のバージョンアップで、使用することはないと思いますが、どこが修正されたのか知りたい方は続きをご覧下さい。


この記事はdeconcept › SWFObject 1.4.3 releasedを日本語訳したものです。以下、その訳文。


このバージョン(SWFObject 1.4.3)には、「href=”javascript:」を使ったリンクをクリックした時に、再度onbeforeunload関数が呼び出されてしまい、全てのswfファイルが非表示になってしまう問題が発覚しました。既に修正版(1.4.4)を公開していますので、そちらにアップグレードしてください。

このリリースはFlash Player 9を使うことで起こる問題を修正(小修正)したものです。

HTML1ページの中に複数個のswfファイルを埋め込んでいる時や、それらのswfファイルの中でコールバックさせるためにExternalInterfaceを使っている場合、ページを移動する時に「Line 56: Out of Memory」という警告文が表示されてしまいます。

これはIEだけに起こる症状で、他のブラウザでは起こりません。また、SWFObjectの使用・不使用(その他の埋め込み方法)に関わらず、Flash Player 9を使っている場合にのみ起こる現象です。

この問題はIEブラウザのバグ修正のためにFlash Player 9に新しく組み込まれたJavascriptのコードが原因です。そのIEのバグというのは、ストリーミングメディアサーバーと接続するswfファイルを対象に起こるというものでした。詳細を知りたい方は、過去のエントリをご覧下さい。

以前、Adobeとの共同作業によって、私はバージョン1.4.2のSWFObjectのコードの一部を流用し、このストリーミングメディア問題のためのJavascriptを修正しました。それはFlash Player 9がリリースされるまではうまくいっていました。しかし、Flash Player 9のリリースの際、AdobeはこのIEのストリーミングメディア問題の修正のために、(SWFObjectに施した修正ととても似ている) Adobe独自のJavascriptを実装しました。唯一の問題はAdobeのコードは1ページ中に複数のswfファイルを埋め込んだ時に、好ましい結果にならないのです。

結果としては、今回のこの新しいバージョンのSWFObjectは、Flash Player 8で快適に動いていた前バージョンのSWFObjectを書き直すことはせず、Flash Player 9で悪さをするコードを取り去っただけに留めています。

今すぐアップロードを! – 複数のswfファイルを埋め込んでいるページに対して、ExternalInterfaceを使う人はこの問題に留意し、SWFObjectのアップグレードすることをお奨めします。

こちらから直接ダウンロードできます。Subversionで差分ダウンロードする方はこちら。また、SWFObjectの特設ページからも入手できます。


関連リンク
trick7.com blog: SWFObjectのドキュメントを日本語に翻訳してみたよ
SWFObjectの使い方とか。

trick7.com blog: SWFObject 1.4.4がリリースされたよ
SWFObject最新バージョンの紹介。