root._lockroot解除後の動作について

このQ&Aのポイント
  • root._lockroot解除後の動作について質問します。
  • main.swfに読み込まれたsub.swf内のボタンBT1をクリックすると画像が表示されず、2回目のクリックで表示される現象が起きます。
  • 一度のクリックで画像を表示する方法についてアドバイスをお願いします。
回答を見る
  • ベストアンサー

_root._lockroot解除後の動作について

作業環境 flash CS3 actionscript2 メインのファイル main.swfがあり そのシーン1 レイヤー1 1フレーム目に miseru.mcがあります main.swf起動時にレイヤー2 1フレーム目に読み込むファイル sub.swfがあります sub.swfシーン1 レイヤー1 1フレーム目に ボタンインスタンスBT1と、 フレームアクション _root._lockroot = true; _root.BT1.onRelease = function() { _root._lockroot = false; _root.miseru.loadMovie("yomikomi.swf"); } が設定されています main.swfのmiseru.mcに読み込ませる画像ファイル yomikomi.swf があります。 状況説明 main.swfを立ち上げると sub.swfをrootlockで呼び出すようにしています。   (parentを使えば良いのですがsub.swf内にの多数のパスがありすべてのパスを変更   するのは大変ですし相対パスを調べる方法も分かりません) 呼び込まれた sub.swfの中のボタンBT1をクリックすると rootlookをfalseにして main.swfのmiseru.mcに 画像yomikomi.swfをloadするactionscriptに挑戦しています 現在の問題としては main.swfに読み込んだ sub.swfの中のボタンBT1クリックすると_root._lockroot = false;になりますが 画像が現れません、 もう一度BT1をクリックすると画像が出てきます 2回クリックしないと出てきません。、 たぶん一回目のクリックで _root._lockroot = falseになりますが _root.miseru.loadMovie("yomikomi.swf"); が実行されず(または実行されたのだが出来なかった) 次のクリックでは _root._lockroot = falseになっているので _root.miseru.loadMovie("yomikomi.swf"); がすんなりでき画像yomikomi.swfが現れるようです。 要望としては、 一度のクリックで _root.miseru.loadMovie("yomikomi.swf"); を実行させ画像をload させたいのです。 どなたか良きアドバイスをお願いします

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

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

  • ベストアンサー
  • atse
  • ベストアンサー率83% (36/43)
回答No.1

1.相対パスを使う _root.BT1.onRelease = function() { this._parent._parent.miseru.loadMovie("yomikomi.swf"); }; 2.ロード処理を関数化 _root.BT1.onRelease = function() { _root._lockroot = false; yomikomi(); }; function yomikomi() { _root.miseru.loadMovie("yomikomi.swf"); }

matupo69
質問者

お礼

atseさん まさにビンゴォー!!の回答でした お蔭様で自分のやりたい事ができました、ホント助かりました有難う御座います。

関連するQ&A

  • 外部swfのラベル移動

    FLASH MX2004で作成しています。 main.swf上のload_mcのレベル0に、外部swfのA.swfを読み込んでいます。 #main上のフレーム this.load_mc.loadMovie("A.swf", 0); A.swfが終わると同時に、main.swf上のload_mcのレベル1に、外部swfのB.swfを読み込みます。 #A.swfの最終フレーム stop(); _root.load_mc.loadMovie("B.swf", 1); ここまではできています。 その後、B.swf内のcontentsというMC内のラベルをlabel2に移動させたいのです。 #A.swfの最終フレーム stop(); _root.load_mc.loadMovie("B.swf", 1); _root.load_mc.contents.loadMovie("label2"); これができません。 _root.load_mc.contents.loadMovie("label2"); _root.contents.loadMovie("label2"); _root.load_mc.loadMovie("label2"); load_mc.contents.loadMovie("label2"); contents.loadMovie("label2"); なども試してみましたが、うまくいきません。 わたしの頭ではこれが限界です。 ぜひともお力お貸しください!

  • 画面遷移を等間隔にしたい 

    たびたびの質問ですがよろしくお願いします。win・cs3・as2で作成中です。 http://www.tokyo-eden.com/ このtopページのような、マスクを使った画面が切り替わるflashを作成しております。 それを4パターン(top_01.swf、top_02.swf、top_03.swf、top_04.swf)作って、親のswf(parent.swf)に読み込む形にしています。 ●top_01~04.swfは、レイヤーが6つに分かれており、順番に レイヤー6:AS レイヤー5:画像1のマスク レイヤー4:画像1 レイヤー3:画像2のマスク レイヤー2:画像2 レイヤー1:画像1(onloadで読み込まれるもの) といった感じです。(※image1、実際にはもっとフレーム数が多くなってしまっていますが、わかりやすく短くした画像をのせました) ●parent.swfは、レイヤーを5つに分けており、順番に レイヤー5:AS レイヤー4:top_01.swfを読み込むMC(インスタンス名:mc_01) レイヤー3:top_02.swfを読み込むMC(インスタンス名:mc_02) レイヤー2:top_03.swfを読み込むMC(インスタンス名:mc_03) レイヤー1:top_04.swfを読み込むMC(インスタンス名:mc_04) となっています。(※image2) ★質問 (1)top_01~04.swfの作成の仕方なのですが、レイヤーの順番や配置はもっと効率的な方法がありますか? (2)parent.swfでは、 onLoad = function(){ mc_01.loadMovie("top_01.swf"); mc_02.loadMovie("top_02.swf"); mc_03.loadMovie("top_03.swf"); mc_04.loadMovie("top_04.swf"); } このようなスクリプトしか書けていません。 今回作成したいのは、 1、top_01~04.swfがそれぞれ10フレーム程度の間隔でフェードイン 2、その後、top_01~04.swfが順番に等間隔でマスクによる画面遷移を繰り返す なのですが、1も2も、top_01~04.swf(子)で間隔を調整すると、ものすごいフレーム数になるうえ、だんだん間隔がずれてきてしまいます。 これを、なんとかparentで等間隔に制御する方法はありますか? 以上、わかりにくい質問で申し訳ないですが、よろしくお願いいたします。

  • loadMovieで読み込んだswf

    loadMovie ("**.swf","_root.mc1"); で「**.swf」を読み込んでいますが、「**.swf」の2フレーム目から表示したいのですが、 なかなかうまくいきません。 フレーム指定はどの辺にいれたらいいのでしょうか。 教えてください。

    • ベストアンサー
    • Flash
  • 外部swfのフレームを指定して読み込み

    あるムービークリップ(mc1とします)に外部swf(001.swfとします) を読み込むことはできるのですが、 mc1に001.swfを読み込み、001.swfの50フレーム目から再生ということは可能でしょうか。 いろいろと調べたのですが、どうしてもうまくいきませんでした。 ボタンを作りボタンを押したら読み込み50フレーム目から再生という指示を書いたのですが、、、 on (press) { _root.mc1.loadMovie("top.swf"); _root.mc1.gotoAndPlay(50); } 1フレーム目から再生されてしまいます。

  • 自分自身をunloadmovie

    どなたか教えて下さい。 _root上のMCに外部swfを読み込んだとします。 その読み込まれたswf上にあるボタンを使って、それ自身のswfを他のswfに置き換えるにはどのようにActionScriptを記述すればよいのでようか? ■例■ area_mcという名のMC上に、同じ階層にある01.swfを読み込む。 _root.area_mc.loadmovie("01.swf"); _root.area_mc._lockroot = true; 読み込まれた01.swf上にあるボタンBtnA_btnをクリックして、01.swfを別の02.swfに置き換えたい ↑↑↑↑↑↑↑ これってできるのでしょうか?だとしたら、01.swf内のBtnA_btnにはなんと記述すればよいのでしょう? どなたかお力をお貸し下さい。 よろしくお願い致します。

    • ベストアンサー
    • Flash
  • loadMovieで外部swfの読込みについて

    現在、外部swfを連続で再生させるフラッシュを作成中です。 以下の方法で実現しています。 ------------------------------------------------- 親SWFの_rootに,例えば「loadMC」というインスタンス名のムービークリップを作ります。 このMCは小さくて透明のMCか,中に何も入っていない空のMCが良いと思います。 そして,親SWFのフレームのスクリプトに _root.loadMC.loadMovie("movie1.swf"); と書けば,「loadMC」というインスタンス名のムービークリップに「movie1.swf」が読み込まれます。 またはボタンにスクリプトを書いて,ボタンで読み込みをさせても良いです。 そして,「movie1.swf」の最終フレームに, _root.loadMC.loadMovie("movie2.swf"); と書いておきます。これで同じ「loadMC」に「movie2.swf」が読み込まれます。 同じ所に新たなムービーを読み込むと自動的に前のムービーは unload されるので, unloadMovie(); は必要ありません。 「movie2.swf」の最終フレームには _root.loadMC.loadMovie("movie3.swf"); 「movie3.swf」の最終フレームには _root.loadMC.loadMovie("movie4.swf");   …  … ------------------------------------------------- 作成後のプレビュー又はswfをダブルクリックなどで直接表示させると正常に表示されます。 しかし、HTMLに埋め込むと真っ白な状態でまったく表示されません。 調べているのですが原因がわかりません。 どなたかご教授のほど宜しくお願い致します。

    • ベストアンサー
    • Flash
  • loadMovieについて

    loadMovieについて、ご教授いただきたく書き込みいたします。 フレームから _root.MC_target.loadMovie("opening.swf",101); _root.MC_target._width = 100; と書いて、opening.swfを読み込ませてみたのですが、このようにして読み込ませると、opening.swfが静止した状態で読み込まれるだけで、動いてくれません。 loadMovieを勉強していて、うまくできずに困っています。 (opening.swfを読み込ませて、指定位置に配置して、数秒経ったら読み込んだopeningムービーを、_alpha値を下げて画面上からフェードアウトさせる というムービーを作成したいと思っています。) アドバイスやご指導などをいただけたらと思います。 よろしくお願いいたします。

  • 外部ムービー読込み後 AS が動きません

    どなたかお教え下さい。 _root上のMCに外部swfを読み込んだとします。 その読み込まれたswf上のムービーの途中でASでストップstop();、を 入れて途中で一度とめるようにしてありますが、止まりません。 プログラムの知識がないのでずっと悩んでいます。 よろしくお願いいたします。 ■現状■ set_mcという名のMC上に、同じ階層にある01.swfを読み込む。 現在テスト用に、読み込む側は読込みだけ、読み込まれる01.swfは 10フレーム中の5フレーム目にキーフレームをつくり アクションで this.stop(); とだけ書いてあります 読込み側 _root.set_mc.loadmovie("01.swf"); _root.set_mc._lockroot = true; 読み込まれた01.swfの5フレーム目 this.stop(); ------------------------ 01.swf のみならばちゃんと止まるのですが読み込まれると とまりません。非常に初歩的なことかもしれませんが、 どうかよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • loadMovie()を組み込んだswfファイルをさらに別のswfファイルで読み込みたい。

    ActionScript初心者です。よろしくお願いいたします。 掲題の通りなのですが、外部のjpgファイルをloadMovieで読み込むswfファイルを、さらに別のswfファイルで読み込みしようとすると、jpgが表示されずに困っています。具体的には以下の通りです。 (1)jpgファイルを読み込むswfファイルについて ・ファイル名:「sub_screen.swf」 ・ムービークリップシンボル(インスタンス名"PHOTO_STAGE")に外部のjpgファイルを読み込ませるために、ボタンに以下のスクリプトを記述 "on(release){loadMovie("photo1.jpg",_root.PHOTO_STAGE);}" ・「sub_screen.swf」及び「photo1.jpg」は同一フォルダに保存 (2)sub_screen.swfを読み込むswfファイル ・ファイル名:「main_screen.swf」 ・ムービークリップシンボル(インスタンス名"STAGE")に「sub_screen.swf」を読み込ませるべく、ボタンに以下のスクリプトを記述 "on(release){loadMovie("sub_screen.swf",_root.STAGE);}" ・「main_screen.swf」、「sub_screen.swf」及び「photo1.jpg」は同一フォルダに保存 以上のような条件で「main_screen.swfファイル」を実行すると、jpgファイルだけが表示されません。(sub_screen.swfのボタン等は表示されます。)2重にloadMovieを実行することは不可能なのでしょうか? ご協力をお願いします。

  • 複数の外部SWFの読み込みする場合のサウンド制御について

    1~5.swfが存在し、それらをMain.swfから読み込み順番に再生するようにしています。 Main.swfの1フレーム目に→ stop();_root.seen1.loadMovie("1.swf"); 1.swfの最後に→ _root.nextFrame(); Main.swfの1フレーム目に→ _root.seen2.loadMovie("2.swf"); 2.swfの最後に→ _root.nextFrame(); これを1~5まで同様に設定し5.swfが終わると1.swfが始まりループするように設定し問題なく動いています。 1~5.swfには、それぞれ異なるBGMを設定しています。 ココで質問なのですが、よくあるBGMの「ON/OFFボタン」を作成しサウンドを制御したいのです。 1.swfに「ON/OFFボタン」を作成して「OFF」を選んでも、次の2.swfではまた再生されてしまいますので、「ON/OFFボタン」はMain.swfに設置したいと考えています。 Main.swfに「ON/OFFボタン」を設置して、1~5.swfのサウンドを制御するう方法を教えて下さい。 宜しくお願いします。 補足が必要な場合は言って下さい。

    • ベストアンサー
    • Flash

専門家に質問してみよう