AIR Android:旋轉(zhuǎn)手勢
旋轉(zhuǎn)手勢
旋轉(zhuǎn)手勢對應(yīng)TransformGestureEvent. GESTURE_ROTATE事件類型。和放縮手勢一樣,該事件需要兩個手指觸摸屏幕,但兩個手指的滑動方向相反,例如按順時針或逆時針扭動開關(guān),如圖3-3所示。
![]() |
圖3-3 旋轉(zhuǎn)手勢 |
處理旋轉(zhuǎn)手勢與處理放縮手勢的思路一樣,可以對上一節(jié)的程序GestureZoom稍做修改,將其中的事件類型GESTURE_ZOOM修改為GESTURE_ROTATE。
- loader.addEventListener(TransformGestureEvent.GESTURE_ROTATE, onRotate);
同時,編寫新的事件響應(yīng)函數(shù)onRotate,代碼如下:
- private function onRotate(e:TransformGestureEvent):void
- {
- var p:Point = new Point( e.localX, e.localY );
- var parent_p:Point = this.globalToLocal(loader.localToGlobal(p));
- //加上新的旋轉(zhuǎn)角度
- loader.rotation += e.rotation;
- var parent_p2:Point = this.globalToLocal(loader.localToGlobal(p));
- loader.x += (parent_p.x - parent_p2.x);
- loader.y += (parent_p.y - parent_p2.y);
- }
和上一節(jié)程序中的onZoom函數(shù)比較,讀者會發(fā)現(xiàn)這里只有如下一點不同:
- loader.rotation += e.rotation;
對loader對象進行旋轉(zhuǎn)時,也需要動態(tài)更改注冊點,保證始終以手勢動作的作用點為中心進行操作,整個流程和縮放操作完全相同,相關(guān)代碼請參閱源代碼ch3中的 GestureRotate項目。