| 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
|
|
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を停止させることができました!
大変助かりました、ありがとうございます!
今後も日々勉強していきたいと思います。
ありがとうございました。
|
|