0

コイン、サイコロ、8 ボールの Flash (問題がある場合は CS 5.5) でアニメーションを作成しました。一度クリックすると、オブジェクトをクリックすると、それぞれのオブジェクトをトス/ロール/振ることができます (これはすべてボタンです)。 、ランダムな結果を計算するために、gotoAndPlay するフレームを決定します。

コイントス/ダイスロールの背後にあるプロセスは似ていると思いますので、ダイスロールと 8 のボールはコイントスに基づいています… 私がやっているようなことをする方法についてのチュートリアルを見つけようとしましたが、メソッドはオフです。

ランダムに数値を生成することに問題はありませんでしたが、そこからどこに行くべきかわかりません。

編集:最初にこれを書いたとき、貼り付けるコードがありませんでした。誰かが試してみることを提案しました

(int)(Math.random()*2) 
if((int)(Math.random()*2) == 0)
  {gotoAndPlay("label a");} 
else if((int)(Math.random()*2) == 1)
  {gotoAndPlay("label b");

しかし、それはうまくいきませんでした。

4

1 に答える 1

0

あなたの質問を正しく理解できれば、乱数を生成してからそれぞれのフレームに移動する必要があります。既にアニメーションを作成していると仮定すると、次のようなコードをムービークリップ ボタンに貼り付ける必要があります。

オン(リリース){

var xy=Math.round(Math.random() * 2)+1 //"2" is the number of frames you have
gotoAndStop(xy);

}

ボタンとアニメーション mc が同じでない場合は、gotoAndStop を mc_name.gotoAndStop に置き換える必要がある場合があります。

それがどうなるか教えてください!

編集済み: Math.random()*2 が整数を生成することはほとんどありません。したがって、数値を丸めるには round オプションを使用する必要があります。しかし、1 または 0 のいずれかの数値を期待している場合は、Math.round(Math.random()) を使用する必要があります。また、if ステートメントで Math.random を使用しているという問題があります。は :

var num:Number=Math.round(Math.random());
if(num==0){
//Do something
}else{
//Do Something
}

2 つ以上のケースが予想される場合は、

var num:Number=Math.round(Math.random()*numberofcases);
switch(num){
case 0:
//do something
break;
case 1:
//do something
break;
case 2:
//do something 
break;
...
default:
//do something as default
break
}

これはうまくいくはずです。

それがどうなるか教えて、それがうまくいくなら答えを受け入れてください! ありがとう。

于 2012-08-30T09:47:20.603 に答える