アプリ版:「スタンプのみでお礼する」機能のリリースについて

よろしくおねがいいたします。

ただ今FLASHでホームページのメニューの作成をしているのですが、
一つ質問させてください。。

FLASHでホームページのメニューの部分を作りました。
HTMLで各ページを作り、各ページに同じFLASHのメニューを表示させるようにしました。
そこで質問なのですが、

各ページの、たとえば、TOPのページにはFLASHのメニューのフレーム1から再生。
SCHEDULEのページは、フレーム3から再生。
BBSのページは、フレーム6から再生。




というように、、同じFASHを表示させても、各ページにより、
再生させるフレームの位置を変えたいのです。

自分なりにいろいろ調べてみたのですが、各ページから変数を渡し、フレームを指定できるということまではわかりました。
FlashVarsというのを使うようなのですが、そのやり方がわからず、困ってしまいました。。。

環境は、
・FLASH MX
・ドリームウィーバーMX
OSは
・windowsXP

です。よろしくおねがいいたします。。

A 回答 (1件)

「FlashVars を使用して SWF へ変数を渡す」


http://www.adobe.com/jp/support/flash/ts/documen …

ここに書いてある通りです。

まず,
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文 などを用意する必要が出てくると思います。
    • good
    • 0
この回答へのお礼

回答していただきありがとうございます!
説明通りやってみたら、イメージ通り動かすことができました。
しかもとてもわかやすくおしえていただき感謝しております。。

「Now Loding」はそのような意味があったのですね。
それに、いろいろな方法があるようで・・・自分ももっと勉強していかないとなぁ(笑)と思います。

どうもありがとうございました。

お礼日時:2006/12/06 19:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!