- ベストアンサー
action scriptでボタンを押したらMOVIE CLIPを再生する
こんにちわ タイトルのとおりなのですが 以下のactionscriptの間違っている 部分を教えてください on(release){ this.play.("a_mc"); } 他にもいじってみたものの動きません(汗 他の方法などもありましたら教えてください お願い致します
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ムービークリップを再生、つまりムービークリップのタイムラインを動かすスクリプトは、 再生したいムービークリップ.play(); です。 play に続く ( ) の中に再生するムービークリップの名前を指定するのではありません。 それから、play と ( ) の間に” . ”(ピリオド)は不要です。 あるムービークリップの特定のフレームから再生する場合は、play ではなく gotoAndPlay という命令を使います。 こちらは、 再生したいムービークリップ.gotoAndPlay( フレーム番号またはラベル ); このような書式になります。 play はどこのフレームで止まっていてもその続きから再生する命令なので移動先の指定がいらないのですが、gotoAndPlay は特定のフレームに移動する命令であるため、移動先が必要になります。 ------------------------------------------------------------------ ステージにボタンシンボルのインスタンスと、ムービークリップのインスタンス” a_mc ”があるとします。 ボタンを押した時に a_mc を再生するスクリプトは、次のようになります。 このスクリプトはボタンのインスタンスに設定してください。 (↓各行頭に全角のスペースが入っています。コピーする際は、全て半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります) on(release) { _root.a_mc.play(); } ActionScript では、ムービークリップやボタン、変数・関数などには全て持ち主がいると考えます。 例えばステージに配置したムービークリップやボタンは、一般的には _root というムービークリップの持ち物です。 上記のスクリプトで使った play(); という命令(メソッドといいます)はムービークリップ a_mc が持っているもので、ボタンに書いたスクリプトで使う場合は、ボタンが a_mc の持ち物のメソッドを使わせてもらう形になります。 他人が持っているものを使わせてもらうには、持ち主を正確に指定しなければなりません。 この指定のことをターゲットパスといいます。 a_mc は _root の持ち物であり、play はその a_mc のものです。 ” _root にあるムービークリップ a_mc の持っている play メソッドを使わせてもらう”ということを正確に指定する意味で、 _root.a_mc.play(); となるわけです。 ここではややこしくなりますので触れませんが、ターゲットパスにはいろいろな書き方があります。 実は、自分が持っているものであれば省略も可能です。 this や _parent といった相対的な表現で、自分のものや1つ上の階層が持っているものを指定することもできます。 ターゲットパスは ActionScript では大切な考え方ですから、しっかり研究してください。
お礼
大変細かくすばらしい返答ありがとうございました! 頑張ってこれからも勉強したいとおもいます!!