D0611303 外部(HTMLタグ)からの変数の渡し方を教えて下さい
Name みっちゃん
Date 2006年11月30日 (木) 17時21分
Message 初めまして
いつも参考にさせていただいてます。

全体がphpで作られているHPのメニューボタン部分のみ
私がFlashで作成しています。
ボタンが押され次のページに変わるとき、
更新ボタンを押した時のように最初からアニメが始まってしまい
ボタン処理などもこのままでは意味がないことに気付きました。
(今頃…)

希望する処理としては、どのHTMLが開かれているかで
表示されるアニメーションを変えたいのです。
「FlashVars」を使用するとこまで調べたのですが
ActionScriptの具体的な記述が見当たらず…

初歩的なものかもしれませんが
どうぞよろしくお願いします。
憲ちゃんの親切・丁寧な説明が頼りです。。
Response 01
2006年12月01日 (金) 00時38分> 憲ちゃん 
はじめまして、みっちゃん。

SWFの中にそれを埋め込んだHTMLファイルから、直接変数を送り込む方法には2種類あります。

 送り込む変数名を仮に Page、その値(文字列)を"top"としたとして・・・
 
ひとつは、SWFファイル名のうしろに「?」を付けてGET送信します。
<OBJECT>タグの場合・・・
 <param name="movie" value="***.swf?Page=top">
<EMBED>タグの場合・・・
 <embed src="***.swf?Page=top" bgcolor=#FFFFFF・・・

もうひとつがその「FlashVars」です。(※ただしFlashPlayer6以上)
<OBJECT>タグの場合・・・
 <param name="FlashVars" value="Page=top">
<EMBED>タグの場合・・・
 <embed src="***.swf" FlashVars="Page=top" bgcolor=#FFFFFF・・・

このように記述します。
変数と値(文字列)の組が複数あるときは、"変数=値&変数=値&変数=値"
それぞれの間を「&(半角アンド)」を区切り文字として挿入していきます。

HTMLから送られた変数は、SWFの中で「_rootの変数」として真っ先に定義されます。

そこで、同じメニューSWFを各HTMLに埋め込んでいて、
例えば表示しているHTMLのメニューボタンを無効にするというような処理をしたいとします。
一例ですが・・・各メニューボタンMCの中の仕組みを次のように。。。



1フレームにだけボタンを配置、2フレームは単なる図形だけを配置しておきます。
それぞれHTMLから、TOPページの場合"Page=top"、コンテンツページの場合"Page=contents"
という値を上記の方法で送り込むことにして・・・

各MCのクリップアクションで(「TOP」MCの例)、

 onClipEvent (load) { 最初に以下を実行
   if (_root.Page == "top") { _rootの変数Pageの値が"top"なら
     this.gotoAndStop(2); ←2フレームに移動(自分のページなのでボタン無効)
   } else { それ以外なら
     this.gotoAndStop(1); ←1フレームに移動(ボタン有効)
   }
 }

これだけです。

 サンプル(別ウインドウ) menu90.zip ※MX仕様

メニュームービーの右上の文字が、送り込まれた変数Pageの値です。
本来必要ありませんが、参考までにテキストボックスを置いて表示しています。
なお、サンプルのHTMLは・・・
「AC_RunActiveContent.js」を用いた「IEのアクティブ化対策」を実施しています。
その場合は「FlashVars」を用い、JavaScriptの記述の中で・・・

 <script type="text/javascript">
   AC_FL_RunContent(
   ・・・・
   'movie','menu',
   'FlashVars','Page=top',
   ・・・・
   'src','menu',
   'name','menu',
   'pluginspage','http://www.macromedia.com/go/getflashplayer' );
 </script>

このように挿入しています。
詳しくは、サンプルファイル及び
■WinXP+IEにおけるFlashムービーのアクティブ化対策の2を参照してください。
Response 02
2006年12月01日 (金) 11時17分> みっちゃん 
憲ちゃん、ありがとうございます!
お忙しい中こんなに丁寧な回答をしてくれるなんて(感泣
うれしい限りです!

アクティブ化対策によっても記述が違うんですね。
phpの担当さんと相談して
どの方法で行くかを検討させてもらいます。
(きっと最後の記述方法で行くかな…)

壁にぶつかってばかりで覚えることばかりです。
またどうしようもなくなったら助けてやってください。。
本当にありがとうございました!
憲ちゃんもがんばってください!

<関連質問>

このページの先頭へ