スマートフォンやhtml5+CSS3など新技術に四苦八苦。jQuery、AjaxなどJavaScriptも難しいですね。そんなWebに悩む人のネタ帳です。

最近はFlashネタばかりですね。はまってしまったんでしょう。。。

Flashでよりクリエイティブなものを表現するのに、ランダムというのはとても重要な要素となってきます。PHPやJavascriptなど他の言語でもよく利用されますが、ActionScript3でも確認しておきます。

まず、Flashで0以上1未満の乱数を発生させるためには関数「Math.random()」を使用します。ランダム生成関数ではよく1を含むかどうかが議論されますが、AS3では1は含まないとされています。

ここからは数学の話になりますが、、、一般的な考えに沿うと0~5の中からランダムに数字を発生させたい場合に、まず6にMath.random()を掛けます。すると答えの範囲は0~5.99999になります。これの小数点を捨てると0~5になるわけです。

Math.floor(Math.random() * (5 + 1))

次に一歩発展させて、3~8のうちからランダム数字を発生させたい場合ですが、基本的な考え方は一緒です。まずは上と同じように0から、というところに考えを持ち込むために3を引きます。つまり、0~5でランダム数を発生させた結果に、後で3を足せばよいわけです。

Math.floor(Math.random() * ((8 - 3) + 1)) + 3

以上により、x~yの範囲でランダム数値を求めるための式はこのようになります。

Math.floor(Math.random() * ((y - x) + 1)) + x

ついでになりますが、文字をランダムで発生させたい場合は、予め羅列した文字列を用意しておきます。その文字列の大きさを数字に置き換えれば、さっきと考え方は一緒ですね。何番目の文字を取得する、ということをランダム数値を発生させて指定すればよいのです。

var txt:String = 'abcdefghijklmnopqrstuvwxyz';
txt.charAt(Math.floor(Math.random() * txt.length));
このエントリーをはてなブックマークに追加

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Monthly Archives

Search