ExternalInterfaceと<object>とswfのIDの罠

ASとJSの相互のやりとりで ExternalInterface を使っていたコンテンツがあるんだけど、ある日突然 IE で動作しなくなってた・・・。
ソースコードをいじりまくって格闘すること2時間、ようやく原因が判明。Flashの埋め込みタグのID名が原因とか。ソースには間違いはなかったよー。あの日突然swfのIDを変えたのが悪かったのか・・・。
ちなみにFlex2とAS3が情報源だけど、AS2でも発生する現象なんで、ちゃんとFlashのヘルプにも書いておいてほしいっす。

警告

HTML ページの Flash Player インスタンス ( タグの id 属性) に付けられた名前にハイフン (-) またはその他の JavaScript で演算子として定義された文字 (+、*、/、\、. など) が含まれていると、コンテナ Web ページを Internet Explorer で表示した場合に、ActionScript からの ExternalInterface 呼び出しが機能しません。

引用は livedocs っす。
External API について -- Flex 2

Trackbacks

Trackback URL: http://blog.naggg.jp/mt/mt-tb.cgi/54

Send Your Comment