Sprite クラス
に 2 つのメソッドが追加されました。これらは、
Sprite.startTouchDrag()
および
Sprite.stopTouchDrag()
で、タッチポイント入力をサポートしているタッチ対応アプリケーションに追加機能を提供します。これらのメソッドは、マウスイベントに対する
Sprite.startDrag()
メソッドおよび
Sprite.stopDrag()
メソッドと同じように機能します。ただし、
Sprite.startTouchDrag()
メソッドおよび
Sprite.stopTouchDrag()
メソッドはいずれも
touchPointID
値をパラメーターとして取得します。
ランタイムでは
touchPointID
値をタッチイベントのイベントオブジェクトに割り当てます。複数の同時タッチポイントがサポートされている環境では(ジェスチャが処理されない場合でも)、この値を使用して、特定のタッチポイントに応答します。
touchPointID
プロパティについて詳しくは、
タッチポイント ID
を参照してください。
次のコードは、タッチイベントについて、開始ドラッグイベントハンドラーと停止ドラッグイベントハンドラーの簡単な例を示しています。変数
bg
は
mySprite
を含む表示オブジェクトです。
mySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
mySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
function onTouchBegin(e:TouchEvent) {
e.target.startTouchDrag(e.touchPointID, false, bg.getRect(this));
trace("touch begin");
}
function onTouchEnd(e:TouchEvent) {
e.target.stopTouchDrag(e.touchPointID);
trace("touch end");
}
また、次のコードは、ドラッグ操作にタッチイベントのフェーズを組み合わせた、より高度な例を示しています。
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
var mySprite:Sprite = new Sprite();
mySprite.graphics.beginFill(0x336699);
mySprite.graphics.drawRect(0,0,40,40);
addChild(mySprite);
mySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
mySprite.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
mySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
function onTouchBegin(evt:TouchEvent) {
evt.target.startTouchDrag(evt.touchPointID);
evt.target.scaleX *= 1.5;
evt.target.scaleY *= 1.5;
}
function onTouchMove(evt:TouchEvent) {
evt.target.alpha = 0.5;
}
function onTouchEnd(evt:TouchEvent) {
evt.target.stopTouchDrag(evt.touchPointID);
evt.target.width = 40;
evt.target.height = 40;
evt.target.alpha = 1;
}