« ストレッシングテスト専用機器 | Main | Flashの改行コード »

FlashVars

HTMLタグからFlashに値を渡すには大まかに2通りある。

1. srcの部分でflashのパスの後にクエリー(?xxx=yyyみたいなの)を付ける。
2. FlashVars属性を使う。

一般的に知られるのは前者だと思う。後者はあまり有名じゃないのか知らない人もいたりする。詳細はこれ。Macromedia - Flash TechNotes: Using FlashVars to pass variables to a SWF

で、この2つがどう違うのかを簡単に説明すると、前者はSWFをキャッシュしない。後者は、SWFをキャッシュする。というそれだけの事(多分、いや他にもあるのかもしれないけど、私は知らない。)

前者はなんでキャッシュしないかっていうと、サーバ側にクエリーの値が送られるわけだからサーバは前回呼ばれたSWFと違うものと勘違いする。けど、実際はSWF内部での動作が違うだけでSWFそのものは同じなのだ。後者は仕組み上当たり前のごとくキャッシュされる。サーバ上で動的にSWF返してたり変わった設定をしていない限り。

なので、Flashに引数を渡したい場合は、FlashVarsの使用をおすすめする。同じSWFを何回もダウンロードされてもサーバのレスポンスが悪くなるだけなので。

あ、逆にキャッシュさせたくないという理由で、クエリーに値を渡すのもアリ。というか、昔bAにいたころそんなことしてたような気がする。

Post a comment