海外旅行から帰ってきたら、まず何を食べる?

はじめまして、よろしくお願いします。

表題の通りですが、
ボタンをロールオーバーした時にMCを複製したいのですが、やり方がわかりません。
body(←ボタン名)を押した時に snow(←複製されるMC名)を噴射するような形にしたいです。

フレーム1に書かれたスクリプト-------------------
for (count = 1;count<30;count ++) {
snow.duplicateMovieClip("snow" + count , count );

}
-----------------------------------------------

複製されるMC(snow)----------------------------------
onClipEvent(load){
xposition = _root.body._x+75;
yposition = _root.body._y+75;
scale = Math.random()*30+10;
speedx = 12-(scale+Math.random()*30+1)/5;
speedy = 12-scale/5;

this._x = xposition;
this._y = yposition;
this._xscale = scale;
this._yscale = scale;
}
onClipEvent (enterFrame){
if(this._y>400){
this._y=yposition;
this._x=_root.body._x+75;
this._alpha = 100;
}
this._x+=speedx;
this._y+=speedy;
this._alpha = this._alpha-5;
}
-----------------------------------------------

早急に解決しなくてはならなく、困っています。
よろしくお願いします。

A 回答 (2件)

#1です。



クリック時ではなくてロールオーバー時でしたね。失礼しました。

ロールアウトで消すのでしたら,
たとえば次のようにするとかが1つの方法です。

-----------------------------------
body.onRollOver = function() {
for (count=1; count<30; count++) {
snow.duplicateMovieClip("snow"+count, count);
}
};

body.onRollOut = body.onDragOut = function() {
for (count=1; count<30; count++) {
removeMovieClip("snow" + count);
}
};
-----------------------------------

または

-----------------------------------
body.onRollOver = function() {
for (count=1; count<30; count++) {
snow.duplicateMovieClip("snow"+count, count);
}
};

body.onRollOut = body.onDragOut = function() {
for (count=1; count<30; count++) {
_root["snow" + count].removeMovieClip();
}
};
-----------------------------------

Google 検索「配列アクセス演算子」
http://www.google.co.jp/search?hl=ja&source=hp&q …
    • good
    • 0
この回答へのお礼

教えていただいたもので無事再現できました。
ありがとうございました。
この件以外でも試行錯誤の部分があるので、
もしまた質問することがありましたらよろしくお願いします。
大変ありがとうございました。

お礼日時:2010/02/15 09:41

早急ということで手短に。



単にフレームに書くスクリプトを次のようにすれば良いのではないでしょうか?

// body というインスタンス名のボタンをクリックしたとき
body.onRelease = function() {
for (count=1; count<30; count++) {
snow.duplicateMovieClip("snow"+count, count);
}
};

※ Flash Player 6 以上用の SWF をパブリッシュ
  ActionScript 1.0

この回答への補足

お返事ありがとうございます。
早速試してみたところ、問題なく動きました…が、
すみません、もう一つ教えてください。
ロールアウトした時に、複製をとめる、とういか、
複製しているmc自体を削除、または見えなくするにはどうしたらいいですか?
教えていただいたソースを元に下記のとおり試してみたのですが、動作しません。
フラッシュのスクリプトに慣れていないので変な書き方になっているかもしれませんが…
よろしくお願いします。



フレーム1---------------------------------
body.onRollOver = function() {
for (count=1; count<30; count++) {
snow.duplicateMovieClip("snow"+count, count);
}
}
body.onRollOut = function() {
for( i=1;i<30;i++){
var s = "snow" + String(i);
s.removeMovieClip();
}
}
-------------------------------------------------

補足日時:2010/02/14 21:33
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!