- 締切済み
外部swfからコントロール
外部swfを読み込んで、その中のボタンから、親すなわち_rootのタイムラインを動かしたいのですが、可能でしょうか?どういった方法があるのでしょうか?よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
普通に, loadMovie("外部.swf","ターゲットMC"); もしくは, ターゲットMC.loadMovie("外部.swf"); で外部.swfをロードした場合, 通常は, _root.gotoAndPlay(フレーム数); で良いのではないでしょうか? _lockroot をしてしまっている場合はしょうがないので相対パスで, _parent.gotoAndPlay(フレーム数); でしょうね。 参考URL: 「_lockroot (MovieClip._lockroot プロパティ)」 http://livedocs.macromedia.com/flash/8_jp/main/00002482.html ------------------------------------ そうではなく,もし, loadMovieNum("外部.swf",1); などで,ムービークリップではなく, _level(レベル) の読み込んだ場合は _root.gotoAndPlay(フレーム数); と書いた場合,この _root は _level1 の _root を指してしまいますから,_root も _parent も使えないので,同様にレベル指定で, _level0.gotoAndPlay(フレーム数); となります。 勝手な推測ですが _level1 などに読み込んでいらっしゃるので, ややこしくなるのではないでしょうか? もし,_level1 などに読み込んでいらっしゃるのならの話ですけど, _level なんて,そうとう使い慣れていないと使えませんし, また,使い慣れたからと言って,_level に読み込む物でもありません。 すごく変わったときに(どんなときかは出会ったことがない),使う特殊なものと考えられた方が良いと思います(私は)。 参考URL ムービークリップインスタンスの参照 http://oshige.com/flash/note/archives/2005/02/post_12.html ~上記URLより引用~ ■_level loadMovieNum()アクションを使うことで、現在のムービーに 別のswfを読み込んで重ねて表示することができます。 このときのムービーの重なりを_levelで示します。 …中略… _rootは各レベルのタイムラインを参照しています。 したがって通常は_rootと_level0は同じです。 しかし、実際には複数のムービーを重ねて表示しているとき、 それぞれの_levelに_rootがあります。