• 締切済み

FlashMXでattachMovieを_rootに複数セット

お世話になります。 早速質問ですが、 ムービクリップを2つ作成しました。 それぞれ、a,bと名づけました。 識別子も同じ、a,bとしました。 これを、メインの1フレーム目の同じ レイヤに、 obj1=_root.attachMovie('a','a1',2); obj2=_root.attachMovie('b','b1',2); と書いたのですが、 obj2 しか、再生されないように見えます。 obj1の後に、obj2を動かしたいのですが、 どのようにすれば、良いのでしょうか? よろしくお願いいたします

みんなの回答

noname#35109
noname#35109
回答No.1

同じ深度に attachMovie しているからでしょう。 同じ階層であれば(_root なら _root であれば), 1つの深度に1つのインスタンスしか配置できませんから, 前の物が自動的に消去されます。 また, a と b が重なって見えないという場合もあるかもしれませんから, 念のため座標もずらしてみたのが次のスクリプトです。 --------------------------------- obj1 = _root.attachMovie("a", "a1", 1); obj2 = _root.attachMovie("b", "b1", 2); obj1._y = 50; obj2._y = 150; --------------------------------- このような感じにすればうまく行くと思います。 attachMovie("リンケージの識別子","インスタンス名",深度) です。 上の場合,a は 深度1 に, b は 深度2 に配置されます。 「第10回 コードからシンボルを呼び出す」 http://itpro.nikkeibp.co.jp/article/COLUMN/20060217/229694/ > 深度は−16384から1048575の整数で指定し, > 深度の値が大きいオブジェクトほど前面に表示されます。 > レイヤーに似ていますが, > 一つの深度には一つのオブジェクトしか配置できません。 > 同じ深度に新しいオブジェクトを配置すると, > 以前配置されたオブジェクトは上書き消去されます。 「発射台から弾を連続発射」 http://www.microworlds.jp/logo1/game1/fgame1/hassya/hassya.html > 連続して発射すると、 > 弾の深度が同じ深度(nの数が同じ)にattachMovieされて、 > 先に発射された弾が消えてしまう。 また,深度に関しては, 次のURLが参考になると思います。 「深度について」 http://hakuhin.hp.infoseek.co.jp/main/as/z.html

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

関連するQ&A

  • attachMovieがうまくいかなくて困ってます

    はじめに、ミサイルのイメージが飛んでいく"MC"というムービークリップを作成して、それを onClipEvent (mouseDown){    _root.attachMovie("MC","MC",1); } でレイヤー上に作成すると、MCのモーションが1フレーム目を飛び越えて2フレーム目から始まってしまいます。 MCは10フレームで終わり、繰り返し再生されるのですが2週目からはきちんと1フレーム目から始まります。 そのせいで、1発目と2発目以降のミサイルの発射位置がずれてしまいます。 どうすれば1発目もきちんと1フレーム目から再生できるのでしょうか? どなたか教えてください。

    • ベストアンサー
    • Flash
  • attachMovieについて(長文)

    長文失礼します。 2DのRPG風に移動するだけのFlashを作っています。 _root上には ・主人公MC[me」 ・マップ用MC「map」 の順番で配置しています。 移動する仕組みとしては、主人公は中央に居て、背景が移動する事で移動しているように見せる方法です。 マップ用MCは30×30の二次元配列(マス)で構成されています。 それぞれのマスには数値が入っており、チップMC「chip」の再生フレームを指定しています。 これにより、チップの再生フレームを変えて、草や道、崖などを表現します。 そして、メインタイムラインに二重のfor文でそれぞれを配置していきます。 このとき、attachMovieを用いてライブラリにあるチップMC「chip」をマップMC「map」内に配置したいのですが、画面は真っ白なままで、主人公だけが表示されている状態です。 リンゲージウィンドウの識別子も「chip」になっていて、深度も重複しないようにしています。 出来れば、この現象の原因と思われる部分を教えて頂きたく、質問をさせていただきました。 文章から原因を突き止めるのは困難なので、attachMovieを扱う際に注意すべき点をアドバイスして頂いても助かります。 アドバイスおよび回答、よろしくお願いします。 (補足も分かる範囲でさせて頂きます。)

    • ベストアンサー
    • Flash
  • Flash タイムライン上のMCへの移動

    おたずねします。 タイムラインの5フレームにあるムービクリップAを再生後、 タイムラインの2フレームにあるムービクリップBの 特定のフレームへ移動したいのですが、 パスの指定がうまいきません。 2フレームへの移動は _root.gotoAndPlay("2フレームのラベル名")で 移動できますが、そこに配置されたムービークリップの指定は どうすればいいのでしょうか。 _parentやthisを使用した 絶対パスや相対パスを調べましたが、どうもこの指定は 同フレーム上にある場合の指定のようなのかうまくいきませんでした。 それともこのような移動はできないのでしょうか。 教えていただけると大変助かります。 どうぞよろしくお願いいたします。

  • 外部テキストが複数のインスタンスに読み込まれない?

    質問させてください。 ボタンをクリックしたときに指定されたフレームへ飛び、MCが動き、 そのMC内で外部テキストを読みこみ、 それぞれ設置した2つのダイナミックテキストへ文を読み込ませるという構想になっております。 (以下階層です) シーン1 b(mc)フレーム1        L・背景 フレーム1          ・ダミーボタン1フレーム1 ASレイヤーに this.stop();          ・ダミーボタン2フレーム1 ASレイヤーに this.stop();          ・パネル/a(mc) フレーム2 (AS) ダミーボタン1 インスタンス名btn1 on (release) { _root.b.gotoAndStop(2); _root.b.a.t1.htmlText = _root.b.a.text1; _root.b.a.m1.htmlText = _root.b.a.text1_a; } ダミーボタン2 インスタンス名btn2 on(release){ _root.b.gotoAndStop(2); _root.b.a.t1.htmlText = _root.b.a.text2; _root.b.a.m1.htmlText = _root.b.a.text2_a; } パネル、a(mc)部分に onClipEvent (load) { System.useCodepage = true; this.loadVariables("sample.txt"); trace("loading"); } onClipEvent (data) { trace("完了"); } パネル内 ダイナミックテキスト(インスタンス名:t1 フレーム5 ダイナミックテキスト(インスタンス名:m1 フレーム5 (AS) 5フレーム目にthis.stop(); 外部テキスト内 sample.txt 文はファイルと同じところにあります。 &text1=</u>AAA</u>& (あえて今は全角にしてあります) &text1_a=</u>aaa</u>& &text2=</u>BBB</u>& &text2_a=</u>bbb</u>& ------------------------------------- 出来ているのはb(mc)内ダミーボタンを押すとフレーム2に飛び、 フレーム2に配置されているパネルa(mc)の中のダイナミックテキストのあるフレーム5で止まる、というところまでです。 困っているのは b(mc)内、フレーム2のa(mc)部分でtraceするとloadingは出ているので読み込まれてはいると思うのです。 しかしムービープレビューすると文のほうは何も表示されずでして…パスがあってないのでしょうか…。 パネル内のダイナミックテキストに表示させるに当たりどこが違うか、 長々と恐縮ですがご教授願います。 環境はWinXP、Flash8 proです。

    • ベストアンサー
    • Flash
  • actionscript2.0でMCの切り替えなど

    Flash初心者で勉強中の身なのですがどうか質問させてください。 根本的に間違っていたりできないことをやろうとしていたら申し訳ないです。。 その際にはこう改変した方がいいとのご指示をご教示頂きたいです。よろしくお願いいたします。 attachMovieを使ってライブラリ内のMCをステージに呼び出し、そのMCを押す度にそのMCを切り替えたいと考えています。 ライブラリにはa1,a2,,,a5、b1,b2,,,,b5,c1,d1,e1…という識別子をつけたMCを用意しています。 a-eの横幅は80×80です。 20ずつ間を空けて○1のMCを横一列に配置しました。 _root.attachMovie("a1", "a1",1, {_x: 100, _y: 100}); _root.attachMovie("b1", "b1",1, {_x: 200, _y: 100}); _root.attachMovie("c1", "c1",1, {_x: 300, _y: 100}); _root.attachMovie("d1", "d1",1, {_x: 400, _y: 100}); _root.attachMovie("e1", "e1",1, {_x: 500, _y: 100}); このMCを押すと、MCが数字の大きいものに切り替わる(b1を押すとb2のMCに…で5まで)ようにしたいので、 ひとつひとつを下記のscriptで記述しました。 _root.attachMovie("b1", "b1",1, {_x: 200, _y: 100}); b1.onPress=function(){ b1.removeMovieClip(); _root.attachMovie("b2", "b2",1, {_x: 200, _y: 100}); b2.onPress=function(){ b2.removeMovieClip(); _root.attachMovie("b3", "b3",1, {_x: 200, _y: 100}); b3.onPress=function(){ b3.removeMovieClip(); _root.attachMovie("b4", "b4",1, {_x: 200, _y: 100}); b4.onPress=function(){ b4.removeMovieClip(); _root.attachMovie("b5", "b5",1, {_x: 200, _y: 100});}}}} これをa-e同じことを繰り返しています。 ここからが問題なのですが、 ここで例えば a2,b5,c1,d3,e1 という風に適当に押されてMCが切り替わり、整列させるボタンが押された時、 その数字を参照して 縦に20pxずつ空けながら b5 (空行/4があった場合の行) d3 a2 c1(20pxの空白)e1 と並べ替えたいと思っています。 つまり、a-eが現在どの数字(○1,○2..)なのかを調べ、その数字の若い方から順に縦に配置させたいと考えています。 また、上のc1,e1のように1の数字のMCが2つ以上あった場合は、同じ行に20pxずつ空けて横に配置していきたいのです。 その調べた数字の順に縦と横に並べ替える(新たにステージ上に配置し直す)というルール付けをどういうscriptを書けば上手く行くかが自分ではどうにも分からず、ここから進めない状態です。。 誰がどんな回数押したとしてもそれに準じた整列をして欲しいのですが、そのやり方があるようでしたらどうかご教示頂きたいです。 また、上記の私の書き方では難しいようでしたらそこから改変したものをお教え願いたいです。 分からないことばかりで申し訳ないのですが、何卒よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 【複数の音声】スタート&ストップ

    前にも似たような質問してますが 簡潔にソースのどこが悪いか教えてください。 音を複数出せるように 2種類の再生ボタンを用意します。 ストップボタンも同じように用意します。 ストップボタンを押すと 対応した音が消えるようにしたいのですが どうしたらよいでしょうか? 作成したこと。 1フレームに下記のASを挿入。 //サウンド・クラスのインスタンスを生成 _root.a.bgm01 = new Sound(bgm01); _root.b.bgm02 = new Sound(bgm02); MCを2つ作成。 インスタンスは"a"と"b"を用意。 その中にサウンド素材を"a"と"b"に フレーム1に入れる。 イベントはストップの状態。 ボタンに書いたソースはこちら。 ひとつめ↓ on (release) { _root.a.bgm01.attachSound("bgm01"); _root.a.bgm01.start(); } ふたつめ↓ on (release) { _root.b.bgm02.attachSound("bgm02"); _root.b.bgm02.start(); } 停止ボタンには↓ "a" on (release) { _root.a.bgm01.stop(); } "b" on (release) { _root.b.bgm02.stop(); } 作りかけのファイルは 【http://flash-moe.yi.org/bgm/bgm.fla】 質問が終了次第削除します。

    • ベストアンサー
    • Flash
  • 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
  • AS2 attachMovie 外部画像対応に

    AS2 attachMovie 外部画像対応にしたい <やりたいこと> AS2 attachMovieを利用して、複数画像を読み込むサンプルがあるのですが、 これを外部画像読込対応に変更したいです。 <知りたいこと> AS2 attachMovieで、外部画像を読み込む簡単なサンプルコードを 作成していただけないでしょうか? あるいは、下記内容を、どう修正すればよいでしょうか? <現状> ・画像は「image_1」「image_2」「image_3」って感じで、ムービークリップにして、ライブラリへ入れてます。 ・ステージ上に画像は、配置せず、変わりに、ムービークリップのリンケージ識別子を、それぞれ「image_1」「image_2」「image_3」としています、また、「ASに書き出し」「最初のフレームに書き出し」にチェックを入れてます <現状のコード一部> next_bottun.onPress = function() { if (image_maisu>next_i) {//イメージ枚数より選択イメージが少なかったら next_i += 1;//選択イメージを加算 var mc_name = "image_"+next_i;//識別子の名前を変更して change_mc(mc_name, syoki_sokudo);//切り替わり関数に送る } }; function change_mc(mc_name, syoki_sokudo) { i++;//IDを加算して var new_name = "image_"+i;//インスタンス名を設定 var syoki = {_alpha:0, i:i, sokudo:syoki_sokudo};//初期値を設定 _root.main.attachMovie(mc_name, new_name, i, syoki);//mainの中に生成する

  • FlashMX2004で、メインタイムラインで作成したモーショントゥイーンをシンボルにするやりかた

    Flashのメインタイムラインで作成したグラフィック(ムービークリップで作った蝶を、モーションガイドに沿っ舞っているシーン。20フレームで作成)をシンボルにするにはどうすればいいのでしょうか? 全てを選択して、右クリックのシンボルに変換をしても、モーションガイドで作成した線しか選択されなかったりします。 ■メインタイムライン上↓ レイヤー1に、蝶をモーショントゥイーンで20フレーム移動するシーンを作成。(※蝶は別ムービークリップで、2フレームでパタパタと羽ばたくシーンを作成済み) レイヤー2に、モーションガイドを作成。(20フレーム) この全てを選択して、ムービークリップ(シンボル)にしたいのですが、どうすればいいでしょうか? 教えてください。よろしくお願いします。 FlashMX2004 WindowsXP

  • 複数のswfを順番に再生するやり方

    失礼します。 再生時間が長いFlashアニメーションを作成するときアニメーションを分割して作成したほうが編集しやすいと思い、複数のFlashアニメーションを分割して作成してメインのFlashで順番に読み込んで再生するということをしたのですが、 メイン.swf ┣ローディング:loading.swf    ↓ ┣読み込んで1番目再生:no1.swf ↓ ┣読み込んで2番目再生:no2.swf ↓ ┣読み込んで3番目再生:no3.swf ↓ ┗読み込んで4番目再生:no4.swf 終わり 上記のような感じで再生させたいのです。 現在はno1.swf、no2.swf、no3.swfの最後のキーフレームに_root.nextFrame();を記述して、メイン.swfではmovie_spaceという名前のムービークリップを作成して2,3,4,5のフレームのステージに設置し、2,3,4,5のキーフレームに_root.movie_space.loadMovie("no1~4.swf");を記述して連続で再生するように作りました。 できればメイン.swfでこの複数のswfファイルを制御して、読み込んで再生、終わったら次のファイルを再生と順番に連続再生させたいのですがそういう方法ってあるでしょうか? ちなみに作成環境はFlash8 ProでActionScript2.0で作成しています。 よろしくお願いします。

    • ベストアンサー
    • Flash
このQ&Aのポイント
  • モバイルバッテリーからスマホに充電できない問題について
  • 使用しているスマホとモバイルバッテリーを接続しても充電できない理由
  • どのケーブルを使用すればモバイルバッテリーからスマホを充電できるか
回答を見る