宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]as3数组随机的实现

2016-10-13 00:16:48 点击量:12 标签: 收藏本文

我们也许想在代码中使用随机化的数字序列,为了在不同的场合让代码表现的不一样。因为在AS3中我们没法用数组洗牌方法,所有只有自己写一些代码来实现这种效果了。

这里,我用AS3给出了实现随机数组的不同方法。最关键的一点是没有使用循环语句。

下面就是我列举出来的随机化数组的不同算法:

1.没有循环语句法:

  1. var rawArr:Array = ["1","2","3","4","5"]; 
  2. trace(randomizeArray(rawArr)); 
  3. function randomizeArray(myArray:Array):Array 
  4.         myArray.sort(function(){ return Math.random()-0.5; }); 
  5.         return myArray; 

2.用for循环法:

  1. var rawArr:Array = ["1","2","3","4","5"]; 
  2. trace(randomizeArray(rawArr)); 
  3. function randomizeArray(myArray:Array):Array 
  4.         for (var i:uint = 0; i < myArray.length; i++) 
  5.         { 
  6.                 var rand:uint = int(Math.random() * myArray.length); 
  7.                 myArray.push( myArray.splice( rand, 1 )[0] ); 
  8.         } 
  9.         return myArray; 

3.用while循环法:

  1. var rawArr:Array = ["1","2","3","4","5"]; 
  2. trace(randomizeArray(rawArr)); 
  3. function randomizeArray(array:Array):Array 
  4.         var newnewArray:Array = new Array(); 
  5.         while (array.length > 0) 
  6.         { 
  7.                 newArray.push(array.splice(Math.floor(Math.random()*array.length), 1)); 
  8.         } 
  9.         return newArray; 

随机取值

  1. var list:String="CuPlayer_test1.jpg|CuPlayer_test2.jpg|CuPlayer_test3.jpg|CuPlayer_test4.jpg"
  2. var words:Array=list.split("|");//以空格作为分隔符将字符串切割   
  3. //trace(words);//输出  
  4.  
  5. //var ranNum:Array=["test.jpg","test23.jpg","test2.jpg","test4.jpg"]; 
  6. //trace(ranNum[Math.floor(Math.random() * ranNum.length)]); 
  7. trace(words[Math.floor(Math.random() * words.length)]); 

 

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室