Flashパラメータが読めない
HTMLからSWFへパラメータを渡す方法を調べており、loaderInfoなるクラスを使って読み込める事がわかりました。
まず、最初の引っかかりはHTML部分への記述
ブラウザによってオブジェクトタグが違うので本来なら2種類用意しなくてはならいところをテストだからと一種類しか用意しなかったのがそもそもの失敗。Safariでどうしても表示できなくて、サンプルはうまく表示されるのに自分のは表示されない。
さんざん悩んだあげく、わかったのはSafariは< embed >タグを読んでいたこと。こっちの記述をしていなかったのですね。
でアクションスクリプトのサンプルは
for (var p:String in flashVars) {
output_txt.text = p + " = " + flashVars[p] ;
}
サンプルどおりのコードで表示されました。
ですが、こちとら一つのパラメータしかないので、ループで読まなくてもいいやーって事で修正
var p:String;
p = String(flashVars["MyName"]);
output_txt.text = p;
ま、こんな感じかなーって実行してみるとundefind!!
3時間ほど格闘しました。
で、問題はHTMLに問題がありました。
< embed src="test.swf" FlashVars="MyName = HOGEHOGE" …以下略 >
なんと、ぱっとみわかったあなたは天才〜。パラメータ名と値の間の=の両脇のスペースがある性で必要としているパラメータが発見できなかったのでした。OH MY GOD!!!!
スペースを無くしテストしたところうまく動作しました。
うわーん。ほんと、こんなところでひっかかるなんてー
でも、たかがスペースですけど、コンピュータから見れば立派な文字コードなんですもんね。
プログラムなさる方はどんな言語でも”スペース”の落とし穴には気をつけましょうね
« Macからwinへ接続 | トップページ | 苫米地さんて知ってます? »


コメント