LANG SELRCT

コードを書く場所についてはこちら

2018年6月10日日曜日

オブジェクトのvalueに関数を入れて呼び出したい


ブラウザ上で押されたキーに応じた処理を実行する
では以下のように書きましたが

    var key_obj = {
      37: "左",
      39: "右"
    }    


今回は押されたキーが37「←」か39「→」の場合に
それぞれ用意した関数を実行してみる


オブジェクの中で関数を設定して

var key_obj = {
  37: function(){left_arrow()},
  39: function(){right_arrow()}
}

一致した場合に設定した関数を実行する
key_obj[key_code]()




コード.gs
function doGet() {
  return HtmlService.createHtmlOutputFromFile("index");
}
意訳
この機能がやること
指定したHTMLファイルを表示する




index.html
<!DOCTYPE html>
<html>
<body>
  <script>
    window.onkeyup = window_keyup;
    
    var key_obj = {
      37: function(){left_arrow()},
      39: function(){right_arrow()}
    }
    
    function window_keyup(e) {
      var key_code = e.keyCode;
      var func = key_obj[key_code];
      if(func){
        func();
      }
    }

    function left_arrow(){
     alert("左")
    }

    function right_arrow(){
     alert("右")
    }
  </script>
</body>
</html>
意訳
  



キーを押して離したらwindow_keyupを実行する

オブジェクトを用意する
37の場合の関数
39の場合の関数


この機能が実行すること
押されたキーのコードを取得して
key_objから一致するものを見つけて
見つかれば(funcがtrueなら)
その関数を実行する



この機能がやること
アラートに"左"を出す


この機能がやること
アラートに"右"を出す