这篇教程是向大家介绍产生不重复的随机数的三种方法,通过一个闪光遮照实例来讲述,可以让风0到99的数排列,并不重复。这三种方法适用于在做多个随机方块遮照图片时和在播放动画时随机播放音乐,一起来看看吧!
方法一:
复制代码
代码如下:
old time=getTimer();
我的数组=新数组();
n=100
for(var I=0;I my _ array[I]=I;
}
for(var I=0;I var TM P1=random(n);
var tmp 2=my _ array[I];
my _ array[I]=my _ array[TM P1];
my _ array[TM P1]=tmp 2;
}
trace(my _ array);
trace(getTimer()-old time);//程序运行时间
//-
方法二
复制代码
代码如下:
n=getTimer();
数组。原型。randomize=function(){
this.sort(function(a,b) { return random(2)0?1 : -1;});
}
var myArray=new Array();
for(var I=0;i1000i ){
myArray[I]=I;
}
缅甸。randomize();
跟踪(缅甸);
trace(getTimer()-n);
方法三:
复制代码
代码如下:
var num _ arr:Array=new Array();
var j=0;
var judge=0;
做{
var temp _ num=数学。圆(数学。random()* 100);
for(var I=0;I var temp _ n=num _ arr[I];
如果(临时数量==临时数量){
法官=1;
打破;
}否则{
judge=0;
}
}
if (judge==0) {
num _ arrpush(temp _ num);
j;
_ root【t’j】.text=临时数量
}
} while(j100);
trace(num _ arr);
制作过程:建两层,各放一图片,其中上层的图片定义实例名:pic_mc
然后画一矩形,转化为MC,定义身份证明名为盒子,然后在帧上写入作为:
复制代码
代码如下:
creat mask();
//建立遮照
new num();
//产生随机数
var I=-1;
var n=0;
_root.onEnterFrame=function() {
我;
if (i300) {
eval(' _ root。m1 _ MC。box ' my _ array[n]).删除电影剪辑();
//移除方块
n;
}
if (i=400 i700) {
m=my _ array[I-400];
_root.m1_mc.attachMovie('box '' box' m,m 10,{_x:int(m/15)*20,_y:m*20});
//加载方块
}
如果(i800) {
I=0;
n=0;
}
};
//-
函数creatMask() {
_ root。createemptymovieclip(' m1 _ MC '1);
m1_mc ._ x=0;
mc_mc ._ y=0;
for(var I=0;i300i ) {
_root.m1_mc.attachMovie('box '' box' i,I 10,{_x:int(i/15)*20,_y:i*20});
}
pic _ MC。设置掩码(m1 _ MC);
}
函数newnum() {
我的数组=新数组();
n=300
for(var I=0;I my _ array[I]=I;
}
for(var I=0;I var TM P1=random(n);
var tmp 2=my _ array[I];
my _ array[I]=my _ array[TM P1];
my _ array[TM P1]=tmp 2;
}
}
在上面的基础上有所改进
制作方法与上有点差别,就是在箱子元件中的方块转化为MC,然后编辑这个MC,在上面做点运动变形。
复制代码
代码如下:
new num();
//产生随机数
_ root。createemptymovieclip(' m1 _ MC '1);
m1_mc ._ x=0;
mc_mc ._ y=0;
pic _ MC。设置掩码(m1 _ MC);
for(var I=0;i300i ) {
_root.m1_mc.attachMovie('box '' box' i,I 100,{_x:int(i/15)*20,_y:i*20});
}
var I=-1;
_root.onEnterFrame=function() {
我;
if (i300) {
m=my _ array[I];
eval(' _ root。m1 _ MC。box ' my _ array[m]').p’).play();
}
if (i=400 i700) {
m=my _ array[I-400];
eval(' _ root。m1 _ MC。box ' my _ array[m]').p’).play();
}
如果(i800) {
I=-1;
}
};
//-
函数newnum() {
我的数组=新数组();
n=300
for(var I=0;I my _ array[I]=I;
}
for(var I=0;I var TM P1=random(n);
var tmp 2=my _ array[I];
my _ array[I]=my _ array[TM P1];
my _ array[TM P1]=tmp 2;
}
}
教程结束,以上就是产生不重复的随机数的三种方法介绍,希望对大家有所帮助!