• 締切済み

ランダム配置のムービークリップが固定配置のムービーに被ってしまいます。

背景にランダムで星を無数に配置して瞬かせ、その上にキャラクターのムービークリップを配置しているのですが、星のレイヤーよりキャラのレイヤーを上にもってきても、星がキャラクターに被って表示されてしまいます。星の方のムービークリップに、 n=Math.round(Math.random()*1000); this.swapDepths(n); 以上の様にスクリプトで深度の設定をランダムに設定しているのですが、キャラクターの方にはどのように設定したら星が被らない様に深度の設定ができるのかわかりません。どうかよろしくお願い致します。

  • bed
  • お礼率40% (12/30)
  • Flash
  • 回答数1
  • ありがとう数1

みんなの回答

回答No.1

ムービークリップやボタン以外は自動的に 深度0にまとめられちゃうらしいです なのでキャラクターもムービークリップにするなりして 読み込み時に深度1000以上に配置しちゃう っていうやり方しかないんじゃないかと思われます

bed
質問者

補足

ご回答ありがとうございます。 キャラクターはムービークリップにすでに変換してあるのですが、深度を1000以上にする際の、スクリプトの書き方がいまいちわかりません。どのようにすれば1000以上に設定できるのでしょうか?私の、質問の説明が不十分でした。申し訳ありませんが、どうかよろしくお願いいたします。

関連するQ&A

  • ムービークリップ(以下mc)を複製したときの深度の設定で困っています。

    ムービークリップ(以下mc)を複製したときの深度の設定で困っています。 使用ソフト:Adobe Flash CS4 professional flashのバージョン:flashlite1.1 duplicateMovieClip(コピー元mc名,新mc名,深度(例えば10など)); と書いてmcの複製はしっかりできているのですが、深度を「レイヤー内で一番上」に設定したいのですが、どう設定していいかわからず困っています。 通常、レイヤーが3つある場合、重ね順で言うと一番上のレイヤーが最前面に、一番下のレイヤーが最背面に設定されています。 そこで、一番下のレイヤーに上記プログラムを書いて一番下のレイヤーにmcを複製したいのですが、複製したmcは一番上のレイヤーよりも最前面に配置されてしまうのです。 duplicateMovieClipを書いているレイヤー内で最上位に配置したい場合、深度にどのような設定をすればいいか教えてください。

  • ムービークリップを特定の組み合わせでランダム再生

    Adobe Flash Pro CS6 でAction Script 3を使っています。 今現在複数あるループムービーを特定の組み合わせでランダム再生する方法を考えています。 使用するムービークリップの数は全部で5つです。 mcA,mcB,mcC,mcD,mcEと5つあります。クリップの再生時間はmcDのみが20フレームでほかはすべて10フレームです。これらのムービークリップをある程度のランダム性を持たせて特定の順番で再生したいのです。特定の順番は以下のとおりです。 mcA - mcB mcA - mcB - mcB mcC - mcD - mcE mcC - mcD - mcD - mcE mcC - mcD - mcD - mcD - mcE この四通りの再生方法でムービークリップをランダムで再生し続けたいのです。 それぞれのクリップはループになっているのでmcBからmcA or mcC、mcEからmcA or mcCに繋がってもシームレスに再生し続けられる感じになっています。 どういった方法を用いるのが最善でしょうか? 今現在一つのレイヤーに (mcA - mcB)( mcA - mcB - mcB )(mcC - mcD - mcE)(mcC - mcD - mcD - mcE)(mcC - mcD - mcD - mcD - mcE) と言った感じにすべてのムービークリップを再生する順番に配置して、それぞれの区切りでフレームラベルを用意して、配列にフレームラベルをすべて入れて、その配列とMath.randomを組み合わせてフレームラベルをランダムで選び、再生位置を飛ばして再生し続けていますが、これだとレイヤーの管理がしにくいのでいまいちしっくりきません。

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

    いつもありがとうございます。ミニゲームを作っていてswapDepthsで困っています。衝突の間、ムービークリップを再前面に持って来て、そうでない時は障害物の後ろにしたいのですが、障害物のムービークリップにswapDepthsを入れ、メインムービークリップを動作させるボタンにも起き上がった時にレイヤーを入れ替えるswapDepthsをいれましたが、深度の数字で指定するとリプレイした時に新しくできたレイヤーが残ってしまいます。ムービークリップのインスタンス名の指定では、ボタンを押すたびに変わってしまいます。一度、深度を指定して移動したレイヤーを元に戻すやり方はないでしょうか?深度の数字の求め方もよく、わかりません。

    • ベストアンサー
    • Flash
  • ムービークリップ内のボタン

    MacOS10.2、FlashMXを使っています。 4つのムービークリップ(m_1、m_2、m_3、m_4)が下記スクリプトでコントロールされるように設定しました。 やりたいことは、ひとつひとつのムービークリップ内にボタンを設定し、クリックすると外部swfをstageに読み込むようにしたいのです。ムービークリップ内にボタンを設置しても動かないし、メインフレーム内に透明アイコンで on (release) { loadMovie ("●●.swf", "stage"); } を設定すると、4つのムービークリップが表示されたまま、●●.swfが表示されてしまいます。(stageムービークリップはフレームの一番上に設置しています) ●●.swfが読み込まれた時、4つのムービークリップが表示されないようにするにはどうすればよいでしょうか? よろしくお願いいたします。 メインフレーム内のスクリプト gdepth = 4; m_1.depth = 4; m_2.depth = 3; m_3.depth = 2; m_4.depth = 1; theArray = [m_1, m_2, m_3, m_4]; function turn() { theArray.sort(ncheck); function ncheck(a, b) { num1 = a.depth; num2 = b.depth; if (num1<num2) { return 1; } else if (num1>num2) { return -1; } else { return 0; } } trace(theArray) } function construction() { theArray[0].ta = 90; theArray[0].ts = 100; theArray[0].tr = 0; theArray[0].swapDepths(4); theArray[1].ta = 60; theArray[1].ts = 80; theArray[1].tr = 15; theArray[1].swapDepths(3); theArray[2].ta = 40; theArray[2].ts = 75; theArray[2].tr = 30; theArray[2].swapDepths(2); theArray[3].ta = 20; theArray[3].ts = 60; theArray[3].tr = 45; theArray[3].swapDepths(1); }

    • ベストアンサー
    • Flash
  • 7秒後にフレーム5へ移動してムービークリップを再生

    はじめまして。 FLASH初心者です。 レイヤー1~5の5フレームごとにムービークリップを配置しています。 レイヤー1の1フレーム目に配置してあるムービークリップが再生されて、7秒後にレイヤー2の5フレーム目に配置してあるムービークリップを再生し、(レイヤー3~5も同様に…)レイヤー5に配置してあるムービークリップの再生が終わったら、また7秒後にレイヤー1のムービークリップが再生される…といったように繰り返すにはどのようなActionScriptにすればよいのでしょう? 色々、試行錯誤したのですがうまくいきません。 どなたか教えて頂けませんか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • ムービークリップの深度変更

    タイムラインの同じフレーム上に 1~10(10個)のムービークリップを配置し、 1のムービークリップの再生が終わったら、 2のムービークリップが一番上に来て再生が始まり、 2の再生が終わったら、3が一番上に来て再生が始まる、 (10が終わったら1へ戻るループ)という流れのムービーを作成したいと考えています。 ムービークリップ再生終了後、自動的に深度を変える 方法がわからずご質問させて頂きますが、 可能でしょうか? 以下のサイトのような動きをさせたいと思っております。 http://www.tipness.co.jp/ よろしくお願い致します。

    • ベストアンサー
    • Flash
  • Flash8 ムービークリップをランダムに表示(更新する度に順番を変更)

    他の質問を確認させて頂いたのですが「更新する度に順番を変更」という部分で行き詰まり、今回質問させて頂きました。色々と調べたのですが、同じ質問が存在していたら申し訳ございません。 今回FLASHの作成で、1つのSWF内で3つのムービークリップ(mc_01、mc_02、mc_03)をランダムな順番で表示させたいというものです。ランダムに表示させるまでは、何とか行き着いたのですが、行き詰まったのは「更新の度に前回と順番が重複しない」ということです。 現在の状況は、下記の通りです。 mainというムービークリップに3つのムービークリップ(mc_01、mc_02、mc_03)をランダムに表示。 スクリプトは、下記の通りです。 var a = Math.floor(Math.random()*3)+1; main.attachMovie(["mc"+a], "mc", 0); 現状だと、更新する度にランダムに表示されますが、更新を押した際に、先頭が前回と同じムービークリップになってしまうことがあります。 (一回目の更新:mc_02 → mc_01 → mc_03) (二回目に更新:mc_02 → mc_03 → mc_01) この並びをアクションスクリプトで変えることは可能なのでしょうか?可能だとすれば、どのようなスクリプトを記述、もしくは参考にすれば良いでしょうか? 初心者な質問で申し訳ございませんが、宜しければどなたかご回答のほど宜しくお願い致します。

  • 特定のムービークリップの上で キラキラがランダムに発生

    お世話になります。 あともう少しのところでうまくいきません。 質問はタイトルの通りなんです。本や、サンプルをいろいろ研究して、 キラキラがランダムに発生するスクリプトを書いたんです。 何がしたいかというと、ムービークリップ「mc_stage」の上だけにキラキラをランダムに発生させたいんです。 sw = mc_stage._width; sh = mc_stage._height; level = 1; this.onEnterFrame = function() { if (Math.random()*10>9) { level++; newname = "Fwks"+level; Fwks.duplicateMovieClip(newname, level); this[newname]._x = Math.random()*sw; this[newname]._y = Math.random()*sh; } if (level>8) { this.onEnterFrame = undifined; } }; この形だと、mc_stageの幅と高さを取得するだけで、座標を取得していません。なので、ステージの左上からmc_stageのwidthとheightの範囲できらきらが発生してしまいます。 どうしたらきちんとmc_stageの上だけでランダムに発生させれますか?ぜひおしえてください!

    • ベストアンサー
    • Flash
  • ムービークリップ再生後次のフレームへ移動しません

    アクションスクリプトを使って、テキストが下から上へ流れるようにムービークリップを再生し、テキストが流れ終わったところで次のフレームへ移動させたいのですが、フレームが移動せず困っています。 スクリプトは色々なところで調べて、やっとの事で下記のように書きました。 使用しているのはFlash MX 2004 です。 |○  □|○|  ←1.スクリプトレイヤー |●    □|  ←2.ムービークリップレイヤー |○|●→|●|  ←3.ムービークリップ後に再生したいレイヤー 1.のスクリプト(2つのキーフレームいずれとも) stop(); 2.のムービークリップのスクリプト onClipEvent (load) { spd =5; onClipEvent (enterFrame) { this._y = this._y-spd; if (this._y<=-10) { spd = 0; gotoAndPlay(2); } } 知り合いにお見舞いのメッセージをと思って作ったのですが、送ることが出来なくてとてもあせっています。 どうぞよろしくお願いします。

    • ベストアンサー
    • Flash
  • ムービークリップの入れ子

    Flash CS3の初心者です。ムービークリップの入れ子を使用した際、こちらが思うようにフレーム処理をしてくれません。 "TOP"と名前をつけた1つのシーンに「アクションスクリプト」、「画像」、「テキスト」の3つのレイヤーを準備し、「画像」レイヤーには入れ子になったムービークリップを挿入しています。 入れ子のムービークリップに仕込んだモーショントゥイーンが終わってからテキストを表示する処理をしてほしいのですがうまくいかず困っています。 <作業内容> (1)画像レイヤーにはモーショントゥイーンを仕込んだムービークリップを1フレーム目から挿入しています。(作業場所:TOP/) (2)順序付けのためテキストレイヤーは1フレーム目は空白にし、2フレーム目から挿入しています。(作業場所:TOP/) (3)アクションスクリプトのレイヤーには1フレーム目と2フレーム目にはそれぞれ以下の記入をしています。(作業場所:TOP/)  this.stop(); (4)画像レイヤーに挿入したムービークリップでは、入れ子のムービークリップのレイヤーの他にアクションスクリプトのレイヤーを設け、その最終フレームでは"this.stop();"、"gotoAndPlay(2,"TOP");"と記入しています。(作業場所:TOP/画像ムービークリップ) <問題> (1)~(4)でムービープレビューを実行すると、入れ子にしたムービークリップのモーショントゥイーンは最後までうまくいきますが、(4)の"gotoAndPlay(2,"TOP");"がエラーとなり、「ArgumentError: Error #2108: シーン TOP が見つかりません。・・・」となってしまいます。 シーン名はウィンドウのシーンパネルで確かにTOPに変更しています。ちなみに"TOP"をthis.parentに変更して実行すると、3つのレイヤーの処理が同時にスタートしてしまいます。 最初に記載した動作の実現方法や参考HPについてご教授頂けると大変助かります。よろしくお願いします。

    • ベストアンサー
    • Flash

専門家に質問してみよう