ExternalInterfaceでつまづく

swfとjavascript間で通信するためのクラス
ExternalInterface Class でつまづいたのでメモ

かるくつまづいた 1

allowScriptAccessをsameDomainかalwaysにしないと
swfとjavascript間で通信できない。
追加先
parameタグ/embededタグ(アトリビュート)

まあまあつまづいた 2

objectタグのidの名前に"extanal"の文字列
例)"objextanal","extanalObj","myextanalObj"

を加えないとIEで
swfからjavascriptの関数を呼び出せるが戻り値がnullになって返ってくる。

注意!!
id名が重複すると最初に表示されたもの以外はnullになるみたい
複数同じswfをページくつける場合は動的はidを用意してください

ExternalInterface.call Internet explorerでnullが返ってくる件
http://quality.ekndesign.com/archives/2006/07/externalinterfa.html

かなりつまづいた 3

これもIE系
IEはIE8だけなくとも通信できた気がする・・・(あいまい)

objectタグに

classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"

csとかでパブリッシュすればタグにデフォルトで含まれてるんだけどね

これがないと
swfからjavascriptの関数を呼び出せるが戻り値がnullになって返ってくる。

そもそもclassidってなんだよとかおもったけど
ブラウザの ActiveX コントロールを識別します。だそうだ。

こんなんだから
ExternalInterface Classは嫌いというか苦手意識がつくよね。

参考になったページです
ExternalInterfaceとかの落とし穴まとめ
http://0-9.sakura.ne.jp/blog/archives/2008/04/14224435.html
ExternalInterfaceを使ってみる (2)
http://www.project-nya.jp/modules/weblog/details.php?blog_id=644

Tags:

雪が降るエフェクトAS3

季節はずれですけど、
雪国生まれの僕が納得いく
雪エフェクトをちょっと昔に発見したので紹介します。
※多分adobeのサイトにあったサンプルをちょっといじった。

サンプルasはこちら
main.as
snowflake.as

Tags: