2012-03-12 10 views
6

Konami koduna girildikten sonra Yukarı, Yukarı, Aşağı, Aşağı, Sol, Sağ, Sol, Sağ, B, A, Başlat (gir) girecek bir web sitesi için .js dosyası oluşturmaya çalışıyorum bir video gömmek. Ancak sağ tuşlar girilirken, web sayfası "devam et" gibi bir şey göstermelidir, yanlış bir tuş girilirse "yanlış, tekrar deneyin" ifadesini göstermeli ve baştan başlamasına izin verin.ilerici konami kodu

JavaScript'i, doğru kodu girdiğinde bir uyarı görüntülendiğinde ve yanlış kodu girerek farklı bir kod görüntülendiğinde çalışmayı başardım.

ben yanlış nasıl açıklamak online kaynakları ama bunların hiçbiri kullanarak bu kadar kodu almak için manged ettik

, bölüm

if (window.addEventListener) { 
    var keys = [], 
    konami = "38,38,40,40,37,39,37,39,66,65,13"; 

    window.addEventListener("keydown", function(e){ 
    keys.push(e.keyCode); 


    if (keys.toString().indexOf(konami) >= 0) 
    {    
     alert('Right'); 
     keys = []; 
    }; 

    if (keys.toString().indexOf(konami) < 0) 
    { 
     alert('Wrong'); 
     keys = []; 
    } 
}, true); 

} tekrar deneyin;

Herhangi bir yardım büyük memnuniyetle karşılanacaktır.

cevap

7
if (window.addEventListener) { 
    var index = 0; 
    var konami = [38,38,40,40,37,39,37,39,66,65,13]; 

    window.addEventListener("keydown", function(e){ 
     if (e.keyCode === konami[index]) 
     { 
      index++; //valid key at the valid point 

      if (index == konami.length) 
      { 
       alert("Correct"); 
      } else { 
       alert("Keep going"); 
      } 
     } else { 
      // incorrect code restart 
      index = 0; 
      alert("Wrong"); 
     } 
    }); 
} 
+0

sayesinde tüm oth er cevaplar tarafından verilen ve de işe yarıyor ama bu anlayabildiğim tek kod. Bu arada doğru kod girildiğinde görünecek bir youtube video gömmek için bir yolu var mı? Veya gömme kodunun, – Calsolum

+2

.html dosyasında yazılması gerekir. Bu, 'return' anahtarını içermesi gerekip gerekmediği tartışmasızdır (13) – NicolasMoise

2

Sen gibi bir şey yapabileceğini

if (window.addEventListener) { 
    var keys = [], 
    konami = "38,38,40,40,37,39,37,39,66,65,13".split(','); 

    window.addEventListener("keydown", function(e){ 
    keys.push(e.keyCode); 
     console.log(e.keyCode); 
    var lengthOfKeys = keys.length -1; 


    if (konami[lengthOfKeys] == keys[lengthOfKeys]) 
    {    
     alert('Right'); 
     if(konami.length === keys.length){ 
      alert('complete!'); 
     } 

    }else{ 
     alert('Wrong'); 
     keys = []; 
    } 
}, true); 
}; 

burada keman http://jsfiddle.net/b6kuZ/

0

Bu benim için çalışıyor: Yardım için çok

if (window.addEventListener) { 
    var keys = [], 
    konami = "38,38,40,40,37,39,37,39,66,65,13"; 
    konami_arr = konami.split(','); 

    window.addEventListener("keydown", function(e){ 
     keys.push(e.keyCode); 

     var position = keys.length-1; 

     if(keys[position ] != konami_arr[position]) 
     { 
      alert('Wrong'); 
      keys = []; 
     } 
     else if (keys.join(',') == konami) 
     {    
      alert('Right'); 
      keys = []; 
     }; 
    }, true); 
} 

​jsFiddle exmaple