こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

attachMovieで表示した複数のMCが一瞬ずつしか表示されません

attachMovieでMCを複数表示しているのですが、
ランダムに表示したMCが一瞬ずつしか表示されません。

やりたいことは、aaaというMCが横位置と大きさがランダムで表示され、
下にまっすぐ落ちるという動きです。

こちらの記事を参考に作成しました。
http://oshiete1.goo.ne.jp/qa2500105.html

--------------------------------------
// 深度の初期値を設定
var dep = 0;
// 大きくなる限度を設定
var mag = 80;

_root.dep++;

_root.attachMovie("aaa", "myMC"+_root.dep, _root.dep);

//座標を指定
_root["myMC"+_root.dep]._x = Math.random()*Stage.width;

//下に落ちていく
_root["myMC"+_root.dep]._y += 10;

// 大きさを指定
var my_scale = Math.random()*_root.mag;
_root["myMC"+_root.dep]._xscale = my_scale;
_root["myMC"+_root.dep]._yscale = my_scale;
--------------------------------------

ランダムに表示はできるのですが、すばやく消えて、すぐに次のMCが
表示されてしまいます。
同じ深度に表示されているように見えますが、 _root.dep++; で
深度は変わっているはずなんですが…。

ちなみに stop(); を入れたらひとつだけ表示されましたが
下に落ちていきませんでした…。

どうぞよろしくお願いいたします。

投稿日時 - 2008-02-13 15:20:19

QNo.3772102

困ってます

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

maxVolumeの値を調整することで量を変えることが出来ます。
もっとたくさん降らすこともできますが、
どの程度たくさんなのか解らなかったので、
まぁこの程度かと・・・

// 深度の初期値を設定
var dep = 0;
// 大きくなる限度を設定
var mag = 80;

//降ってくるインスタンスの量 1が最大量。 数が増えていくごとに量が減っていきます
var maxVolume = 5;


var count = 0;
this.onEnterFrame = function() {
if (count%maxVolume == 0) {
_root.dep++;
_root.attachMovie("aaa","myMC"+_root.dep,_root.dep);
_root["myMC"+_root.dep]._y = -mag;
//座標を指定
_root["myMC"+_root.dep]._x = Math.random()*Stage.width;
// 大きさを指定
var my_scale = Math.random()*_root.mag;
_root["myMC"+_root.dep]._xscale = my_scale;
_root["myMC"+_root.dep]._yscale = my_scale;

_root["myMC"+_root.dep].onEnterFrame = function() {
if (this._y<Stage.height) {

//下に落ちていく
this._y += 10;
} else {
delete this;
this.removeMovieClip();
}
};
}
count++;
if (count > 1000000) {
count = 1;
}
};

投稿日時 - 2008-02-14 16:44:29

お礼

ありがとうございます!できました。
降る量もちょうどいい感じです。

理解できるように頑張って勉強していきます。
本当にどうもありがとうございました。

投稿日時 - 2008-02-14 18:16:28

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

参考にされた記事を確認していませんが、
以下の方法でいかがでしょうか?

下記スクリプトを1フレーム目に記入
------------------------------------

// 深度の初期値を設定
var dep = 0;
// 大きくなる限度を設定
var mag = 80;

this.onEnterFrame = function () {

if (_root["myMC"+_root.dep]._y > Stage.height || !dep) {
_root.dep++;
_root.attachMovie("aaa", "myMC"+_root.dep, _root.dep);

//座標を指定
_root["myMC"+_root.dep]._x = Math.random()*Stage.width;
// 大きさを指定
var my_scale = Math.random()*_root.mag;
_root["myMC"+_root.dep]._xscale = my_scale;
_root["myMC"+_root.dep]._yscale = my_scale;
}

//下に落ちていく
_root["myMC"+_root.dep]._y += 10;
}

投稿日時 - 2008-02-14 11:55:37

お礼

どうもありがとうございます!できました!
が、じつはMCがたくさん降ってくる感じにしたいのです。
今の状態だと一つのMCが一番下まで行くと、次のMCが表示されるのですが、
同時に複数のMCを表示させることはできないでしょうか?
どうぞよろしくお願いいたします。

投稿日時 - 2008-02-14 15:31:19

あなたにオススメの質問