TouchEvent の属性

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);
}
 

トラックバック(0)

トラックバックURL: http://cuaoar.jp/mt4/mt-tb.cgi/61

コメントする

2014年1月

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
レンタルサーバー

月別 アーカイブ

Powered by Movable Type 4.261