D0811271 ランダムに生成されるMCを15秒で止める
Name sho
Date 2008年11月27日 (木) 12時25分
Message このサイトでいつも勉強させていただいております。

http://hfm-kenchan.com/Lesson/contents/index.htm

上記サイトのように、ランダムに生成されるMCを15秒後に停止させていのですが、その方法がわかりません。

onClipEvent (load) {
speed = 5;
xm = this._x;
ym = this._y;
sm = 100;
rm = 180;
num = 0;
}
onClipEvent (enterFrame) {
Rnd = Math.floor(Math.random()*100);
if (Rnd < 2) {
speed = Math.random()*30+5;
rm = Math.random()*360;
} else if (Rnd < 5) {
xm = Math.random()*460+30;
ym = Math.random()*240+30;
sm = Math.random()*60+40;
rm = 180;
}
this._x += (xm-this._x)/speed;
this._y += (ym-this._y)/speed;
this._xscale = this._yscale += (sm-this._yscale)/speed;
this._rotation += (rm-this._rotation)/speed;
num++;
if (bx != this._x || by != this._y) {
num++;
mcName = "mc"+num;
_parent.kijun.attachMovie("hosi",mcName,num);
_parent.kijun[mcName]._x = bx = this._x;
_parent.kijun[mcName]._y = by = this._y;
_parent.kijun[mcName]._xscale = _parent.kijun[mcName]._yscale = this._yscale;
}
}

上記アクションに追加指定したいのですが、どうすればいいのかわからず困っています。どうぞよろしくお願いいたします。
Response 01
2008年11月27日 (木) 21時31分> joy 
shoさん、

>http://hfm-kenchan.com/Lesson/contents/index.htm

これでは、どのサンプルをおっしゃているのか分かりませんが・・・
Response 02
2008年11月28日 (金) 16時49分> sho 
>joyさん

すみません、間違えてしまいました。

http://hfm-kenchan.com/Lesson/log_qa/D0809176.htm

上記URLの サンプル[ hosi3.fla ]のようにランダムに生成される星を15秒後に停止させたいと思うのですが、どのようにスクリプトを書けばいいのかわからなくて、困っております。
よろしくお願いいたします。
Response 03
2008年11月28日 (金) 22時37分> joy   
一番手軽な方法は、刻まれるフレーム数を利用する方法でしょう。↓の方法がそうです。
但し、精度は、今一なので、精度が重要なら、getTimer();を使った方が良いと思います。
憲ちゃんさんのオリジナルのシーンに、検証用として、ダイナミックテキスト(インスタンス名 sec_txt)を追加してます。

//ここから
onClipEvent (load) {
speed = 5;
xm = this._x;
ym = this._y;
sm = 100;
rm = 180;
num = 0;
Timer = 30*15;//30FPS×15Sec=450Frames経過したら、停止させるタイマー
n = 0;//刻まれるFrame数で、初期値は、0とする
_parent.sec_txt.text = "";//経過時間を表示するダイナミックテキストを、シーンに配置する、インスタンス名 sec_txt
}
onClipEvent (enterFrame) {
n++;//フレーム数をカウント
_parent.sec_txt.text = Math.floor(n/30)+"秒";//経過時間(秒)を表示
Rnd = Math.floor(Math.random()*100);
if (Rnd<2) {
speed = Math.random()*30+5;
rm = Math.random()*360;
} else if (Rnd<5) {
xm = Math.random()*460+30;
ym = Math.random()*240+30;
sm = Math.random()*60+40;
rm = 180;
}
if (n<=Timer) {//刻まれるFrame数が、450Frames以下なら、以下のスクリプトを実行
this._x += (xm-this._x)/speed;
this._y += (ym-this._y)/speed;
this._xscale = this._yscale += (sm-this._yscale)/speed;
this._rotation += (rm-this._rotation)/speed;
num++;
if (bx != this._x || by != this._y) {
num++;
mcName = "mc"+num;
_parent.kijun.attachMovie("hosi",mcName,num);
_parent.kijun[mcName]._x = bx=this._x;
_parent.kijun[mcName]._y = by=this._y;
_parent.kijun[mcName]._xscale = _parent.kijun[mcName]._yscale=this._yscale;
}
} else {//450Framesを超えたら、
_parent.sec_txt.text = 15+"秒";//15秒と表示
}
}
//ここまで
Response 04
2008年11月29日 (土) 04時50分> joy 
良く読んだら、15秒後に、星のみ消したいとのことで、それなら、以下のようになります。
//ここから
onClipEvent (load) {
speed = 5;
xm = this._x;
ym = this._y;
sm = 100;
rm = 180;
num = 0;
Timer = 30*15;//30FPS×15Sec=450Frames経過したら、停止させるタイマー
n = 0;//刻まれるFrame数で、初期値は、0とする
_parent.sec_txt.text = "";//経過時間を表示するダイナミックテキストを、シーンに配置する、インスタンス名 sec_txt
}
onClipEvent (enterFrame) {
n++;//フレーム数をカウント
_parent.sec_txt.text = Math.floor(n/30)+"秒";//経過時間(秒)を表示
Rnd = Math.floor(Math.random()*100);
if (Rnd<2) {
speed = Math.random()*30+5;
rm = Math.random()*360;
} else if (Rnd<5) {
xm = Math.random()*460+30;
ym = Math.random()*240+30;
sm = Math.random()*60+40;
rm = 180;
}
this._x += (xm-this._x)/speed;
this._y += (ym-this._y)/speed;
this._xscale = this._yscale += (sm-this._yscale)/speed;
this._rotation += (rm-this._rotation)/speed;
if (n<=Timer) {//刻まれるFrame数が、450Frames以下なら、以下のスクリプトを実行
num++;
if (bx != this._x || by != this._y) {
num++;
mcName = "mc"+num;
_parent.kijun.attachMovie("hosi",mcName,num);
_parent.kijun[mcName]._x = bx=this._x;
_parent.kijun[mcName]._y = by=this._y;
_parent.kijun[mcName]._xscale = _parent.kijun[mcName]._yscale=this._yscale;
}
} else {//450Framesを超えたら、
_parent.sec_txt.text = 15+"秒";//15秒と表示
}
}
//ここまで
Response 05
2008年12月15日 (月) 17時13分> sho 
joyさん

お返事遅くなりまして、すみませんでした。
教えていただいたアクションで15秒でランダムMCを停止させることができました!
大変助かりました、ありがとうございます!
今後も日々勉強していきたいと思います。
ありがとうございました。

このページの先頭へ