• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Flash5のモジュール方ボタンについて)

Flash5のモジュール方ボタンについて

このQ&Aのポイント
  • Flash5のモジュール方ボタンについて
  • モジュールタイプのビデオコントロールボタン作成時のエラーについて
  • 停止ボタンのスクリプトに関する質問と解決方法について

質問者が選んだベストアンサー

  • ベストアンサー
  • hokuto_ds
  • ベストアンサー率45% (106/233)
回答No.2

あ、なるほど、モジュールってつまり、MCのなかに入れてパックにしたという意味だったのですね;失礼しました。 目からウロコだったのでためしてみましたが、_parent._currentframeというのはたしかにアクセス可能なプロパティですね。「_parent._currentframe」がプロパティだというのは、考えてみればたしかに道理でした。 私としては「_parent」に「_currentFrame+1」の命令を出す、とはじめは思ったのですが、「_parent._currentFrame」というプロパティに「+1」の命令を出す、というのが正確な考え方のようです;(いや、ほんとに目からウロコ‥「プロパティにアクセス」→「命令を出す」は、たしかに動くはず!前回の回答は私の勘違いでした、すみません) なので_parent.1という「プロパティでないもの」にはアクセスできないのでしょう(相手がいないから)。 _parent.gotoAndStop(_currentFrame+1)でも、_parentのフレーム移動が起きますが、どうも、なぜか一度作動したきりボタンがうごかなくなる?ようです(私のテスト環境のミスかもしれませんが‥)うーん‥‥常になんかいクリックしても1フレームずつとばしたいとき、とかは_parent.currentframeとかを使ったほうがいいということかもしれませんね。 >プロパティ表記を使う場合は、flash自体が現在のムービークリップのプロパティだと判断してしまう そうですね。というか、基本的に、プロパティ表記の_xとかは、this._xとかの「this」が省略された状態で、フラッシュのルールとして「this._xならthis.は省略していい」ということになってるので、this.以外のプロパティにアクセスしたいときは_parent.などのパスが必要になるということですね。 あと、前の回答と重複するラベル指定の話ですが、 on(release){ _parent.gotoAndStop("ラベル"); } でとぶと思います。 いい勉強になりました(^^; では。

shevy
質問者

お礼

ありがとうございました。 私も今回は非常にべんきょうになりました。 モジュール式はけっこう使いまわしがききそうですね。 また、宜しく御願いします。 奥が深い深い、アクションスクリプト! ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • hokuto_ds
  • ベストアンサー率45% (106/233)
回答No.1

えーと、結論からいくと、 ボタンがその「制御したいタイムライン」に置いてある場合(_rootなら_root上、別のムービークリップならその中に)、命令は on(release){ this.gotoAndStop(1); } だけでいいです。ボタンは「自分自身」(this)として、「自分のいるタイムライン」を参照するからです。_parentを入れてしまうと、そのボタンをムービークリップに入れ子にした場合、「そのムービークリップ」ではなく「そのムービークリップの親」を呼びにいってしまいますよ。 で、余談ですが、もし相対パスで_parent.に命令を出したい場合、 on(release){ _parent.gotoAndStop(1); } ですね。ラベルがあるなら on(release){ _parent.gotoAndStop("ラベル名"); } です。で、うしろの引数に{_parent.1}みたいに相対座標を入れることは出来ません。相対座標はすでに_parent.goto..の時点で指定されていて、命令はその座標めがけてとんでいってくれています。 ところで「再生、一時停止、巻き戻し、早送り」のボタンについて気になるんですが‥‥;_parent.を使ってた場合、前述したような問題が出ると思われます。一度、そのボタンを別のMCのタイムラインに配置し、そのボタンの作動を確認してみたらどうでしょう?そのMCのタイムラインではなく_rootのタイムラインを動かしてしまうと思います。

shevy
質問者

補足

回答有難うございます。 結論からいきますと、 on(release){ _parent.gotoAndStop(1)1}; でうまくいきました。 ところで、 私の書き方がまずかったのですが、このボタン群は、 ムービークリップ上に存在するものなのです。 そのボタンセットを含むムービークリップを一つのタイムライン上に置くという方法です。 ですので、他の「再生、一時停止、巻き戻し、早送り」のボタンについては、問題なく_parentで指定できて、動作も問題ないんです。 (書籍ラーニングactionscriptのP327を参考にしています) その際、たとえば、巻き戻しの場合は、 _parent.gotoAndPlay(_parent.currentframe-5) として_parentに4フレームずつ戻るように指定しました。 このときは、()のなかに_parentをしっかり入れても、 _parentのcurrentframeを指定できているんですよね・・ 私の憶測ですが、currentframeというのは、プロパティであり、()の中に_parentのプロパティを表記する場合は、_parent.をプロパティ(currentframe)の前につけなくてはならなくて、 (1)というように、1フレーム目だけを指定する場合は、 指定場所が_parentであっても、()の中に_parentの表記は必要がないという解釈でいいのでしょうか?? 少し、伝わりにくい文章かもしれませんが、 プロパティ表記を使う場合は、flash自体が現在のムービークリップのプロパティだと判断してしまうから、_parentを前につける必要がある・・・との憶測です。 伝わっていないですかね・・・・ できれば、もう一度アドバイス御願いします。

すると、全ての回答が全文表示されます。

関連するQ&A