• ベストアンサー

幅の異なる複数のムービークリップを等間隔で配置するには

atseの回答

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

for (i = 1; i < 10;; i++) { var A = this.attachMovie ("A" + i,"A" + i,i,{_x:15, _y:15}); // X座標の変更 // iが1の時は変更なしで、それ以外は1つ前に作ったムービークリップ Anの // 座標に An のwidthを足し、更に間隔15を足したX座標にする A._x = i == 1 ? A._x : this["A"+(i-1)]._x + this["A"+(i-1)]._width + 15; }

iroha2008
質問者

お礼

atse様 回答ありがとうございます。見事に希望通りのことができました。教えていただいたスクリプトを、じっくり勉強させていただきます。ありがとうございました。

関連するQ&A

  • センターに配置

    一つのムービークリップに onClipEvent (enterFrame) { xm = (Stage.width-this._width)/2; ym = (Stage.height-this._height)/2; this._x += (xm-this._x)/4; this._y += (ym-this._y)/4; } というアクションシュクリプトを書いています。 ところがです! そのムービークリップに on (release) { gotoAndPlay("01"); } と追記して指定のフレームラベル"01"に飛んでくれましぇん… なぜでしゅか? ムービークリップの中にボタンを入れて on (release) {...を記入したりまたが だめです。 ボタンをウィンドの上下左右センターに配置する方法、 もしくはムービークリップが指定のフレームラベルに行ってくれる方法を教えて下さい!!! もう、うんこしていてドアを開けられたときくらいびっくりしています。いや、苦しんでいます。

  • 外部テキストファイルより座標データを読み込み、ムービークリップを配置し画像を読み込ませる

    たびたびすみません、追記いたします。 外部テキストファイルから座標を読み込み、ムービークリップを作成し、そのムービークリップに座標を割り当て、画像を読み込ませ、さらにそのムービークリップのロールオーバー時に、あらかじめ作成しておいたテキストボックスに店名と簡単な店舗詳細を表示するというスクリプトを組みたいのですが、なかなかうまくいきません。使いどころとしては地図にそれらのムービークリップを配置し、そのランドマーク画像にロールオーバーしたら店舗詳細が現れるといったものを作りたいです。いろいろなサイトや本を参考にしながら下記スクリプトを作成致しましたが、うまくうごきません。たぶんloadMovieの読み込みのタイミングあたりがおかしいのだと思いますが、ムービークリップを新規に作成するときに、フレームアクションで画像の読み込みとその後の処理をどうやって記述したらよいのかがわかりません。まだまだ知識不足なもので、どなたかご教授頂けないでしょうか?よろしく御願い致します。 ↓フレームアクション↓ function makeMC(n) { for (i=1; i<=n; i++) { _root.createEmptyMovieClip("mc"+myLV["name"+i],i); mmLD = new Object(); mmLD.onData = function(LDOK) { if (LDOK) { _root["mc"+myLV["name"+i]].onPress = function() { _root.t_box.text_a.text = this["text_a"+i]; _root.t_box.text_b.text = this["text_b"+i]; }; _root["mc"+myLV["name"+i]].onRelease = _root["mc"+myLV["name"+i]].onReleaseOutside=function () { _root.t_box.text_a.text = ""; _root.t_box.text_b.text = ""; }; } else { trace("イメージファイルのロード失敗"); } mmLD.loadMovie("images/"+i+".jpg"); }; } } myLV = new LoadVars(); myLV.onLoad = function(TEXTOK) { if (TEXTOK) { makeMC(this.mcNum); for (i=1; i<=this.mcNum; i++) { _root["mc"+this["name"+i]]._x = this["x"+i]; _root["mc"+this["name"+i]]._y = this["y"+i]; } } else { trace("テキストファイルのロード失敗"); } }; myLV.load("mcdata.txt"); ↓あらかじめ作成したムービークリップの詳細↓ インスタンス名「t_box」というムービークリップの中に「text_a」「text_b」というダイナミックテキストが入っております。 ↓外部テキストファイル↓ mcNum=10& &name1=1&x1=20&y1=20&text_a1=サンプル店名(1)&text_b1=店の説明(1)& &name2=2&x2=40&y2=40&text_a2=サンプル店名(2)&text_b2=店の説明(2)& &name3=3&x3=60&y3=60&text_a3=サンプル店名(3)&text_b3=店の説明(3)& &name4=4&x4=80&y4=80&text_a4=サンプル店名(4)&text_b4=店の説明(4)& &name5=5&x5=100&y5=100&text_a5=サンプル店名(5)&text_b5=店の説明(5)& &name6=6&x6=120&y6=120&text_a6=サンプル店名(6)&text_b6=店の説明(6)& &name7=7&x7=140&y7=140&text_a7=サンプル店名(7)&text_b7=店の説明(7)& &name8=8&x8=160&y8=160&text_a8=サンプル店名(8)&text_b8=店の説明(8)& &name9=9&x9=180&y9=180&text_a9=サンプル店名(9)&text_b9=店の説明(9)& &name10=10&x10=200&y10=200&text_a10=サンプル店名(10)&text_b10=店の説明(10) どうかよろしく御願い致します。

    • ベストアンサー
    • Flash
  • 複数のムービークリップについて

    毎度すみません。 複数のムービークリップ(以下MC)をステージに時間差でバラバラの位置に登場させたいのですが、最初で行き詰まってしまいましたのでご質問させてください。 5個のMC(1~5)をステージに配置し、インスタンス名をmc1~mc5で振っています。 スクリプトレイヤーに以下の様に記述しています。 ------------ for(i=1;i<5;i++){ var mc = this["mc"+i]; mc.num = i; } mc.num._visible = false; mc.num._alpha = 0; //MCを時間差で任意の位置に表示 var t=0; this.onEnterFrame = function(){ t++; if(t==25){ mc1._visible = true; mc1.onEnterFrame = function(){ this._y = 50; } } if(t==50){ mc2._visible = true; mc2.onEnterFrame = function(){ this._y = 100; } } if(t==75){ mc3._visible = true; mc3.onEnterFrame = function(){ this._y = 150; } } //以降、mc4、mc5は省略 } --------- --------- mc.num._visible = false; mc.num._alpha = 0; --------- の部分で、デフォルト時はmc1~5を非表示にしているつもりが、 最初から表示されてしまいます。 初心者なので、近いフラッシュを見よう見真似で作成しています。 根本的に記述法を間違えておりましたら、恐れ入りますがご指摘ください。 またもっと効率的な方法がありましたら、ご教授いただければ幸いです。 Flash8.0、ActionScript2.0で制作しています。

    • ベストアンサー
    • Flash
  • ムービークリップ内のムービークリップ制御について

    誠に不勉強の段お許しください。 Flashでサイトを製作しているのですが、どうしても分からず投稿させていただきました。 仮に -rootにボタンとAムービークリップ配置しました。 また、Aムービークリップ内の10フレー目にBムービークリップを配置し、Bムービークリップ内にボタンを配置しています。 _rootのボタンからAムービークリップを制御して10フレーム目のBムービークリップを表示はできるのですが、-root上でAムービークリップのBムービークリップ内のボタンでBムービークリップを制御するのにはどうすればよろしいのでしょうか。 なにとぞご教授いただけましたら幸に存じます。

  • AS3 ムービークリップの配置について

    ステージ上に、ムービークリップ mc1 mc2 があるとします。 mc2の24フレーム目の中に、mc3を配置し、mc2の24フレーム目にこんなプログラムを書くとします。 //一秒後に、mc3を移動      mc3.y=260;      mc3.x=MovieClip(parent).mc1.x; すると、mc3の配置は、mc2を基準としたx.y軸で配置されてしまいます。 (すいません。 言葉での説明が難しいです。) 私は、ステージを基準として配置したいのですが、いったいどのように書けばいいですか? ちなみに以下のようにすると私の求めていた結果が得られました。 ステージ上の見えない所に mc3を置いて、mc2の24フレームに      MovieClip(parent).mc3.y=260      MovieClip(parent).mc3.x=mc.x; 正直言葉での説明が難しく、わかりにくいかと思いますが回答よろしくお願いします。

    • ベストアンサー
    • Flash
  • ムービークリップに配置したボタンを作動させるには?

    Flash初心者のものです。 現在、FLASHで簡単な地図を作成しているのですが スクリプトを記述し、オンマウスによるスライド動作を表現したムービークリップ(インスタンス名:mc_sride)の中にボタン(インスタンス名:btn_a)を配置して、そこをクリックすると 地図の座標が移動するというような動きを実現したいのですが、 なかなかうまくいきません。 メインのムービーにボタンだけを配置した場合はうまく作動するのですが、 それを前述したムービークリップの中に配置すると そのボタンがまったく作動しないのです。 マウスが乗っても反応がありません。 相対パスはきちんと記述しているのですが・・・ どうすればうまく作動するようになるのでしょうか? ちなみにmc_srideのスライド動作のスクリプトは onClipEvent (load) { var div:Number = 0.5; var move_to:Number =730 this._x = 730; } onClipEvent (enterFrame) { this._x += (move_to-this._x)*div; } on (rollOver) { this.move_to -=100 } on (rollOut) { this.move_to +=100 } になります。 ボタンをうまく機能させる方法をご存知の方がもしいらっしゃたら、お手数ですがご指南願います。

    • ベストアンサー
    • Flash
  • ムービークリップの階層の問題?

    Flash8を使っています。 質問のタイトルと内容が合致しているのかどうか不安ですが以下のようなことをしようと思っています。  ------------------ | 選択した部品を置く領域choiceMC    ------------------    =================   |  部品を閲覧する領域 buhinMC   |                     ← |  ■   ■   ■   ■   ■    →→   |  部品となるムービークリップ      左右にスクロール   |  インスタンス名はなし   ==================                                →→→次の画面へボタン 部品となるムービークリップが約100個あります。インスタンス名はつけていません。 1画面で表示できないので画面を左右にスクロールして見ることができるようにしました。それがbuhinMCです。 使いたい部品のムービークリップはchoiceMCというムービークリップ上にドラッグアンドドロップをしておきます。 ここまではできているのですが、buhinMCを左右にスクロールをするとchoiceMC上にある部品のムービークリップまでが一緒にスクロールしてしまいます。 choiceMCとヒットした部品のムービークリップは、buhinMCがスクロールした後でも、そのままchoiceMC上に置いておきたいのです。 選択した部品には以下のようなスクリプトが書いてあります。 on (press) { this.startDrag(); } on (release) { this.stopDrag(); if (_root.choiceMC.hitTest(_root._xmouse, _root._ymouse, true)) { my_x = this._x; my_y = this._y; 以下続く これで説明しきれているかどうか分かりませんがどうか教えてください。

    • ベストアンサー
    • Flash
  • ActonScriptでムービークリップの移動

    お世話になります。ActonScriptでムービークリップの移動を考えているのですが記述が悪いためかうまくいきません。 ムービークリップのx座標が300を超えたら this._x -=10 ムービークリップのx座標が0未満になったら this._x +=10 という処理をしたいと思い onClipEvent (enterFrame) { if (_x>300){ var a = 1; } else if (_x<0){ var a = 2; } if (a=1){ this._x -=10; } else if(a=2){ this._x +=10; } } のように記述したのですが、this._x -=10しか認識してくれなくて、一方向にしか進みません。 どうかよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ムービークリップ

    ムービークリップをクリックすることによって、 他のムービークリップの位置を変更できますか? もしくは他のムービークリップの複製はできますか? 今はクリックしたムービークリップ(自分自身)の 複製は出来ています。 on (release) { this.duplicateMovieClip("Photo_big", 0); _root.Photo_big._xscale = 80; _root.Photo_big._yscale = 80; _root.Photo_big._x = 350; _root.Photo_big._y = 200; } ちなみに移動したいムービークリップのインスタンス名は text1です。

    • ベストアンサー
    • Flash
  • ランダム配置のムービークリップが固定配置のムービーに被ってしまいます。

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