はじめまして、みっちゃん。
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を参照してください。
|