• ベストアンサー

外部swfからのタイムラインコントロール

FLASH&アクションスクリプト初心者です。 同じ階層にindex.swfという名前とcontent.swfという名前でswfファイルを置いています。index.swfのボタンシンボルを押すとindex.swfのムービークリップ(loadいう名にしています)上にcontent.swfを読み込むようにしています。その読み込んだcontent.swfのあるボタンシンボルを押すとindex.swfのタイムラインを指定したラベル(moveという名にしています)に移動させたいのですが、方法がわかりません。ご教授いただけると幸いです。アクションスクリプトは2.0を使用しています。

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

ActionScript 1.0&2.0 の場合 MC(ムービークリップ)に外部SWFをロードすると その外部SWFはそのMC自体と同じ存在になります。 ですからロードするしないは関係なく, 「ターゲットパス」さえ理解していれば MCプ内にボタンを置いたと思って考えるだけで 普通の場合と変わらずできると思います。 「ターゲットパス」 http://homepage3.nifty.com/ginga-b/MX/targetpath.html > ムービークリップ(loadいう名にしています) そういう紛らわしいネーミングは混乱や誤作動の原因になるだけです。 「index.swf」内にある「content.swf」をロードするMCには 「load_mc」というインスタンス名を付けてあるものと変えます。 また 「content.swf」内のボタンには 「cnt_btn」というインスタンス名を付けてあるものとします。 ◎階層構造  index.swfの_root   └load_mc(MC)  content.swfの_root   └cnt_btn(ボタン) ◎スクリプト例 ○場合1-1   cnt_btn自体に書くスクリプト例(絶対パス) on (release) { _root.gotoAndStop("move"); } ○場合1-2   cnt_btn自体に書くスクリプト例(相対パス) on (release) { this._parent.gotoAndStop("move"); } ○場合2-1   cnt_btnを置いたフレームに書くスクリプト例(絶対パス) cnt_btn.onRelease = function():Void { _root.gotoAndStop("move"); }; ○場合2-2   cnt_btnを置いたフレームに書くスクリプト例(相対パス) cnt_btn.onRelease = function():Void { this._parent._parent.gotoAndStop("move"); }; ※cnt_btnを置いたフレームとはつまり,   content.swf 内のメインタイムラインのフレームのことです。 ※場合1-2 と 場合1-2 は   ActionScript 1.0 の範囲内のスクリプトです。   (パブリッシュ設定 は ActionScript 1.0 にしていても   2.0 にしていても どちらでもかまいません。)   一方   場合2-1 と 場合2-2 は Voidキーワード を含むため   ActionScript 2.0 の範囲内のスクリプトです。   (パブリッシュ設定 を ActionScript 2.0 にしてないと   エラーが出ます。)

inoue55
質問者

お礼

ご丁寧に解説くださいまして有難うございました。 簡単に解決することができました。 >そういう紛らわしいネーミングは混乱や誤作動の原因になるだけです。 誤作動など考えていなかったのでネーミングに対する認識の甘さといいますか浅さに気が付きました。 >「ターゲットパス」 http://homepage3.nifty.com/ginga-b/MX/targetpath.html ひじょうに参考になるサイトをお教えいただきまして有難うございました。 これを機にもっと知識を深めさせていただくよう努力いたします。

関連するQ&A