- 2009年10月30日 19:43
- ActionScript 3.0
SparkProjectに、MouseGestureをアップしました。MouseGestureは、その名の通りマウスジェスチャーを手軽実装するためのライブラリです。ジェスチャーの挙動としては、Firefoxのアドオン、ALL in one Gestureが近いでしょう。基本的には、左クリックが押された瞬間から離されるまでの挙動をイベントとして送出します。タッチパッドを用いた少ないアクションが必要とされる案件で使えるかも知れません。以下はサンプルと使い方。
サンプル
使い方
- GesturePadインスタンスを表示リストの最上位に追加する。
- GesturePadインスタンスにMouseGestureEventをリスナー登録する
確認用テキストフィールド
var textfield:TextField = addChild(new TextField) as TextField; textfield.textColor = 0; textfield.autoSize = TextFieldAutoSize.LEFT;
まずは確認用のテキストフィールドを定義、表示リストに追加します。
GesturePadクラスと描画ビットマップ
var gesturePad:GesturePad = addChild(new GesturePad) as GesturePad; addChild(gesturePad.bitmap) gesturePad.lineColor = 0;
GesturePadインスタンスを表示リストに追加します。任意でジェスチャーの軌道を記録したbitmapも表示リストに追加してください。GesturePad.bitmapは、自動的にジェスチャーを描画します。
MouseGestureEvent
//全てのジェスチャーを受信したい場合
gesturePad.addEventListener(MouseGestureEvent.GESTURE, function(e:MouseGestureEvent) {
textfield.text = e.gesture
gesturePad.init();//描画を初期化
});
MouseGestureEventは、GesturePad上でMouseEvent.Downでジェスチャーの記録が開始され、MouseEvent.Upされた瞬間に送出されます。ジェスチャーの記録は、MouseGestureEvent.gestureにStringで格納されます。
ビットマップを表示リストに追加している場合、任意にinitで初期化することで、ビットマップの描画をクリアします。
特定のジェスチャーのみ受信
gesturePad.addEventListener(MouseGestureEvent.LEFT+MouseGestureEvent.RIGHT, function(e:MouseGestureEvent) {
trace("左右")
});
MouseGestureEventクラスに定義されている定数LEFT,RIGHT,UP,DOWNを組み合わせることで、特定のマウスジェスチャーのみ取得できます。
サンプルソース
//確認用のテキストフィールド
var textfield:TextField = addChild(new TextField) as TextField;
textfield.textColor = 0;
textfield.autoSize = TextFieldAutoSize.LEFT;
//ジェスチャーパッドを表示リストに追加します。
var gesturePad:GesturePad = addChild(new GesturePad) as GesturePad;
//ジェスチャーを描画するビットマップを表示リストに追加します。ジェスチャーの挙動を確認したいとき用。強制ではありません。
addChild(gesturePad.bitmap)
gesturePad.lineColor = 0;
//全てのジェスチャーを受信したい場合
gesturePad.addEventListener(MouseGestureEvent.GESTURE, function(e:MouseGestureEvent) {
textfield.text = e.gesture
gesturePad.init();//描画を初期化
});
//特定のジェスチャーのみを受信したい場合
gesturePad.addEventListener(MouseGestureEvent.LEFT+MouseGestureEvent.RIGHT, function(e:MouseGestureEvent) {
trace("左右")
});



