Created
November 19, 2018 13:49
-
-
Save tanegame/7ca75a1def833128ce2a51ab7df961e1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//スマホ対応 | |
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