仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1369|回复: 9
打印 上一主题 下一主题

[学习教程] 来谈谈:Flash AS3教程:Random类-Flash actionscript

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 22:49:27 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Flash动画制作软件是一款可以帮助设计者制作和设计动画Flash介绍、Flash标识、Flash广告、Flash弹出菜单以及任何其它Flash动画的Flash文本效果工具。
后面讲了FlashAS3教程:Level2D类,Random类是一个复杂的随机函数工具类,统共供应了9种静态办法来猎取分歧的随机值。
任意写的,假如你另有甚么更好的倡议,请提出来,感谢~

index.base.func.Random类:
代码:publicfinalclassRandom
供应了9种静态办法来猎取分歧的随机值

机关函数:
publicfunctionRandom()
假如间接实例化该类,将抛堕落误

boolean静态属性:
publicstaticfunctiongetboolean():Boolean
随机猎取一个布尔值,便可能是true,也多是false

wave静态属性:
publicstaticfunctiongetwave():int
随机猎取一个正负动摇值,便可能是1,也多是-1

integer静态办法:
publicstaticfunctioninteger(num:Number):int
随机猎取一个局限中的整数值

number静态办法:
publicstaticfunctionnumber(num:Number):Number
随机猎取一个局限中的Number指

range静态办法:
publicstaticfunctionrange(num1:Number,num2:Number,isInt:Boolean=true):Number
isInt:暗示是不是以整数随机
随机在一个指定局限猎取数值

ranges静态办法:
publicstaticfunctionranges(...args):Number
最初一个参数能够是逻辑值,用途同等于range的isInt参数,默许为true
随机在多个指定局限猎取数值

string静态办法:
publicstaticfunctionstring(str:String="0-9,A-Z,a-z"):String
在指定局限随机一个字符

bit静态办法:
publicstaticfunctionbit(num:int,str:String=""):String
在指定局限随机一个num位的字符串

color静态办法:
publicstaticfunctioncolor(red:String="0-255",green:String="0-255",blue:String="0-255"):uint
在指定局限随机一个色彩值

举例:
CODE:
importindex.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("…………")

//天生一个偏红的色彩色块
varsh:Shape=newShape();
varrgb: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);

//天生一个色彩偏深大概偏淡的色彩色块
varsh1:Shape=newShape();
varrgb1: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:
packageindex.base.func{

publicfinalclassRandom{

publicfunctionRandom(){
thrownewError("随机函数工具包没法实例化!");
}

//猎取一个随机的布尔值
publicstaticfunctiongetboolean():Boolean{
returnBoolean(integer(2));
}

//猎取一个正负动摇值
publicstaticfunctiongetwave():int{
returninteger(2)*2-1;
}

//猎取一个随机的局限整数值
publicstaticfunctioninteger(num:Number):int{
returnMath.floor(number(num));
}

//猎取一个随机的局限Number值
publicstaticfunctionnumber(num:Number):Number{
returnMath.random()*num;
}

//在一个局限内猎取一个随机值,前往了局局限:num1>=num>num2
publicstaticfunctionrange(num1:Number,num2:Number,isInt:Boolean=true):Number{
varnum:Number=number(num2-num1)+num1;
if(isInt)num=Math.floor(num);
returnnum;
}

//在多个局限猎取随机值
publicstaticfunctionranges(...args):Number{
varisInt:Boolean=args[args.length-1]isBoolean?args.pop():true;
varnum:Number=randomRange(args);
if(!isInt)num+=Math.random();
returnnum;
}

//猎取一个随机字符,默许随机局限为数字+巨细写字母,也能够指定局限,格局:a-z,A-H,5-9
publicstaticfunctionstring(str:String="0-9,A-Z,a-z"):String{
returnString.fromCharCode(randomRange(explain(str)));
}

//天生指定位数的随机字符串
publicstaticfunctionbit(num:int,str:String="0-9,A-Z,a-z"):String{
varreStr:String="";
for(vari:int=0;i<num;i++)reStr+=string(str);
returnreStr;
}

//猎取一个随机的色彩值
publicstaticfunctioncolor(red:String="0-255",green:String="0-255",blue:String="0-255"):uint{
returnNumber("0x"+transform(randomRange(explain(red,false)))+
transform(randomRange(explain(green,false)))+
transform(randomRange(explain(blue,false))));
}

//将10进制的RGB色转换为2位的16进制
privatestaticfunctiontransform(num:uint):String{
varreStr:String=num.toString(16);
if(reStr.length!=2)reStr="0"+reStr;
returnreStr;
}

//字符串剖析
privatestaticfunctionexplain(str:String,isCodeAt:Boolean=true):Array{
varargAr:Array=newArray;
vartmpAr:Array=str.split(",");
for(vari:int=0;i<tmpAr.length;i++){
varar:Array=tmpAr.split("-");
if(ar.length==2){
vararPush0:String=ar[0];
vararPush1:String=ar[1];
if(isCodeAt){
arPush0=arPush0.charCodeAt().toString();
arPush1=arPush1.charCodeAt().toString();
}
//此处假如不加1,将不会随机ar[1]所暗示字符,因而必要加上1,随机局限才是对的
argAr.push(Number(arPush0),Number(arPush1)+1);
}elseif(ar.length==1){
vararPush:String=ar[0];
if(isCodeAt)arPush=arPush.charCodeAt().toString();
//假如局限是1-2,那末整型随机一定是1,因而拿出第一个参数后,把局限定在参数+1,则就是让该参数列入随机
argAr.push(Number(arPush),Number(arPush)+1);
}
ar=null;
}
tmpAr=null;
returnargAr;
}

//猎取随机局限
privatestaticfunctionrandomRange(ar:Array):Number{
vartmpAr:Array=newArray;
varlength:int=ar.length;
if(length%2!=0||length==0)thrownewError("参数毛病!没法猎取指定局限!");
//将一切大概呈现的随机数存进数组,然落后行随机
for(vari:int=0;i<length/2;i++){
vari1:int=ar[i*2];
vari2:int=ar[i*2+1];
if(i1>i2){
vartmp:Number=i1;
i1=i2;
i2=tmp;
}
for(i1;i1<i2;i1++)tmpAr.push(i1);
}
varnum:Number=tmpAr[integer(tmpAr.length)];
tmpAr=null;
ar=null;
returnnum;
}

}

}
“fla”是Flash的原始档,只能用对应版本或更高版本的Flash打开编辑。
柔情似水 该用户已被删除
沙发
 楼主| 发表于 2015-1-16 13:19:17 | 显示全部楼层

来谈谈:Flash AS3教程:Random类-Flash actionscript

中坚的程序员趋向于嘲笑脚本语言,但是对于那些没有计算机科学学位的人来说,脚本语言可能使他们头疼。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-1 08:33

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表