TouchEvent の属性は MouseEvent と良く似ていて、殆どの属性は MouseEvent と共通です。大きく 3 つに分けて、押されているキー、操作の行われた座標、タッチイベント固有の情報、のカテゴリーで捉えることができます。
まずは、押されているキー関連の TouchEvent の属性のリストです。
- altKey : Boolean (Windows, Linux のみ)
Alt キーが押されているかを示す - commandKey : Boolean (Mac のみ)
Control キー か Command キー が押されているかを示す - controlKey : Boolean
Ctrl キー (Windows, Linux) もしくは Control キー (Mac) が押されているかを示す - ctrlKey : Boolean
Ctrl キー (Windows, Linux) もしくは Control キー か Command キーのいずれか (Mac) が押されているかを示す - shiftKey : Boolean
Shift キーが押されているかを示す
MouseEvent との違いは、commandKey が Flash Player からも使えるようになっている点です。ただ、現時点ではまだ Mac で TouchEvent 自体がサポートされていないので、この件については動作確認ができるようになってから信用するのがよいかもしれません。
次に操作の行われた座標関連は、
- localX : Number
イベントの発生したオブジェクトを基準としたイベント発生位置の x 座標 - localY : Number
イベントの発生したオブジェクトを基準としたイベント発生位置の y 座標 - stageX : Number [read-only]
グローバルなステージの座標を基準としたイベント発生位置の x 座標 - stageY : Number [read-only]
グローバルなステージの座標を基準としたイベント発生位置の y 座標
これらは MouseEvent と同じです。
残りは TouchEvent 固有の情報です。上から 2 つは MouseEvent と共通の属性です。
- isRelatedObjectInaccessible : Boolean
true の場合セキュリティ関連の理由により relatedObject 属性の値は null - relatedObject : InteractiveObject
イベント発生時にポインターの指すオブジェクト。ポインターの位置により mouseOver や mouseOut の振る舞いを変えたい場合に使用 - isPrimaryTouchPoint : Boolean
最初に触れた指 (タッチポイント) かどうかを示す - pressure : Number
タッチデバイスに触れた強さを 0.0 ~ 1.0 の値で示す (デバイスの機能により設定されない場合がある) - sizeX : Number
触れた領域の幅 - sizeY : Number
触れた領域の高さ - touchPointID : int
イベントを発生させた指 (タッチポイント) に割り振られた固有の識別番号
Multitouch.inputmode に TOUCH_POINT が設定されている場合でも MouseEvent は発生しますが、その際 TouchEvent と MouseEvent の両方が生成されるのは isPrimaryTouchPoint が ture のときだけです。複数の指で操作している場合、2 番目以降に触れた指からのイベントは isPrimaryTouchPoint が false となり TouchEvent のみが発行されます。
最後に簡単なサンプルをご紹介します。触れた箇所に円を描くというものです。
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; stage.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); function onTouchBegin(e:TouchEvent):void { var circle:Shape = new Shape(); circle.graphics.beginFill(0xFF6600); circle.graphics.drawCircle(0, 0, 20); circle.x = e.stageX; circle.y = e.stageY; stage.addChild(circle); }
コメントする