jump to navigation

ExternalInterface.addCallback IE エラー 8月 27, 2009

Posted by hyhy in ActionScript3.0, Adobe系.
Tags:
trackback

IEでjsからasを呼び出せない。。。
jsエラー
「オブジェクトでサポートされていないプロパティまたはメソッドです。」

【対策】
1)allowScriptAccess=alwaysにする

2)objectタグのIDには必ず”external”という文字を入れなければいけない

3)HTMLのフォームタグの中にobjectタグを入れてはいけない

4)スクリプトで動的に要素を追加する場合には注意が必要
document.createElement(‘object’) な方法で swf を設置した場合は要注意。
objectタグのコンテナであるdivタグを生成した直後にobjectタグを追加すると動作しない。

ASの関数を実行するためのFlashの(関数)オブジェクト参照を取得できず、nullが返ってくる
これについては
swfをonLoad以降に書き出すとマズい
IEはbody.onload時(DOMContentLoaded時)において存在しないswfの参照は取得することができない」ということが言えそうです。つまり、ExternalInterfaceを利用したい場合は、対象swfはDOMContentLoaded以降にロードされるのではなく、DOMContentLoaded以前にロードされておく必要がある

5)swfのURLには時間をつける

6)ExternalInterface#addCallback で追加した関数名が、そのコールバックを呼び出した場所の this のプロパティ、プロパティチェインにその関数名を含む場合、エラーになる。

7)IEでは、Flash側からExternalInterface.callでJavaScriptを呼び出している最中は、反対向きにJavaScriptからFlashは呼べない様子。

8)

ちなみに私の場合、なぜ動かなかったかと申しますと。。。
swfを生成する為の、objectタグのclassidに空白が紛れ込んでおり、認識しなかったようです。。。

■参考サイト
その1
その2
その3
その4

広告
%d人のブロガーが「いいね」をつけました。