URL 変数を使って Flash に変数をわたす

URL 変数は、ActionScript からこんな感じで参照できるらしい(要するに _level0 というオブジェクトのプロパティとして参照できる)。

if (_level0.myURL == undefined) {
    myTxt.text = "myURL is not defined";
} else {
    myTxt.text = _level0.myURL;
}

また、変数名がわかっていなくても、こんな風にすれば変数名と値のセットを取り出せる(for...in ステートメントというものらしい)ということみたいだけど、やってみるとうまく行かないっぽい。

Flashドキュメンテーション
for..in ステートメント
http://livedocs.adobe.com/flash/8_jp/main/00001872.html
Flashドキュメンテーション
typeof 演算子
http://livedocs.adobe.com/flash/8_jp/main/00001857.html​

for (name in _root) {
  if (typeof (_root[name]) == "string") {
    trace(name+"="+_root[name]);
  }
  if (typeof (_root[name]) == "number") {
    trace(name+"="+_root[name]);
  }
}


ちなみに、「AC_RunActiveContent.js」などを使って HTML に embed している場合は、URL 変数の使い方がちょっとややこしくなる。
それについては、こちらを参照。

ちなみに、hoge.swf の後に hoge.swf?foo=bar のような感じで URL 変数を追加してわたしてやりたい場合には、

  flashvars, foo=bar,

のように書いてやる必要がある。