1

会社は最近 Flash v11.8.800.168 にアップグレードしましたが、SWFObject (1.1) を使用して読み込まれた Flash ムービーが Internet Explorer で正しく動作しません (Firefox は正常に動作します)。ムービーは、"new SWFObject(...); so.write("ID")" メソッド (再び SWFObject 1.1) を使用する jquery document.ready メソッドを使用して動的にロードされます。\

ロード中のムービーは、JavaScript 関数 (サーバー スクリプトを使用して動的に構築される) を呼び出します。関数は、デバッガーによってチェックされるように正しく呼び出されています。JavaScript 関数は、Flash ムービー内のメソッドを呼び出して、何らかの XML (一部のユーザーおよびナビゲーション アイテムをレンダリングするために使用されます) を渡します。

このようなもの:

function calledFromFlash() {
 document.getElementById("FlashMovie").renderUsingXml('<?xml version 1.0"?><lotsofxml></lotsofxml>');
}

私が言ったように、これはすべて新しい Flash バージョンの Firefox でも機能します。

IE Debugger でステップ インを使用して上記の関数をステップ実行すると、次の手順が実行されます。

function anonymous() {
    return eval(this.CallFunction("<invoke name=\"renderUsingXml\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments, 0) + "</invoke>"));
}

この時点で、arguments 変数を確認したところ、期待どおりに XML が含まれています。次のステップの後、私はこれを得ます:

try { __flash__toXML(calledFromFlash(undefined)); } catch (e) { "<undefined/>"; }

この時点で、デバッガーは既にキャッチされていますが、コードを "<undefined/>" セクションに追加するためのもう 1 つの手順を実行すると、eObject Expectedであることがわかります。

私が試したこと:

  • SWFObject を使用しない静的実装。これは機能します。しかし、Firefox は XML を適切に処理しません (IE と同じ問題のようです)。
  • SWFObject 2.2 へのアップグレード。動的実装を使用すると、まだ失敗します。静的実装を使用すると、IE では機能しますが、Firefox では機能しません

これは私のフラッシュ ムービーではありません。ソースは…まあ、わかりません。書いた奴は会社を辞めた。とはいえ、これは非常にクレイジーな問題のようです。

私が提案する修正方法は、単純に Firefox では SWFObject を使用し、IE では静的実装を使用することですが、何が問題なのか本当に知りたいです。

4

1 に答える 1