2011-01-31 18 views
3

SWFObject v2.2を使用してWebページに埋め込まれたFlashゲームがあり、次のようにしてFlashに呼び出すリンクがいくつかあります。IE9で外部インターフェイス呼び出しが動作しない

window.document["flashObjectId"].flashMethod(); 

これはIE7と8を含むすべてのブラウザでうまくいきましたが、IE9では「SCRIPT438:オブジェクトがこのプロパティまたはメソッドをサポートしていません」というエラーが発生します。

互換モードで動作するので、デフォルトで互換モードを使用するようにIE9に指示するメタタグを追加しようとしましたが、私たちのゲームはFacebook内のIFrameで動作するため動作しませんでした。

私はJavascriptで考えることができるあらゆる方法でFlashオブジェクトを参照しようとしましたが、IE9では常に同じエラーメッセージが表示されます。誰かがIE9でこれを動作させるのに役立つ情報があれば、本当に感謝しています!

+0

もhttp://stackoverflow.com/questions/7523509/script5007-unable-to-get-value-of-the-property-setreturnvalue-object-is-null/8100743#8100743を参照してください。 – whoisbenli

答えて

0

同じ問題がありましたが、私はSWFObjectまたはAC_RunActiveContent.jsを使用しませんでした。

私の解決策は、HTMLとAC_RunActiveContent.jsで公開されたswfです。それから、私は現在のコードをフラッシュからエクスポートしたものに置き換え、それが動作し始めました。

0

あなたはこれについてどう思いますか?

function getFlashObject(movieName) { 
    if (navigator.appName.indexOf("Microsoft") != -1) { 
     //alert("IE"); 
     if (typeof (window[movieName].flashMethod) == 'function') { 
      // < IE9 
      movie = window[movieName]; 
     } 
     else if (typeof (document[movieName].flashMethod) == 'function') { 
      // >= IE9 
      movie = document[movieName]; 
     } 
    } 
    else { 
     // NON IE 
     movie = document[movieName]; 
    } 

    return ((movie) ? true : false); 
} 

$(document).ready(function() { 
    if(getFlashObject("flashObjectId")) { 
     movie.flashMethod(); 
    } else { 
     alert("Failed to initialize"); 
    } 
} 
関連する問題