SWFファイルの読み込みとボタンクリックでインスタンスを表示・非表示する方法

このQ&Aのポイント
  • 質問者はSWFファイル内でボタンクリックによってインスタンスが表示される動作を作成したが、他のSWFファイルを読み込むと動作しなくなってしまう問題に遭遇している。
  • _visibleプロパティを使用してインスタンスを表示・非表示にしているが、その方法で問題解決できなかった。
  • リンケージ名を付けてattachMovieメソッドでSWFファイルを読み込む試みも同様の問題が発生した。
回答を見る
  • ベストアンサー

読み込んだswf

「A.swf にB1.swfを読み込み、読み込んだB1.swf内のボタンAをクリックすると、インスタンスAが現れる。もう一度ボタンAを押すとインスタンスが消える。」というものを作りました。ですが、 A.swfにB1.swfを読み込むと、ボタンAをクリックしインスタンスAが現れたり消えたりという動作が全く行われなくなってしまいます。B1.swf単体で開いて見ると動作は全く問題ありません。 インスタンスAの現れたり消えたりというのは、_visibleで行っています。_visibleが問題なのかと思い、リンケージ名を付けてattachMovieで読み込むように作り直して見たりもしたのですが、attachMovieでも同じような感じになってしまいました。 どのようにすれば問題解決できるのか分からずに困っています。 アドバイスやご助言をいただけたらと思います。 よろしくお願いします。

  • Flash
  • 回答数1
  • ありがとう数2

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

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

現物を見るわけにも行きませんから何とも言えませんが。 「A.swf」も「B.swf」もご自身で作成されものであり, なおかつ,同じFlash PlayerのバージョンのSWFにパブリッシュされたものであり, なおかつ,同じ言語設定(ActionScript1.0 とか 2.0 とか 3.0 とか)でパブリッシュされたSWFであるとするなら, たいていの場合は「ターゲットパスのズレ」が原因だと思います。 「A.swf」に「B.swf」がロードされたとたん, 「B.swf」に書いた「_root」は,「A.swf」の「_root」になりますからね。 「A.swf」中の「B.swf」は SWF ではなく,単なる1つのムービークリップ扱いになります。 お持ちの Flash のバージョンがわかりませんが, Flash MX 2004 以上(MX 2004系,8系,CS3,CS4)をお持ちで, なおかつ Flash Player 7 以上の SWF をパブリッシュしても良いものでしたら, 「B.swf」の _root の フレーム1 の最初の行に, this._lockroot = true; と書けば解決するかもしれません。 Flash CS3 ドキュメンテーション ActionScript 2.0 リファレンスガイド _lockroot (MovieClip._lockroot プロパティ) http://livedocs.adobe.com/flash/9.0_jp/main/00001937.html

goo2408
質問者

お礼

書き込みありがとうございます。 できました。(^0^) 説明不足の部分までフォローいただきありがとうございます。 ありがとうございました。大変助かりました。

関連するQ&A

  • attachMovieで生成したインスタンスを消す方法

    1.現在A.B.C・・・・という名前の多数のボタンがあります 2.それぞれをクリックすると、A1.B1.C1・・・・とそれぞれのインスタンスがZ_mcというムービークリップ内に生成されます。その時にボタンに記述したスクリプト on (press) { Z_mc.attachMovie( "識別子", "A1", 1); } 3.このままですとA.B.C・・・・とボタンをクリックしていくとインスタンスがA1.B1.C1・・・・と同じ場所に生成されるため、重なってしまいます。 どのようにボタンにスクリプトを記載すれば、前に生成されたインスタンスを削除して、新しいインスタンスを生成できるのでしょうか?よろしくお願いします。

    • ベストアンサー
    • Flash
  • 読み込んだ外部SWFが再生されません

    こんにちわ 四苦八苦しながらやってるのですが 解決策がみつかりません(汗 現在ムービークリップの中にボタンを配置しているのですが そのボタンをクリックすると外部SWFを読み込む 仕組みまでできました。 読み込む内容は簡易的なMP3プレイヤーなのですが プレイボタンやストップボタンは正常に現れるものの プレイボタンを押しても再生されないです。。。 MP3プレイヤー自体のSWFを起動するとプレイを押したとき 正常に音楽がながれるのですが 母体のSWF内で読み込んだSWFは正常に動作しません。 ボタンに対してのアクションスクリプトは以下の通りです on (release) {  gotoAndPlay(23);  loadMovie("musicplayer.swf", "musicpoint_mc"); } 問題点がさっぱりわかりません。 アドバイスお願いいたします。 FLASH8 WIN XP使用してます。

    • ベストアンサー
    • Flash
  • SWFをボタンにしたい

    FLASH MX2004を使っているActionScript初心者です。 別に作ったSWFファイルをFLASH作成画面に読み込み、 再生はできたのですが、そのSWFファイルをクリックして ボタンの機能を付けたいのですが、エラーになり、 スクリプトを設定できません。 下記のようなスクリプトはSWFには使用できないのでしょうか。 onClipEvent (mouseDown) {     _root.m01._visible = true;     _root.m01.stop(); } それとも、そもそもSWFにスクリプトを設定することはできないのでしょうか。 いろいろと間違っているかも知れませんが、ご教授ください。 よろしくお願い致します。

    • ベストアンサー
    • Flash
  • 外部swfとして読み込ませると動かなくなる

    下記のようなスクリプトを記したインスタンスをステージに配置し、stop();で止めてあるMC1を同じくステージに配置。 on (release) { _root.MC1.play(); } このままだと問題なく動いてくれるのですが、このswfファイルを別のswf(load.swf)から読み込むとうまく動いてくれません。 なんとなく_rootのあたりに問題があるのかな?と思うのですが、いまいちどう対処してよいものかわかりません。 解決する方法や代案をご存知の方がおられましたら、どうかご教示をよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 外部swfが表示されません

    FLASH初心者です。 いろいろと調べながら、外部swfを取り込んだswfの作成にチャレンジしています。 今連続する外部swf(子swf)を a.swf b.swf c.swf として作成し、それらを表示させるための親swfを下記のように作成しているのですが表示されません。 親swf作成の作業としては 1.a.swfを外部から取り込んで表示させるためにムービークリップを作成 『挿入』⇒『新規シンボル』⇒『新規シンボルの作成』で名前:mc1 タイプ:ムービークリップとしてシンボルを作成。 2.b.swf、c.swfにもムービークリップを作成 1.同様にし、 b.swfのシンボル名を“mc2”、インスタンス名を“mc2” c.swfのシンボル名を“mc3”、インスタンス名を“mc3” 3.シンボル“mc1”の1フレーズ目に loadMovie("a.swf","mc1"); とアクションスクリプトを入力。 4.シンボル“mc2”、シンボル“mc3”も同様にしてそれぞれ loadMovie("b.swf","mc1"); loadMovie("b.swf","mc3"); と入力。 5.ステージ上に新規レイヤー“MC1”・“MC2”・“MC3”を作成。 6.“MC1”レイヤーをタイムライン上の1フレーズ目で『キーフレーム』に変更し、ライブラリから“mc1”をステージ上へドラッグして配置。 7.レイヤー“MC2”・レイヤー“MC3をそれぞれ12フレーズ目、24フレーズ目で同様にキーフレームを作成して“mc2”・“mc3”を配置。 子swf単体では表示されるのですが、上記の親swfはムービープレビューしても何も表示されません。 どのようにすれば子swfが親swfで表示されるようになるのでしょうか。 ちなみに子swfファイル・親swfファイルは全て同じフォルダ内にあります。 環境 OS:WindowsXP アプリケーション:FLASHI MX 7.2 よろしくお願いします。

  • swfファイルのライブラリ読込について

    FLASH初心者です。文章に失礼があったらお許し下さい。 windowsXPでFlashMXを使用しています。  A.swf(1フレーム目にstop();を書いています)  を作成しました。  ボタンを押すと画像が出てくる仕組みです。 これをB.swfで使用するため  ファイル→ライブラリに読み込み を選択して、ムービークリップで読み込み、配置しました。 すると、B.swfを  制御→ムービーのプレビュー を選択すると、A.swfがループ再生されてしまいます。 A.swf単体で再生するとループ再生されず、stop();されています。 書籍を読んでもいまひとつわかりません。 他の方の質問と重複しているのかもしれませんが、いまひとつよくわかりませんでした。 ご教示下さい。

  • 外部swfを重ならないように表示したいです。

    FLASH初心者です。 二つの大小異なるサイズの読み込み用MCを用意して、 並んでいるサムネイルをクリックすると、その読み込み用MCに大きな写真と小さな写真を外部swfで読み込むようにしたいのですが、二つの読み込み用MCが重なっているので、表示が重なってしまいます。 大きい(小さい)写真のサムネイルをクリックすると、読み込み用MCに表示されている小さい(大きい)サイズのswfが消え、なおかつ前面に外部swfを表示する方法を探しています。 サムネイルのボタンインスタンスには、 on (release) { loadMovie ("pic1.swf", "_root.change"); } としています。 読み込み用MCには、change(小さい)、change2(大きい)と名前を付けています。 どなたか知恵を貸してください。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • swf終了後、違うswfに自動で移行したい

    皆様お世話になっております。 以下の件について調べて見ましても、良い回答を見つけられず己の力の無さに悲観しております。 出来ましたら皆様のご意見を伺いたいのです。 よろしくお願いします。 【A.swf】というメニュー画面があります。 そこにあるボタンを押し【B.swf】というファイルをLoadMovieし再生します。 【B.swf】終了後、自動で元の【A.swf】の画面に戻したいのですが【B.swf】が繰り返し再生されてしまいます。 FLASH MX、Win98Seにて作っております。 宜しくお願いします。

    • ベストアンサー
    • Flash
  • 外部swfを読み込んだ際に内容を置き換える方法

    【環境】 Flash8 Windows XP 【質問内容】 _____________ _____________ |      |  |      | |      |  |      | |  a.swf  |  |   b.swf | |      |  |      | | ■■   |  | ■■   | ______________ ______________ a.swfとb.swfがあって、a.swfの■のボタンを押すと、a.swfの内容がb.swfの内容に置き換わるようなものを作りたいと思っています。どう作ったらいいかご教授お願いします。 ※自分ではまずa.swfに画面いっぱいのmain_mcを作り、 ■のボタンを押したら main_mc.loadMovie("b.swf"); で内容を入れ替えられるのかなって思ったんですが、どうもうまくいきません。 どこをどう直せばいいのかわからないので、よろしくお願いします。

    • ベストアンサー
    • Flash
  • ボタンで別swfの任意のフレームに移動したい

    いつもお世話になっています。 WinXPでFlash MX2004を使用しています。 ボタンクリックで別swfの任意のフレーム(ラベル)に移動したいと考えているのですが、可能でしょうか? 具体的にいうと、 01.swf上にボタンA/B/Cを設置。 リンク先の02.swfにフレームラベル「A」「B」「C」があって、01.swfのボタンをクリックすると、02.swfのそれぞれのフレームに移動。 ずいぶん以前にそういった内容の記事をWeb上で見たように思ったのですが、「Flash」「ラベル」「任意」などの単語で検索しても見つけられません。 お心当たりの方がいらしたらどうかご指導ください。

    • ベストアンサー
    • Flash

専門家に質問してみよう