2011年11月05日

FlashCS5.5とFlashDevelopでAIRアプリを作るvol.2 ショートカットの作成

airflash

ショートカットの作成は、stage.addEventListener(KeyBoardEvent.KEY_DOWN,keyDownFunc)でキーを押した時のイベントを取得できるので、あとは押されたキーによって動作内容を振り分ければOKです。振り分けなのでswitch..caseを使います。

押されたキー内容は、keyCodeで数値として取得できます。aなら65、backspaceなら8、といった具合です。数値をいちいち調べるのは面倒なので、オブジェクトに格納しておくと便利です。


private static const SC:Object = {n0: 48, n1: 49, n2: 50, n3: 51, n4: 52, n5: 53, n6: 54, n7: 55, n8: 56, n9: 57, t0: 96, t1: 97, t2: 98, t3: 99, t4: 100, t5: 101, t6: 102, t7: 103, t8: 104, t9: 105, a: 65, b: 66, c: 67, d: 68, e: 69, f: 70, g: 71, h: 72, i: 73, j: 74, k: 75, l: 76, m: 77, n: 78, o: 79, p: 80, q: 81, r: 82, s: 83, t: 84, u: 85, v: 86, w: 87, x: 88, y: 89, z: 90, tab: 9, enter: 13, backspace: 8, left: 37, up: 38, right: 39, down: 40};

こんな感じで利用します。

stage.addEventListener(KeyBoardEvent.KEY_DOWN,function(e:KeyBoardEvent){if(e.ctrlKey==true){
switch(e.keyCode){
case SC.s:
e.shiftKey?dataExport():dataSave();//shiftKeyの有無で動作を振り分ける
break;
case SC.n1://breakせず、t1と同じ処理をさせる
case SC.t1://テンキーの1を押した場合
trace("1をプッシュしました");
break;
}
}
});


作り直し進行中ですが、車輪の再発明しまくってます。自分で作ったクラスなのに、再利用できるものが少ない… 再利用できたものと出来なかったものを比べて、良いクラスの作り方について考えたりしています。再利用しやすいのはやっぱり、「データを渡せば結果を返してくれるだけのクラス」でした。一方通行のクラスというか。使いにくいのは、ムービークリップと関連付けるような、多機能なクラスですね。ブラックボックス化する事を原則として考えればいいのかなーとか思っています。

理想は、複雑なクラスをなるべく単機能なクラス群として構成する事なんでしょうが、なかなか難しいです。また処理の振り分けのタイミングも、考える必要があるなぁと思います。振り分けてからデータ渡すのがいいのか、データ渡してから振り分けるのが良いのか。これはきっとケースバイケースなので、都度原則に立ち返って、シンプルなソースを書きたいところです。

sarustar at 03:37│Comments(2)TrackBack(0)このエントリーをはてなブックマークに追加 mixiチェック Clip to Evernote ActionScript3 




トラックバックURL

>

この記事へのコメント

1. Posted by 現地ツアー バンコク   2011年11月25日 00:58
TMMYモータース「株式会社ワイズカンパニー」代表取締役山田与。も設定するがうまくサーバーにつながらない。
2. Posted by mens nike shox r4   2014年04月20日 08:42
Hello everyone, we are a recent addition to a very nice site, I think they should come up with good things to share!東京油田:FlashCS5.5とFlashDevelopでAIRアプリを作るvol.2 ショートカットの作成 - livedoor Blog(ブログ) Something very good look around you can go take a look. Welcome to come go to my ?nternet site !mens nike shox r4.

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔