亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 辦公 > Flash > 正文

Flash AS3教程:Random類

2020-07-17 13:17:43
字體:
來源:轉載
供稿:網友
前面講了Flash AS3教程:Level2D類,Random類是一個簡單的隨機函數工具類,總共提供了9種靜態方法來獲取不同的隨機值。
隨便寫的,如果你還有什么更好的建議,請提出來,謝謝~

index.base.func.Random類:
代碼:public final class Random
提供了9種靜態方法來獲取不同的隨機值

構造函數:
public function Random()
如果直接實例化該類,將拋出錯誤

boolean靜態屬性:
public static function get boolean():Boolean
隨機獲取一個布爾值,即可能是true,也可能是false

wave靜態屬性:
public static function get wave():int
隨機獲取一個正負波動值,即可能是1,也可能是-1

integer靜態方法:
public static function integer(num:Number):int
隨機獲取一個范圍中的整數值

number靜態方法:
public static function number(num:Number):Number
隨機獲取一個范圍中的Number指

range靜態方法:
public static function range(num1:Number,num2:Number,isInt:Boolean = true):Number
isInt:表示是否以整數隨機
隨機在一個指定范圍獲取數值

ranges靜態方法:
public static function ranges(...args):Number
最后一個參數可以是邏輯值,用處等同于range的isInt參數,默認為true
隨機在多個指定范圍獲取數值

string靜態方法:
public static function string(str:String = "0-9,A-Z,a-z"):String
在指定范圍隨機一個字符

bit靜態方法:
public static function bit(num:int,str:String = ""):String
在指定范圍隨機一個num位的字符串

color靜態方法:
public static function color(red:String = "0-255",green:String = "0-255",blue:String = "0-255"):uint
在指定范圍隨機一個顏色值

舉例:

CODE:
import index.base.func.Random;

trace(Random.boolean "(隨機一個布爾值)");
trace(Random.color() "(隨機一個RGB顏色值)");
trace(Random.color("153-255","0-100","0-100") "(隨機一個偏紅的RGB顏色值)");
trace(Random.wave "(隨機一個波動值)");
trace(Random.string() "(隨機一個字符)");
trace(Random.integer(4) "(隨機一個int值)");
trace(Random.number(4) "(隨機一個Number值)");
trace(Random.string("a-z,A-Z") "(在一個范圍隨機字符)");
trace(Random.string("我,你,他") "(在一個范圍隨機中文字符)");
trace(Random.ranges(5,4,3,-1,-10,-14,true) "(在多個指定范圍隨機數值)");
trace(Random.range(4,9) "(在一個指定范圍隨機數值)");
trace(Random.bit(8) "(隨機一個八位的字符串)");
trace(Random.bit(16,"0-1") "(隨機一個十六位的二進制)");
trace("…………")

//生成一個偏紅的顏色色塊
var sh:Shape = new Shape();
var rgb:uint = Random.color("204-255","0-153","0-153");
trace(rgb1.toString(16));
sh.graphics.beginFill(rgb);
sh.graphics.drawRect(100,100,100,100);
addChild(sh);

//生成一個顏色偏深或者偏淡的顏色色塊
var sh1:Shape = new Shape();
var rgb1:uint = Random.color("0-20,240-255","0-20,240-255","0-20,240-255");
trace(rgb1.toString(16));
sh1.graphics.beginFill(rgb1);
sh1.graphics.drawRect(200,100,100,100);
addChild(sh1);

/**
* 輸出:
* false(隨機一個布爾值)
* 8370486(隨機一個RGB顏色值)
* 12322387(隨機一個偏紅的RGB顏色值)
* -1(隨機一個波動值)
* E(隨機一個字符)
* 3(隨機一個int值)
* 1.0007172282785177(隨機一個Number值)
* m(在一個范圍隨機字符)
* 我(在一個范圍隨機中文字符)
* -14(在多個指定范圍隨機數值)
* 5(在一個指定范圍隨機數值)
* idPJav1l(隨機一個八位的字符串)
* 1010100101010100(隨機一個十六位的二進制)
* …………
* dd5506
* fef003
*/
類源代碼:

CODE:
package index.base.func{

public final class Random{

public function Random(){
throw new Error("隨機函數工具包無法實例化!");
}

//獲取一個隨機的布爾值
public static function get boolean():Boolean{
return Boolean(integer(2));
}

//獲取一個正負波動值
public static function get wave():int{
return integer(2) * 2 - 1;
}

//獲取一個隨機的范圍整數值
public static function integer(num:Number):int{
return Math.floor(number(num));
}

//獲取一個隨機的范圍Number值
public static function number(num:Number):Number{
return Math.random() * num;
}

//在一個范圍內獲取一個隨機值,返回結果范圍:num1 >= num > num2
public static function range(num1:Number,num2:Number,isInt:Boolean = true):Number{
var num:Number = number(num2 - num1) num1;
if(isInt) num = Math.floor(num);
return num;
}

//在多個范圍獲取隨機值
public static function ranges(...args):Number{
var isInt:Boolean = args[args.length - 1] is Boolean ? args.pop() : true;
var num:Number = randomRange(args);
if(!isInt) num = Math.random();
return num;
}

//獲取一個隨機字符,默認隨機范圍為數字 大小寫字母,也可以指定范圍,格式:a-z,A-H,5-9
public static function string(str:String = "0-9,A-Z,a-z"):String{
return String.fromCharCode(randomRange(explain(str)));
}

//生成指定位數的隨機字符串
public static function bit(num:int,str:String = "0-9,A-Z,a-z"):String{
var reStr:String = "";
for(var i:int = 0; i < num; i ) reStr = string(str);
return reStr;
}

//獲取一個隨機的顏色值
public static function color(red:String = "0-255",green:String = "0-255",blue:String = "0-255"):uint{
return Number("0x" transform(randomRange(explain(red,false)))
transform(randomRange(explain(green,false)))
transform(randomRange(explain(blue,false))));
}

//將10進制的RGB色轉換為2位的16進制
private static function transform(num:uint):String{
var reStr:String = num.toString(16);
if(reStr.length != 2) reStr = "0" reStr;
return reStr;
}

//字符串解析
private static function explain(str:String,isCodeAt:Boolean = true):Array{
var argAr:Array = new Array;
var tmpAr:Array = str.split(",");
for(var i:int = 0; i < tmpAr.length; i ){
var ar:Array = tmpAr[i].split("-");
if(ar.length == 2){
var arPush0:String = ar[0];
var arPush1:String = ar[1];
if(isCodeAt){
arPush0 = arPush0.charCodeAt().toString();
arPush1 = arPush1.charCodeAt().toString();
}
//此處如果不加1,將不會隨機ar[1]所表示字符,因此需要加上1,隨機范圍才是對的
argAr.push(Number(arPush0),Number(arPush1) 1);
}else if(ar.length == 1){
var arPush:String = ar[0];
if(isCodeAt) arPush = arPush.charCodeAt().toString();
//如果范圍是1-2,那么整型隨機必定是1,因此拿出第一個參數后,把范圍定在參數 1,則就是讓該參數參加隨機
argAr.push(Number(arPush),Number(arPush) 1);
}
ar = null;
}
tmpAr = null;
return argAr;
}

//獲取隨機范圍
private static function randomRange(ar:Array):Number{
var tmpAr:Array = new Array;
var length:int = ar.length;
if(length % 2 != 0 || length == 0) throw new Error("參數錯誤!無法獲取指定范圍!");
//將所有可能出現的隨機數存入數組,然后進行隨機
for(var i:int = 0; i < length / 2; i ){
var i1:int = ar[i * 2];
var i2:int = ar[i * 2 1];
if(i1 > i2){
var tmp:Number = i1;
i1 = i2;
i2 = tmp;
}
for(i1; i1 < i2; i1 ) tmpAr.push(i1);
}
var num:Number = tmpAr[integer(tmpAr.length)];
tmpAr = null;
ar = null;
return num;
}

}

}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品久久国产精品| 国产a∨精品一区二区三区不卡| 久热99视频在线观看| 美女啪啪无遮挡免费久久网站| 亚洲成人性视频| 亚洲免费视频一区二区| 最近中文字幕2019免费| 久久久久久久久久亚洲| 亚洲а∨天堂久久精品9966| 国产精品丝袜高跟| 久久精品99国产精品酒店日本| 日韩av一区二区在线| 欧美激情免费在线| 日韩av在线网页| 亚洲欧美色图片| 日韩欧美在线一区| 欧美黄网免费在线观看| 欧美激情网友自拍| 日韩精品视频在线观看免费| 欧美激情亚洲国产| 欧美成人激情图片网| 狠狠色噜噜狠狠狠狠97| 国产精品第一区| 狠狠躁天天躁日日躁欧美| 国产精品麻豆va在线播放| 国产999在线观看| 日韩精品视频免费专区在线播放| 在线色欧美三级视频| 欧美激情精品久久久久久免费印度| 国产在线拍偷自揄拍精品| 国产精品久久不能| 91国产精品电影| 精品久久久久久中文字幕大豆网| 亚洲精品国产成人| 成人午夜在线视频一区| 久久人体大胆视频| 亚洲人a成www在线影院| 97色伦亚洲国产| 国产精品久久久久久av福利软件| 亚洲成av人乱码色午夜| 成人激情视频小说免费下载| 亚洲一区二区三区乱码aⅴ| 美女久久久久久久久久久| 伊人久久五月天| 97在线观看视频| 欧美日韩在线视频一区| 久久久久免费精品国产| 国产精品久久久一区| 91牛牛免费视频| 亚洲美女激情视频| 伊人久久久久久久久久| 亚洲欧美国产视频| 成人激情电影一区二区| 亚洲第一av网| 国产精品第10页| 国内外成人免费激情在线视频| 日韩在线免费高清视频| 黄网动漫久久久| 日韩欧美精品免费在线| 国产精品久久久精品| 国产a∨精品一区二区三区不卡| 成人黄色中文字幕| 日韩成人在线视频网站| 日韩欧美大尺度| 国产精品夜色7777狼人| 国语对白做受69| 日本伊人精品一区二区三区介绍| 国产日韩欧美日韩| 国产精品久久久久久搜索| 久久精品欧美视频| 国产精品爱久久久久久久| 91精品在线观看视频| 亚洲国产精彩中文乱码av在线播放| 亚洲精品久久久一区二区三区| 日韩欧美福利视频| 欧美视频在线观看免费网址| 亚洲第一男人av| 欧美激情一区二区三区久久久| 欧美在线观看www| 4p变态网欧美系列| 亚洲电影成人av99爱色| 亚洲激情视频在线播放| 亚洲欧美日韩图片| 国产精品福利久久久| 久久精品中文字幕电影| 中文字幕日韩在线视频| 欧美精品在线免费观看| 91久久久久久久| 丝袜情趣国产精品| 2019中文字幕全在线观看| 日韩免费视频在线观看| 国内揄拍国内精品少妇国语| 国产精品成人国产乱一区| 日韩人在线观看| 精品国偷自产在线视频| 国产福利视频一区| 亚洲最大福利视频网| 国产91成人在在线播放| 国产视频精品一区二区三区| 92国产精品视频| 一区二区三区在线播放欧美| 亚洲一级免费视频| 欧美性猛交xxxx乱大交3| 久久精品影视伊人网| 亚洲最大在线视频| 久久精品色欧美aⅴ一区二区| 欧洲成人性视频| 日韩av中文在线| 国产精品激情av在线播放| 日韩一二三在线视频播| 91精品国产91久久| 亚洲男人天堂2023| 久久中国妇女中文字幕| 欧美午夜片在线免费观看| 精品日本美女福利在线观看| 亚洲福利视频网站| 国产成人在线一区| 中文字幕国产亚洲2019| 日韩av在线天堂网| 日韩欧美精品中文字幕| 国产一区二区黄| 亚洲欧美精品伊人久久| 久色乳综合思思在线视频| 国产成人福利夜色影视| 亚洲free性xxxx护士白浆| 久久久久国产视频| 久久好看免费视频| 久久久久久网址| 国产日产久久高清欧美一区| 日本韩国欧美精品大片卡二| 欧美猛交ⅹxxx乱大交视频| 国产精品久久久一区| 亚洲视屏在线播放| 一区二区三区在线播放欧美| 精品视频在线播放免| 色综合色综合久久综合频道88| 奇门遁甲1982国语版免费观看高清| 欧美日韩在线视频一区| 亚洲国产精品久久久| 欧美在线日韩在线| 亚洲天堂网站在线观看视频| 欧美日韩一区二区免费在线观看| 色婷婷av一区二区三区在线观看| 国产精品美女主播在线观看纯欲| 国内精品美女av在线播放| 97免费在线视频| 国产精品久久视频| 国产精品久久久久久久一区探花| 亚洲电影在线观看| 亚洲成人黄色网址| 国产99在线|中文| 久久天天躁狠狠躁夜夜躁2014| 91久久夜色精品国产网站| xxxxx91麻豆| 亚洲深夜福利网站| 91性高湖久久久久久久久_久久99| 中文字幕亚洲综合久久筱田步美| 中文字幕日韩欧美在线| 成人网在线视频| 国产成人精品视| 国产精品r级在线| 欧美夫妻性生活xx| 欧美精品生活片| 91福利视频网|