a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 辦公 > Flash > 正文

Flash遮照實例:產生不重復的隨機數的方法(三種)

2020-07-17 13:07:38
字體:
來源:轉載
供稿:網友

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

方法一: 


復制代碼
代碼如下:
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);//程序運行時間
//----------------------------------------------------------

方法二


復制代碼
代碼如下:
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);

方法三:


復制代碼
代碼如下:
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);

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

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


復制代碼
代碼如下:
creatmask();
//建立遮照
newnum();
//產生隨機數
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;
}
}

在上面的基礎上有所改進

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


復制代碼
代碼如下:
newnum();
//產生隨機數
_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;
}
}

教程結束,以上就是產生不重復的隨機數的三種方法介紹,希望對大家有所幫助!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: av片在线免费观看 | 国产高清视频在线 | 欧美日韩一区二区三区视频 | 草在线视频 | 精品一二区 | 在线免费色 | 四虎新网站 | 影音先锋中文字幕在线 | 69久久99精品久久久久婷婷 | av成人在线观看 | 色综合一区 | 久久久二 | 毛片av网址 | 日韩精品一区二区三区第95 | 国产精品美女久久久久图片 | 欧美日韩国产高清 | www欧美 | 国产精品99久久免费观看 | www.欧美| 麻豆久久 | 国产激情偷乱视频一区二区三区 | 中文字幕一区二区三区精彩视频 | 国产视频一视频二 | 亚洲午夜电影 | 午夜亚洲 | 国产福利在线播放 | 免费成人精品 | 国产成人精品999在线观看 | 欧美成人一级 | 久色电影 | 亚洲精品电影 | 91高清在线 | 免费成人在线网站 | 18韩国主播福利视频在线观看 | 国产美女久久 | 日本欧美不卡 | 国产午夜精品美女视频明星a级 | 99国产精品99久久久久久 | 色吊丝2288sds中文字幕 | 欧美视频三区 | 色噜噜噜噜|