- ベストアンサー
FLASHでホームページのメニューのフレームを指定する方法
- FLASHでホームページのメニューの部分を作成し、各ページに同じFLASHのメニューを表示させたい。
- 各ページごとに再生するフレームの位置を変えたいが、方法がわからない。
- 環境はFLASH MXとドリームウィーバーMXを使用しており、OSはwindowsXP。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
「FlashVars を使用して SWF へ変数を渡す」 http://www.adobe.com/jp/support/flash/ts/documents/fl0284.html ここに書いてある通りです。 まず, Flash(SWF) を HTML に貼り付けるときのタグを, その Flash(SWF) を貼り付けてあるページによって変えれば良いのです。 SCHEDULEのページ↓ Object タグの例: <PARAM NAME=FlashVars VALUE="Banzai=Yotei"> Embed タグの例: <EMBED src="○○.swf" FlashVars="Banzai=Yotei" ... (ほかのパラメータ)> </EMBED> BBSのページ↓ Object タグの例: <PARAM NAME=FlashVars VALUE="Banzai=Kakikaki"> Embed タグの例: <EMBED src="○○.swf" FlashVars="Banzai=Kakikaki" ... (ほかのパラメータ)> </EMBED> これを追加すると, そのページの ○○.swf が表示されると同時に, ○○.swf の _level0 (_root) に, Banzai という 変数と その値が送り込まれます。 変数 Bannzai の値が何であるかによって,何でも良いので動作を決定すれば良いのです。 フレーム1 に, ------------------------------------- // もし 変数 Banzai の値が Yotei であれば if (_root.Banzai == "Yotei") { // フレーム3 に進めて再生 this.gotoAndPlay(3); // もし 変数 Banzai の値が Kakikaki であれば } else if (_root.Banzai == "Kakikaki") { // フレーム6 に進めて再生 this.gotoAndPlay(6); } ------------------------------------- と書いておけば, それぞれの値によって,Flash の動きが変わります。 結局,変数と値は何でも良いのですよ。 自分さえそのルールをわかっていれば良いのです。 実際に,Yotei や Kakikaki という フレームラベル を Flash 内に用意して置いて, その フレームラベル に飛ぶようにしておいても良いです。 すると,if文が省略できます。 this.gotoAndPlay(_root.Banzai); こんな仕組みでもかまいません。 また, 最初に書いた URL のように, メッセージを仕込んでおいて,Flash にそのままメッセージを表示させても良いですし, 使い方は無限通りあります。 上記例では, 2ページとも変数名を "Banzai" に統一していますが, 別に統一する必要もありません。 /// 注意 ///////////////////////////////////// FlashVars とは関係がありません。 Flash はまだロードされていない フレーム にジャンプしようとすると, そのような フレーム は存在しないという扱いになり, その フレーム までジャンプできず, 真っ白になって止まったり,手前のフレームで墜落したりします。 そういうことを防ぐために,「Now Loading...」などで, 最終フレームが読み込まれるまで,フレーム1 で待機させておく必要が出てきます。 ですから,実際は,フレーム1 に 上記 if文 などを用意するのではなく, 「Now Loading...」を自作するか,探すかなどして,フレーム1 にそれを持ってきて, 読み込み待ち処理をして,フレーム2に進ませ, そのフレーム2で,if文 などを用意する必要が出てくると思います。
お礼
回答していただきありがとうございます! 説明通りやってみたら、イメージ通り動かすことができました。 しかもとてもわかやすくおしえていただき感謝しております。。 「Now Loding」はそのような意味があったのですね。 それに、いろいろな方法があるようで・・・自分ももっと勉強していかないとなぁ(笑)と思います。 どうもありがとうございました。