国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 辦公 > Flash > 正文

Flash遮照實(shí)例:產(chǎn)生不重復(fù)的隨機(jī)數(shù)的方法(三種)

2020-07-17 13:07:38
字體:
供稿:網(wǎng)友

這篇教程是向大家介紹產(chǎn)生不重復(fù)的隨機(jī)數(shù)的三種方法,通過一個Flash遮照實(shí)例來講述,可以讓風(fēng)0到99的數(shù)排列,并不重復(fù)。這三種方法適用于在做多個隨機(jī)方塊遮照圖片時和在播放動畫時隨機(jī)播放音樂,一起來看看吧!

方法一: 


復(fù)制代碼
代碼如下:
oldtime=getTimer();
my_array=new Array();
n=100;
for(var i=0;i  my_array[i]=i;
}
for(var i=0;i var tmp1=random(n);
 var tmp2=my_array[i];
 my_array[i]=my_array[tmp1];
 my_array[tmp1]=tmp2;
}
trace(my_array); 
trace(getTimer()-oldtime);//程序運(yùn)行時間
//----------------------------------------------------------

方法二


復(fù)制代碼
代碼如下:
n=getTimer();
Array.prototype.randomize = function() {
this.sort(function(a, b) { return random(2)>0 ? 1 : -1;});
}
var myArray = new Array();
for(var i=0;i<1000;i++){
myArray[i]=i; 
}
myArray.randomize();
trace(myArray); 
trace(getTimer()-n);

方法三:


復(fù)制代碼
代碼如下:
var num_arr:Array = new Array(); 
var j = 0; 
var judge = 0; 
do { 
 var temp_num = Math.round(Math.random()*100); 
 for (var i = 0; i  var temp_n = num_arr[i]; 
  if (temp_num == temp_n) { 
  judge = 1; 
  break; 
  } else { 
  judge = 0; 
  } 
 } 
 if (judge == 0) { 
  num_arr.push(temp_num); 
  j++; 
  _root["t"+j].text = temp_num; 
 } 
} while (j<100); 
trace(num_arr);

制作過程: 建兩層,各放一圖片,其中上層的圖片定義實(shí)例名:pic_mc

然后畫一矩形,轉(zhuǎn)化為MC,定義ID名為 box,然后在幀上寫入AS:


復(fù)制代碼
代碼如下:
creatmask();
//建立遮照
newnum();
//產(chǎn)生隨機(jī)數(shù)
var i = -1;
var n = 0;
_root.onEnterFrame = function() {
i++;
if (i<300) {
 eval("_root.m1_mc.box"+my_array[n]).removeMovieClip();
 //移除方塊
 n++;
}
if (i>=400 && i<700) {
 m = my_array[i-400];
 _root.m1_mc.attachMovie("box", "box"+m, m+10, {_x:int(m/15)*20, _y:m%15*20});
 //加載方塊
}
if (i>800) {
 i = 0;
 n = 0;
}
};
//-------------------------------------
function creatMask() {
_root.createEmptyMovieClip("m1_mc", 1);
m1_mc._x = 0;
mc_mc._y = 0;
for (var i = 0; i<300; i++) {
 _root.m1_mc.attachMovie("box", "box"+i, i+10, {_x:int(i/15)*20, _y:i%15*20});
}
pic_mc.setMask(m1_mc);
}
function newnum() {
my_array = new Array();
n = 300;
for (var i = 0; i my_array[i] = i;
}
for (var i = 0; i var tmp1 = random(n);
 var tmp2 = my_array[i];
 my_array[i] = my_array[tmp1];
 my_array[tmp1] = tmp2;
}
}

在上面的基礎(chǔ)上有所改進(jìn)

制作方法與上有點(diǎn)差別,就是在box元件中的方塊轉(zhuǎn)化為MC,然后編輯這個MC,在上面做點(diǎn)運(yùn)動變形.


復(fù)制代碼
代碼如下:
newnum();
//產(chǎn)生隨機(jī)數(shù)
_root.createEmptyMovieClip("m1_mc", 1);
m1_mc._x = 0;
mc_mc._y = 0;
pic_mc.setMask(m1_mc);
for (var i = 0; i<300; i++) {
_root.m1_mc.attachMovie("box", "box"+i, i+100, {_x:int(i/15)*20, _y:i%15*20});
}
var i = -1;
_root.onEnterFrame = function() {
i++;
if (i<300) {
 m = my_array[i];
 eval("_root.m1_mc.box"+my_array[m]+".p").play();
}
if (i>=400 && i<700) {
 m = my_array[i-400];
 eval("_root.m1_mc.box"+my_array[m]+".p").play();
}
if (i>800) {
 i = -1;
}
};
//-------------------------------------
function newnum() {
my_array = new Array();
n = 300;
for (var i = 0; i my_array[i] = i;
}
for (var i = 0; i var tmp1 = random(n);
 var tmp2 = my_array[i];
 my_array[i] = my_array[tmp1];
 my_array[tmp1] = tmp2;
}
}

教程結(jié)束,以上就是產(chǎn)生不重復(fù)的隨機(jī)數(shù)的三種方法介紹,希望對大家有所幫助!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 彩票| 宝鸡市| 昭通市| 且末县| 青川县| 衡阳县| 竹山县| 财经| 普兰县| 保靖县| 兴海县| 兴文县| 昌邑市| 曲靖市| 长顺县| 文化| 浠水县| 南岸区| 云和县| 陆川县| 凤台县| 华安县| 垣曲县| 格尔木市| 邮箱| 六安市| 贺州市| 来安县| 岳池县| 康保县| 屏东市| 七台河市| 从化市| 铜陵市| 昭平县| 神木县| 新河县| 教育| 新安县| 时尚| 邹城市|