Skip to content

Instantly share code, notes, and snippets.

@tanegame
Created November 19, 2018 13:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tanegame/7ca75a1def833128ce2a51ab7df961e1 to your computer and use it in GitHub Desktop.
Save tanegame/7ca75a1def833128ce2a51ab7df961e1 to your computer and use it in GitHub Desktop.
//スマホ対応
if (createjs.Touch.isSupported()) {
createjs.Touch.enable(stage, true);
}
this.gotoAndStop("standby"); //"standby"のフレームに移動
var _this = this;
//キーのインスタンス名の配列
var keyName = ["k_c", "k_cs", "k_d", "k_ds", "k_e", "k_f", "k_fs", "k_g", "k_gs", "k_a", "k_as", "k_b", "k_hc"];
//オクターブボタン名の配列
var btnName = ["btn2", "btn3", "btn4"];
//キーに割り当てる音名の配列
var btnNotes = {
"btn2": ["2c", "2cs", "2d", "2ds", "2e", "2f", "2fs", "2g", "2gs", "2a", "2as", "2b", "3c"],
"btn3": ["3c", "3cs", "3d", "3ds", "3e", "3f", "3fs", "3g", "3gs", "3a", "3as", "3b", "4c"],
"btn4": ["4c", "4cs", "4d", "4ds", "4e", "4f", "4fs", "4g", "4gs", "4a", "4as", "4b", "5c"]
};
onSetNote("btn3"); //初期設定でオクターブ「なか」を選択
//各キーに音名を割り当てる
function onSetNote(btn) {
//キーボードの鍵盤に音名を割り当てる
var noteName = btnNotes[btn]; //ファンクションに渡されたオクターブボタン名から音名リストを選択
for (var i = 0; i < keyName.length; i++) {
var key = keyName[i]; //キーのインスタンス名
var keyIns = _this.keyboard[key]; //キーのインスタンスを変数に代入
keyIns.myNote = noteName[i]; //キーのインスタンスに勝手プロパティで音名を代入
}
//オクターブボタンの色変え
for (var bName of btnName) {
_this[bName].gotoAndStop("off");
}
_this[btn].gotoAndStop("on");
}
//各キーにイベントリスナーを設置する
for (var key of keyName) {
//イベントリスナー設置
var keyIns = _this.keyboard[key]; //キーのインスタンスを変数に代入
keyIns.addEventListener("mousedown", onKeyPlay);
}
//キーが押された時のアクション
function onKeyPlay(evt) {
var cTrg = evt.currentTarget; //カレントターゲットのインスタンス
cTrg.gotoAndPlay("on"); //キーを色付きフレームに移動
console.log("cTrg.myNote=" + cTrg.myNote); //----------確認用
_this.gotoAndPlay(cTrg.myNote); //メインタイムラインを音名のラベルに移動
}
//各オクターブボタンにイベントリスナーを設置する
for (var bName of btnName) {
//イベントリスナー設置
_this[bName].addEventListener("click", onSetBtn);
}
//オクターブボタンが押された時のアクション
function onSetBtn(evt) {
var cTrg = evt.currentTarget; //カレントターゲットのインスタンス
var btnName = cTrg.name;
onSetNote(btnName);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment