- ベストアンサー
ボタンで移動する前に、特定のMC再生
ボタンで指定したフラグに移動する前に、 特定のムービークリップを再生後、 そのフラグに移動するといったことは出来ないのでしょうか? 例えば ボタンAはフラグAに対応 ボタンBはフラグBに対応 特定のMCのインスタンス名 aidaMC フラグAのstop();部分にボタンBがあり クリックするとaidaMCを再生後フラグBに移動といった感じです。 お分かりになる方ぜひ教えて下さい。 よろしくお願いします。 制作環境 WindowsXP / Flash8 PRO
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
またもや一瞬,頭がウニ,目が点の状態になりましたよ。 ですから フラグ じゃないんですぅぅぅぅー! って(笑い泣き)。 フラグ というのは,普通,立っているか倒れているかを記録しておく変数のことです。 例えば仕入れ管理で,次のようなデータがあったとき, 在庫商品 有無(有が1,無が0 とする) スイカ 1 たまご 0 トマト 1 レタス 1 バナナ 0 リンゴ 1 「たまご と バナナ の在庫がない~!」 というわけで,店長が急いで仕入れを手配しなければならないことが一目瞭然でわかりますよね。 0 と 1 とが逆でも良いです。 こういうものを通常フラグと言います。 また,例えばExcel などで,顧客個人データ入力時に, 出身が埼玉,性別が女性,年齢が38以上,既婚 という人のデータ行の P 列に, 「1」 というデータを入力しておいたとします。 そして, 出身が埼玉,性別が女性,年齢が38以上,既婚 の人のデータを集めたいと思ったとき, オートフィルタ で P列 の 1 を集めれば, 瞬時にして 出身が埼玉,性別が女性,年齢が38以上,既婚 の人の一覧ができますよね。 そういうときに使う物です。 フラグ (コンピュータ) http://ja.wikipedia.org/wiki/%E3%83%95%E3%83%A9%E3%82%B0_%28%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%29 ご質問で書かれていらっしゃるのは, フラグではなくフレームラベルだと思います。 確かに,フレームにラベル名を付けると, フラグである「赤い旗」が立ちますが, あれは 「フレームラベルが付いているよ!」 というフラグ(目印)だけなのであって, フレームに付ける名前はフラグではなく,フレームラベルです。 いつか,質問者様の質問を見ていたからこそわかったものの, 通常はイミフメイですよ。 上では,在庫管理や Excel を例にしましたが, フラグは当然,Flash でも使います。 今回,の回答でもフラグを使ってみましょう。 ====================== あと,ちょっと疑問なのですが, > フラグAのstop();部分にボタンBがあり これは, フレームラベルA のフレームに stop(); が書いてあるのではなくて, フレームラベルA の 1フレーム 前に stop(); が書いてあって, そこで,ボタンA と ボタンB が登場するのではないでしょうか? すみませんが,勝手にそういうこととして回答します。 また, _root のフレームに付けたフレームラベル名を labelA と,labelB にしておいたとします。 実際は別の名前でもかまいません。 そして, フレームラベルA(labelA)に対応したボタンAには, 次のように書きます。 ----------------------------- on (release) { // _root の 変数 flag の値を "A" にする _root.flag = "A"; // _root の aidaMC を再生開始 _root.aidaMC.play(); } ----------------------------- フレームラベルBに対応したボタンBには, 次のように書きます。 ----------------------------- on (release) { // _root の 変数 flag の値を "B" にする _root.flag = "B"; // _root の aidaMC を再生開始 _root.aidaMC.play(); } ----------------------------- そして, 特定のMCのインスタンス名 aidaMC の最初のフレームには, ------------------------ stop(); ------------------------ を書いて止めておいて, aidaMC の最終フレームに,次のように書きます。 ----------------------------------------- // _root の 変数 flag の値が "A" であれば if (_root.flag == "A") { // _root のタイムラインを labelA に進める _root.gotoAndPlay("labelA"); // _root の 変数 flag の値が "B" であれば } else if (_root.flag == "B") { // _root のタイムラインを labelB に進める _root.gotoAndPlay("labelB"); } ----------------------------------------- フラグは通常,「true or false」 もしくは 「0 or 1」 などに使いますが, 上の flag は,そもそも勝手に決めた変数なのですから,「"A" or "B"」 であってもかまいません。 また,勝手に決めた変数なのですから, 自分さえルールがわかっていれば 「"A" or "B" or "C"」 であってもかまいません。 わかりますでしょうか。 特定のMCのインスタンス名 aidaMC が最終フレームに達したとき, flag の値によって動作を変えているのです。 フラグはFlashでも別の意味を持つものとして別のときに使います。 ですから,いきなり唐突に, > クリックするとaidaMCを再生後フラグBに移動といった感じです。 と書かれましても, 「フラグって変数じゃん,『再生後変数に移動する』ってどういうこと?」 というように,頭が?????状態になるのです。
お礼
sassakun様 またまた間違えてしまいました(><) すみません。。確かにイミフメイですね(**) >特定のMCのインスタンス名 aidaMC が最終フレームに達したとき, >flag の値によって動作を変えているのです。 これすごく便利ですね! すごく助かりました☆ありがとうございました!