アドエスキーボード作成課題 6(画面タッチ入力) | objective-cをちょい研究!ブログ

objective-cをちょい研究!ブログ

WILLCOMを卒業してiOS開発者に転身しました。。
コメント&トラックバック大歓迎です。

バージョンアップの課題と調査用バージョンの公開です。


<課題1 画面タッチ>
画面にピアノ鍵盤画像を貼り付けて、画面タッチで音を出せるようにする。
画面タッチイベントは、マウスと同様にMouseDown/MouseMove/MouseUpイベントが使えました。


<課題2 キー入力>
*キーや#キーを押すと、なぜかキーダウンイベントが2回発生してしまう。
KeyDownイベントのe.KeyCodeでどのキーかを判定してるんですが、#キーと3キーで同じe.KeyCodeが渡されるので、e.KeyDataでもチェックする必要がある。


3キー押下時
KeyCode=51 KeyData=51


#キー押下時
KeyCode=51 KeyData=65587 (1回目)
KeyCode=16 KeyData=16   (2回目)


あと、同時に4つ以上のキーを押すと、4つ目以降のキー押下イベントが来ないようです。
また、3つキーを押している時に4つ目のキーを押すと、押していた3つのキーアップイベントが来て、4つ目のキーを離すと、また3つのキーのキーダウンイベントが来るようです???

同じことをZero3のメモ帳でやるとわかると思います。


<調査用バージョンの公開>
キーボードとテンキー、画面タッチで音が出るようにしました。
調査用バージョンってことで、キー入力と画面タッチのイベント情報や、鳴動ノード番号が画面に表示されます。
メニューでオクターブを切り替えられるようにしたんですが、まだガード機能をつけてません。音を鳴らしながらメニュー操作や縦横切替すると音が止まらなくなります(^^; アプリを終了させるか、同じ音階のキーをもう一度押せば消えます。
キーボードを開いたときは、ダイアルキーで低音が鳴るようにしてみたんですが、ノード60以下だとまともな音階で鳴りません(--;


http://www.ne.jp/asahi/phs/phs/blog/midi080224.lzh