読者です 読者をやめる 読者になる 読者になる

コナミコマンドを導入する jQuery plugin を作ってみた

最近何かと話題の、コナミコマンド
ちょっと検索しただけでも、色々出てきます。

コナミコマンドを仕込む方法 | エンタープライズ | マイコミジャーナル
上・上・下・下・左・右……コナミコマンドで「Googleリーダー」に何かが起こる! - iNSIDE
コナミコマンド - Wikipedia


jQueryコナミコマンドを導入するプラグインも出てますね。
Paul Irish » Cornify easter egg plugin with jQuery

var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
$(document).keydown(function(e) {
  kkeys.push( e.keyCode );
  if ( kkeys.toString().indexOf( konami ) >= 0 ){
    $(document).unbind('keydown',arguments.callee);
    $.getScript('http://www.cornify.com/js/cornify.js',function(){
      cornify_add();
      $(document).keydown(cornify_add);
    });          
  }
});

でも作ってみた。

上のプラグインと違うのは、下記の点ですかね。

  1. ドキュメントが日本語w
  2. オプション追加

使い方

オプションなし
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.konamiCommand.js"></script>
<script type="text/javascript"><!--
    $(document).konamiCommand();
    function konamiFunc() {
        alert("konamiFuncが実行されました")
    }
--></script>
オプション
  • callback 関数

デフォルトでは、【konamiFunc】という名前の function が callback 関数として登録されています。
別の関数へ callback させたい場合は、

    $(document).konamiCommand({
        callback: testFunc
    });
    function testFunc() {
        alert("testFuncが実行されました")
    }

このように設定すれば 【testFunc】関数へと callback されます。

  • type指定

wikipedia によると、コナミコマンドは複数亜種が確認されているようです。

基本種:「上上下下左右左右BA
プレイステーション系の機種:「上上下下左右左右×○
携帯電話のアプリでは「上上下下左右左右573(コナミ)
希少種「左右左右」の部分を「LRLR」に置き換えたもの

これら亜種にも対応させてみました。
亜種を適応するには、type を指定します。

    $(document).konamiCommand({
        callback: testFunc,
        type    :1
    });
    function testFunc() {
        alert("testFuncが実行されました")
    }

ちなみに、type は 0 がデフォルトの設定となっていますので、何も設定しないと 0 が適応されます。

  • type:0

上上下下左右左右ba

  • type:1

上上下下左右左右xo
※x(エックス)と o(おー)

  • type:2

上上下下左右左右573

  • type:3

上上下下lrlrba

バグがあったら教えてください。


※追記
アホな問題を発見
【conamiFunc】 => 【konamiFunc】 修正m(_ _)m