2017-10-14 39 views
-2

超級noob問題在這裏。我從下面的as3項目中獲得了下面的代碼,其中幀號是隨機的,然後單擊一個精靈(下一個)將移動到下一個隨機幀。我無法弄清楚還有什麼我需要做的將其轉換爲JavaScript。任何人都可以幫助我或指出我的方向嗎? TIA!用html5隨機化沒有重複的框架javascript

var sortedNumbers:Array = []; 
for(var i:int = 1; i < 21; i++) 
{ 
    sortedNumbers.push(i); 
} 
var unsortedNumbers:Array = sortedNumbers.slice(); 

while(sortedNumbers.join() == unsortedNumbers.join()) 
{ 
    unsortedNumbers.sort(function (a:int, b:int):int { return Math.random() > .5 ? -1 : 1; }); 
} 

this.start.addEventListener("click", f_nextRE.bind(this)); 

function f_nextRE() { 
     if(index == 20) { 
    gotoAndStop (22); 
    } 
    else { 
    gotoAndStop (unsortedNumbers [index] + 1); 
    index +=1; 
    } 
} 
+0

這確實似乎不是一個有效的'javascript'代碼 –

+0

是的......這是動作腳本3.我在javascript中很新,並且正在尋找一些幫助。將其轉換。或者指向正確的方向,我可以學習如何隨機化一串數字,然後從中抽取,以隨機順序從HTML5畫布中播放幀。 – ReviewEcon

回答

0

所以我花了幾天,但我發現我的回答(以下幾個來源很多本網站的組合)......在這裏張貼幫助別人......

//create array 
var shuffledFrames = []; 
//fill array 
for (var i = 1; i <= 35; i++) { 
    shuffledFrames.push(i); 
} 
//shuffle array 
function shuffle(a) { 
    var j, x, i; 
    for (i = a.length - 1; i > 0; i--) { 
     j = Math.floor(Math.random() * (i + 1)); 
     x = a[i]; 
     a[i] = a[j]; 
     a[j] = x; 
    } 
} 
//run shuffle function 
shuffle(shuffledFrames); 
//function to call next random frame then repeat when reaching the end. 
function f_next() 
{ 
    if (shown == 1){ 
     if (nextF == 35) { 
      nextF = 0; 
      } 
     else { 
     nextF += 1; 
     } 
    this.gotoAndStop (shuffledFrames [nextF]); 
    } 
}