·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3数组随机的实现

时间:2014-03-31 15:36cuplayer.com
[AS3]我们也许想在代码中使用随机化的数字序列,为了在不同的场合让代码表现的不一样。因为在AS3中我们没法用数组洗牌方法,所有只有自己写一些代码来实现这种效果了

我们也许想在代码中使用随机化的数字序列,为了在不同的场合让代码表现的不一样。因为在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)]); 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器