ActionScript ランダム関数 Math.random() まとめ
2012.04.18
この記事は最終更新日から1年以上が経過しています。
ランダム関数 Math.randomについてまとめてみました。
「Math.random」は、0 以上 1 未満の浮動小数で結果を返します。
では調べましょう。
STARTボタンを押して下さい。
Math.random
数字(乱数)がダーと出ましたね。
ActionScript
btn.onRelease = function(){ ransu = Math.random(); randomTxt = ransu; }
数字が表示されるところはダイナミックテキストで作成し、変数「randomTxt」に設定しております。
このままではとても使うには不便なので、使えるように数字を一桁にしましょう。
Math.random Math.floor
その為には、まず生成した乱数に10を掛けます。
ransu = Math.random()*10;
ransu = Math.floor(Math.random()*10);
10掛けた乱数をMath.floorで整数にします。
これで0~9の整数をランダムに生成することが出来ます。
おみくじ
では、Math.radomを使い、おみくじを作ります。
0〜3の場合、「凶」、4、5の場合「中吉」、6〜9の場合「大吉」にします。
btn.onRelease = function(){ if(ransu<=3){ uranaiTxt = "凶"; }else if(ransu>3 && ransu<6){ uranaiTxt = "中吉"; }else if(ransu>=6){ uranaiTxt = "大吉"; } }
ボール移動
それでは今度は、ボールオブジェクトをランダムに移動させましょう。
Startボタンを押すとランダムにX座標を移動します。
btn.onRelease = function(){ ransu = Math.random()*10; ransu = Math.floor(ransu)/2*100; randomTxt = ransu; ball._x = ransu; }
X座標0〜450まで50単位でランダムに移動するのが確認できました。
そのままだと瞬間移動しているので、Tweenerを使い動いているように作成します。
import caurina.transitions.Tweener;
import文で読み込み、以下のように指定。
Tweener.addTween(ball,{ _x:ransu, time:1, transition:'easeOutQuint'});
ランダムに色を変化
続いてはランダムに色の変化を。
色の変化を行う場合は以下のスクリプトを
btn.onRelease = function(){ newColor = new Color(ball); newColorNum = Math.floor(Math.random()*256*256*256); newColor.setRGB(newColorNum); randomTxt = newColorNum; }
new Colorでカラーオブジェクトを生成。setRGBで設定します。
が、これはすでに推奨されていないので、
以下のスクリプトを。
import flash.geom.ColorTransform; import flash.geom.Transform; btn.onRelease = function(){ var trans:Transform = new Transform(ball); var newColor : ColorTransform = new ColorTransform(-1, -1, -1, 1, 255, 255, 255, 0); trans.colorTransform = newColor; }
flash.geom.ColorTransform、flash.geom.Transformをインポート。
new TransformでTransformオブジェクトを生成。
new ColorTransformで新しい色を生成し、trans.colorTransform = newColor;でセットします。
最後にランダムに色とX座標を変化させましょう。
import flash.geom.ColorTransform; import flash.geom.Transform; import caurina.transitions.Tweener; btn.onRelease = function(){ newColorNum1 = Math.floor(Math.random()*256); newColorNum2 = Math.floor(Math.random()*256); newColorNum3 = Math.floor(Math.random()*256); var trans:Transform = new Transform(ball); var newColor : ColorTransform = new ColorTransform(-1, -1, -1, 1, newColorNum1, newColorNum2, newColorNum3, 0); trans.colorTransform = newColor; ransu = Math.random()*10; ransu = Math.floor(ransu)/2*100; randomTxt = ransu; Tweener.addTween(ball,{ _x:ransu, time:1, transition:'easeOutQuint'}); }