- ベストアンサー
Flash MX 2004初心者の質問:ボタンをクリックでムービーを表示させストップ、他のボタンは関係なく動く方法
- Flash MX 2004を使っているAction Script初心者です。ボタンをクリックするとムービーが表示され、関連する他のボタンは動作せずにストップする方法について教えてください。
- b01というボタンをクリックすると、m01というムービーが表示され、b01とm01はストップします。m01をクリックするとm01は消え、b01が再度動き出します。同様に、b02をクリックするとm02が表示され、b02とm02はストップし、m02をクリックするとm02は消え、b02が再度動き出すようにしたいです。
- _root.b01とm01、_root.b02とm02を連動させる必要があります。現在のコードでは、全体がストップするか全体が動き出すようになってしまっています。正しい方法を教えていただけないでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
b01 と b02 は独立して動くのですから, それぞれ独立したタイムラインが必要です。 つまりそれぞれを別々のムービークリップに入れる必要があります。 _root ├p01(親ムービークリップ01) │ └b01(p01内をモーショントゥイーンなどで動くボタン) ├m01(表示/非表示 が変わるムービークリップ) ├p02(親ムービークリップ02) │ └b02(p02内をモーショントゥイーンなどで動くボタン) └m02(表示/非表示 が変わるムービークリップ) 【b01】…(_root.p01.b01) on (release) { _root.m01._visible = true; _root.m01.stop(); _root.p01.stop(); } 【m01】 onClipEvent (load) { this._visible = false; } on (release) { _root.m01._visible = false; _root.p01.play(); } 【b02】…(_root.p02.b02) on (release) { _root.m02._visible = true; _root.m02.stop(); _root.p02.stop(); } 【m02】 onClipEvent (load) { this._visible = false; } on (release) { _root.m02._visible = false; _root.p02.play(); } ※ちなみに, _root.m01.stop(); とか _root.m02.stop(); と書かれていらっしゃるスクリプトは 正しいのか正しくないのか私は判断できません。 元のスクリプトに書かれていらっしゃって, 特に問題なく動くようなのでそのまま残しているだけです。
補足
ご回答ありがとうございます。 独立したタイムラインという概念を理解し、勉強になりました。 教えていただいたスクリプトで動いたのですが、 新たな問題が発生しました。 m01→→→m01→→→m01 b01→→→b01→→→b01 上の図のようにb01をクリックした時に、 その真上にいつもm01を表示させたいのですが、 一回目のクリックの際には上部に表示されますが、 m01をクリックしてb01を動かし、2回目以降b01をクリックすると、 m01はスタート地点から再生されているため、 b01の真上に来ません。 こちらを実現は可能でしょうか。 また、b01の上にいつもm01を動かすようなスクリプトなどは ありますでしょうか。 いろいろと間違っているかも知れませんが、 どうぞよろしくお願い致します。