套件 | flash.events |
類別 | public class TransformGestureEvent |
繼承 | TransformGestureEvent GestureEvent Event Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2, Flash Lite 4 |
裝置或作業系統會解譯手勢輸入。因此,不同的裝置或作業系統對於個別的手勢類型有不同的需求。在某個裝置上的揮動,可能需要不同於在其他裝置上揮動的輸入移動。請參閱硬體或作業系統文件,以探索裝置或作業系統如何將接觸解譯為特定手勢。
使用 Multitouch 類別判定目前環境支援觸控互動的程度,以及管理觸控互動的支援 (若目前環境支援)。
注意:當物件在顯示清單中巢狀排列時,觸控事件會指向在顯示清單中可見的最深層巢狀物件。這個物件稱為目標節點。若要讓目標節點的祖系 (包含顯示清單中目標節點的物件) 接收觸控事件的通知,請在祖系節點上使用 EventDispatcher.addEventListener()
(將 type 參數設定為您要偵測的特定觸控事件)。
當使用者觸碰裝置時,TransformGestureEvent 物件的縮放、旋轉以及偏移屬性是之前手勢事件的遞增數值。例如,隨著手勢增加顯示物件的大小,縮放數值可能依序從 1.03
、1.01
、1.01
、1.02
變更,表示在手勢結束時,顯示物件為原本大小的 1.0717 倍。
對於 TransformGestureEvent 物件,會將目前手勢未修改的屬性設定為識別值。例如,平移手勢並沒有旋轉或縮放轉換,因此事件物件的 rotation
值為 0
,而 scaleX
與 scaleY
屬性則為 1
。
相關 API 元素
flash.events.TouchEvent
flash.events.GestureEvent
flash.events.PressAndTapGestureEvent
flash.events.MouseEvent
flash.events.EventDispatcher.addEventListener()
屬性 | 定義自 | ||
---|---|---|---|
altKey : Boolean
指出 Alt 鍵為作用中 (true) 或停用 (false)。 | GestureEvent | ||
bubbles : Boolean [唯讀]
指出事件是否為反昇事件。 | Event | ||
cancelable : Boolean [唯讀]
指出是否可避免與事件相關聯的行為指令。 | Event | ||
commandKey : Boolean
指出 Command 鍵是否已啟用 (僅限 Mac)。 | GestureEvent | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
controlKey : Boolean
指出是否已啟用 Control 鍵 (在 Mac 中) 以及是否已啟用 Ctrl 鍵 (在 Windows 或 Linux 中)。 | GestureEvent | ||
ctrlKey : Boolean
在 Windows 或 Linux 中,指出 Ctrl 鍵為作用中 (true) 或已停用 (false)。 | GestureEvent | ||
currentTarget : Object [唯讀]
正主動使用事件偵聽程式處理 Event 物件的物件。 | Event | ||
eventPhase : uint [唯讀]
事件流程中的目前階段。 | Event | ||
localX : Number
相對於包含的 sprite,事件發生的水平座標。 | GestureEvent | ||
localY : Number
相對於包含的 sprite,事件發生的垂直座標。 | GestureEvent | ||
offsetX : Number
自從前次手勢事件之後顯示物件的水平轉換。 | TransformGestureEvent | ||
offsetY : Number
自從前次手勢事件之後顯示物件的垂直轉換。 | TransformGestureEvent | ||
phase : String
GesturePhase 類別的值,指出觸控手勢的進度。 | GestureEvent | ||
rotation : Number
自從前次手勢事件之後,顯示物件沿著 Z 軸的目前旋轉角度 (以度數為單位)。 | TransformGestureEvent | ||
scaleX : Number
自從前次手勢事件之後顯示物件的水平縮放。 | TransformGestureEvent | ||
scaleY : Number
自從上次手勢事件之後顯示物件的垂直縮放。 | TransformGestureEvent | ||
shiftKey : Boolean
指出 Shift 鍵為作用中 (true) 或停用 (false)。 | GestureEvent | ||
stageX : Number [唯讀]
在全域舞台座標上,事件發生的水平座標。 | GestureEvent | ||
stageY : Number [唯讀]
在全域舞台座標上,事件發生的垂直座標。 | GestureEvent | ||
target : Object [唯讀]
事件目標。 | Event | ||
type : String [唯讀]
事件類型。 | Event | ||
velocity : Number
轉換手勢事件的速度,以每秒像素數計算。 | TransformGestureEvent |
方法 | 定義自 | ||
---|---|---|---|
TransformGestureEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = false, phase:String = null, localX:Number = 0, localY:Number = 0, scaleX:Number = 1.0, scaleY:Number = 1.0, rotation:Number = 0, offsetX:Number = 0, offsetY:Number = 0, ctrlKey:Boolean = false, altKey:Boolean = false, shiftKey:Boolean = false, commandKey:Boolean = false, controlKey:Boolean = false, velocity:Number = 0)
建立包含複雜多點觸控事件 (例如使用者在螢幕滑動手指) 相關資訊的 Event 物件。 | TransformGestureEvent | ||
[覆寫]
建立 TransformGestureEvent 物件的副本,然後設定每個屬性值以符合原始物件的屬性值。 | TransformGestureEvent | ||
公用程式函數,可用來實作自訂 ActionScript 3.0 Event 類別中的 toString() 方法。 | Event | ||
指出物件是否有已定義的指定屬性。 | Object | ||
檢查是否已經對事件呼叫 preventDefault() 方法。 | Event | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
如果可以取消事件的預設行為指令,則取消該行為指令。 | Event | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
避免處理事件流程中,目前節點以及任何後續節點中的任何事件偵聽程式。 | Event | ||
避免處理接續在事件流程中的目前節點之後,後續節點中的任何事件偵聽程式。 | Event | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
[覆寫]
傳回包含 TransformGestureEvent 物件所有屬性的字串。 | TransformGestureEvent | ||
假設事件處理常式已經修改顯示清單,在處理手勢事件後,重新整理 Flash 執行階段顯示。 | GestureEvent | ||
會傳回指定之物件的基本值。 | Object |
常數 | 定義自 | ||
---|---|---|---|
GESTURE_DIRECTIONAL_TAP : String = "gestureDirectionalTap" [靜態]
定義 GESTURE_DIRECTIONAL_TAP 觸控事件物件的 type 屬性值。 | TransformGestureEvent | ||
GESTURE_PAN : String = "gesturePan" [靜態]
定義 GESTURE_PAN 觸控事件物件的 type 屬性值。 | TransformGestureEvent | ||
GESTURE_ROTATE : String = "gestureRotate" [靜態]
定義 GESTURE_ROTATE 觸控事件物件的 type 屬性值。 | TransformGestureEvent | ||
GESTURE_SWIPE : String = "gestureSwipe" [靜態]
定義 GESTURE_SWIPE 觸控事件物件的 type 屬性值。 | TransformGestureEvent | ||
GESTURE_ZOOM : String = "gestureZoom" [靜態]
定義 GESTURE_ZOOM 觸控事件物件的 type 屬性值。 | TransformGestureEvent |
offsetX | 屬性 |
offsetY | 屬性 |
rotation | 屬性 |
scaleX | 屬性 |
scaleY | 屬性 |
velocity | 屬性 |
TransformGestureEvent | () | 建構函式 |
public function TransformGestureEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = false, phase:String = null, localX:Number = 0, localY:Number = 0, scaleX:Number = 1.0, scaleY:Number = 1.0, rotation:Number = 0, offsetX:Number = 0, offsetY:Number = 0, ctrlKey:Boolean = false, altKey:Boolean = false, shiftKey:Boolean = false, commandKey:Boolean = false, controlKey:Boolean = false, velocity:Number = 0)
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2, Flash Lite 4 |
建立包含複雜多點觸控事件 (例如使用者在螢幕滑動手指) 相關資訊的 Event 物件。Event 物件會當做參數傳遞至事件偵聽程式。
參數type:String — 事件類型。可能的值為:TransformGestureEvent.GESTURE_PAN 、TransformGestureEvent.GESTURE_ROTATE 、TransformGestureEvent.GESTURE_SWIPE 與 TransformGestureEvent.GESTURE_ZOOM 。
| |
bubbles:Boolean (default = true ) — 判斷事件物件是否參與事件流程的反昇階段。
| |
cancelable:Boolean (default = false ) — 判斷是否可以取消 Event 物件。
| |
phase:String (default = null ) — 這個數值會追蹤觸控手勢的開始、進度與結束。可能的值為:GesturePhase.BEGIN 、GesturePhase.END 以及 GesturePhase.UPDATE 。
| |
localX:Number (default = 0 ) — 相對於包含的顯示物件,事件發生的水平座標。
| |
localY:Number (default = 0 ) — 相對於包含的顯示物件,事件發生的垂直座標。
| |
scaleX:Number (default = 1.0 ) — 顯示物件的水平縮放。
| |
scaleY:Number (default = 1.0 ) — 顯示物件的垂直縮放。
| |
rotation:Number (default = 0 ) — 顯示物件沿著 Z 軸的目前旋轉角度 (以度數為單位)。
| |
offsetX:Number (default = 0 ) — 顯示物件與其原始位置的水平轉移差異。
| |
offsetY:Number (default = 0 ) — 顯示物件與其原始位置的垂直轉移差異。
| |
ctrlKey:Boolean (default = false ) — (僅限 AIR) 轉換手勢的速度,以每秒像素數計算。
| |
altKey:Boolean (default = false ) — 在 Windows 或 Linux 中,表示是否已啟用 Ctrl 鍵。在 Mac 中,指出已啟用 Ctrl 鍵或 Command 鍵。
| |
shiftKey:Boolean (default = false ) — 指出是否已啟用 Alt 鍵 (僅限 Windows 或 Linux)。
| |
commandKey:Boolean (default = false ) — 指出是否已啟用 Shift 鍵。
| |
controlKey:Boolean (default = false ) — (僅限 AIR) 指出 Command 鍵是否已啟用 (僅限 Mac)。這個參數僅適用於 Adobe AIR;請勿針對 Flash Player 內容設定此參數。
| |
velocity:Number (default = 0 ) — (僅限 AIR) 指出 Control 或 Ctrl 鍵是否已啟用。這個參數僅適用於 Adobe AIR;請勿針對 Flash Player 內容設定此參數。
|
相關 API 元素
clone | () | 方法 |
toString | () | 方法 |
GESTURE_DIRECTIONAL_TAP | 常數 |
public static const GESTURE_DIRECTIONAL_TAP:String = "gestureDirectionalTap"
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 24, Flash Lite 4 |
定義 GESTURE_DIRECTIONAL_TAP
觸控事件物件的 type
屬性值。
傳送的 TransformGestureEvent 物件具有下列屬性:
屬性 | 值 |
---|---|
altKey | 如果 Alt 鍵為作用中 (Windows 或 Linux),則為 true 。 |
bubbles | true |
cancelable | false ;沒有要取消的預設行為指令。 |
commandKey | 在 Mac 中,如果 Command 鍵為作用中,則為 true ;如果已停用則為 false 。在 Windows 中一定為 false 。 |
controlKey | 如果 Ctrl 或 Control 鍵為作用中,則為 true ;如果已停用,則為 false 。 |
ctrlKey | 在 Windows 或 Linux 中,如果 Ctrl 鍵為作用中,則為 true ;在 Mac 中,如果 Ctrl 鍵或 Command 鍵為作用中,則為 true ;否則為 false 。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
phase | 事件流程中的目前階段。 對於揮動手勢,這個值永遠都是 all ,會在傳送事件後,對應至值 GesturePhase.ALL 。 |
localX | 相對於包含的 Sprite,事件發生的水平座標。以方向點選手勢而言,這個值為螢幕中央。 |
localY | 相對於包含的 Sprite,事件發生的垂直座標。以方向點選手勢而言,這個值為螢幕中央。 |
scaleX | 顯示物件的水平縮放。對於方向點選手勢,這個值為 1 |
scaleY | 顯示物件的垂直縮放。對於方向點選手勢,這個值為 1 |
rotation | 顯示物件沿著 Z 軸的目前旋轉角度 (以度數為單位)。對於方向點選手勢,這個值為 0 |
offsetX | 指出水平方向;1 表示右,而 -1 則表示左。 |
offsetY | 指出垂直方向:1 表示下,而 -1 表示上。 |
velocity | 表示揮動手勢的速度,以每秒像素數計算 (僅限 AIR)。 |
shiftKey | 如果 Shift 鍵為作用中,則為 true ;若已停用,則為 false 。 |
target | 位於觸控裝置下方的 InteractiveObject 實體。target 不會永遠都是顯示清單中註冊事件偵聽程式的物件。 請使用 currentTarget 屬性,存取目前正在處理該事件之顯示清單中的物件。 |
相關 API 元素
GESTURE_PAN | 常數 |
public static const GESTURE_PAN:String = "gesturePan"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2, Flash Lite 4 |
定義 GESTURE_PAN
觸控事件物件的 type
屬性值。
傳送的 TransformGestureEvent 物件具有下列屬性:
屬性 | 值 |
---|---|
altKey | 如果 Alt 鍵為作用中 (Windows 或 Linux),則為 true 。 |
bubbles | true |
cancelable | false ;沒有要取消的預設行為指令。 |
commandKey | 在 Mac 中,如果 Command 鍵為作用中,則為 true ;如果已停用則為 false 。在 Windows 中一定為 false 。 |
controlKey | 如果 Ctrl 或 Control 鍵為作用中,則為 true ;如果已停用,則為 false 。 |
ctrlKey | 在 Windows 或 Linux 中,如果 Ctrl 鍵為作用中,則為 true ;在 Mac 中,如果 Ctrl 鍵或 Command 鍵為作用中,則為 true ;否則為 false 。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
phase | 事件流程中的目前階段;來自 GesturePhase 類別的值。 |
localX | 相對於包含的顯示物件,事件發生的水平座標。 |
localY | 相對於包含的顯示物件,事件發生的垂直座標。 |
scaleX | 自從前次手勢事件之後顯示物件的水平縮放。對於平移手勢,這個值為 1 。 |
scaleY | 自從前次手勢事件之後顯示物件的垂直縮放。對於平移手勢,這個值為 1 。 |
rotation | 自從前次手勢事件之後,顯示物件沿著 Z 軸的目前旋轉角度 (以度數為單位)。對於平移手勢,這個值為 0 。 |
offsetX | 顯示物件與其前次手勢事件之原始位置的水平轉移差異。 |
offsetY | 顯示物件與其前次手勢事件之原始位置的垂直轉移差異。 |
velocity | 手勢事件的速度,以每秒像素數計算 (僅限 AIR)。對於平移手勢,這個值為 0 |
shiftKey | 如果 Shift 鍵為作用中,則為 true ;若已停用,則為 false 。 |
target | 位於觸控裝置下方的 InteractiveObject 實體。target 不會永遠都是顯示清單中註冊事件偵聽程式的物件。 請使用 currentTarget 屬性,存取目前正在處理該事件之顯示清單中的物件。 |
相關 API 元素
範例 ( 如何使用本範例 )
GESTURE_PAN
事件的事件處理。當使用者在觸控裝置上執行平移手勢時,myTextField 會填入目前階段。
Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_PAN , onPan); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onPan(evt:TransformGestureEvent):void { evt.target.localX++; if (evt.phase==GesturePhase.BEGIN) { myTextField.text = "Begin"; } if (evt.phase==GesturePhase.UPDATE) { myTextField.text = "Update"; } if (evt.phase==GesturePhase.END) { myTextField.text = "End"; } }
GESTURE_ROTATE | 常數 |
public static const GESTURE_ROTATE:String = "gestureRotate"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2, Flash Lite 4 |
定義 GESTURE_ROTATE
觸控事件物件的 type
屬性值。
在這個事件期間,rotation
屬性會包含旋轉角度。旋轉值如下所示:
- 0 到 180 度代表順時針方向
- - 180 到 0 度代表逆時針方向
傳送的 TransformGestureEvent 物件具有下列屬性:
屬性 | 值 |
---|---|
altKey | 如果 Alt 鍵為作用中 (Windows 或 Linux),則為 true 。 |
bubbles | true |
cancelable | false ;沒有要取消的預設行為指令。 |
commandKey | 在 Mac 中,如果 Command 鍵為作用中,則為 true ;如果已停用則為 false 。在 Windows 中一定為 false 。 |
controlKey | 如果 Ctrl 或 Control 鍵為作用中,則為 true ;如果已停用,則為 false 。 |
ctrlKey | 在 Windows 或 Linux 中,如果 Ctrl 鍵為作用中,則為 true ;在 Mac 中,如果 Ctrl 鍵或 Command 鍵為作用中,則為 true ;否則為 false 。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
phase | 事件流程中的目前階段;來自 GesturePhase 類別的值。 |
localX | 相對於包含的顯示物件,事件發生的水平座標。 |
localY | 相對於包含的顯示物件,事件發生的垂直座標。 |
scaleX | 自從前次手勢事件之後顯示物件的水平縮放。 |
scaleY | 自從前次手勢事件之後顯示物件的垂直縮放。 |
rotation | 自從前次手勢事件之後,顯示物件沿著 Z 軸的目前旋轉角度 (以度數為單位)。 |
offsetX | 顯示物件與其前次手勢事件之原始位置的水平轉移差異。 |
offsetY | 顯示物件與其前次手勢事件之原始位置的垂直轉移差異。 |
velocity | 手勢事件的速度,以每秒像素數計算 (僅限 AIR)。對於旋轉手勢,這個值為 0 |
shiftKey | 如果 Shift 鍵為作用中,則為 true ;若已停用,則為 false 。 |
target | 位於觸控裝置下方的 InteractiveObject 實體。target 不會永遠都是顯示清單中註冊事件偵聽程式的物件。 請使用 currentTarget 屬性,存取目前正在處理該事件之顯示清單中的物件。 |
相關 API 元素
範例 ( 如何使用本範例 )
GESTURE_ROTATE
事件的事件處理。當使用者在觸控裝置上執行旋轉手勢時,mySprite 會旋轉而 myTextField 會填入目前階段。
Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_ROTATE , onRotate ); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onRotate(evt:TransformGestureEvent):void { evt.target.rotation -= 45; if (evt.phase==GesturePhase.BEGIN) { myTextField.text = "Begin"; } if (evt.phase==GesturePhase.UPDATE) { myTextField.text = "Update"; } if (evt.phase==GesturePhase.END) { myTextField.text = "End"; } }
GESTURE_SWIPE | 常數 |
public static const GESTURE_SWIPE:String = "gestureSwipe"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2, Flash Lite 4 |
定義 GESTURE_SWIPE
觸控事件物件的 type
屬性值。
傳送的 TransformGestureEvent 物件具有下列屬性:
屬性 | 值 |
---|---|
altKey | 如果 Alt 鍵為作用中 (Windows 或 Linux),則為 true 。 |
bubbles | true |
cancelable | false ;沒有要取消的預設行為指令。 |
commandKey | 在 Mac 中,如果 Command 鍵為作用中,則為 true ;如果已停用則為 false 。在 Windows 中一定為 false 。 |
controlKey | 如果 Ctrl 或 Control 鍵為作用中,則為 true ;如果已停用,則為 false 。 |
ctrlKey | 在 Windows 或 Linux 中,如果 Ctrl 鍵為作用中,則為 true ;在 Mac 中,如果 Ctrl 鍵或 Command 鍵為作用中,則為 true ;否則為 false 。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
phase | 事件流程中的目前階段。 對於揮動手勢,這個值永遠都是 all ,會在傳送事件後,對應至值 GesturePhase.ALL 。 |
localX | 相對於包含的 sprite,事件發生的水平座標。 |
localY | 相對於包含的 sprite,事件發生的垂直座標。 |
scaleX | 顯示物件的水平縮放。對於揮動手勢,這個值為 1 。 |
scaleY | 顯示物件的垂直縮放。對於揮動手勢,這個值為 1 。 |
rotation | 顯示物件沿著 Z 軸的目前旋轉角度 (以度數為單位)。對於揮動手勢,這個值為 0 。 |
offsetX | 指出水平方向;1 表示右,而 -1 則表示左。 |
offsetY | 指出垂直方向:1 表示下,而 -1 表示上。 |
velocity | 表示揮動手勢的速度,以每秒像素數計算 (僅限 AIR)。對於靜止,這個值為 0 |
shiftKey | 如果 Shift 鍵為作用中,則為 true ;若已停用,則為 false 。 |
target | 位於觸控裝置下方的 InteractiveObject 實體。target 不會永遠都是顯示清單中註冊事件偵聽程式的物件。 請使用 currentTarget 屬性,存取目前正在處理該事件之顯示清單中的物件。 |
相關 API 元素
範例 ( 如何使用本範例 )
GESTURE_SWIPE
事件的事件處理。當使用者在觸控裝置上執行揮動手勢時,myTextField 會填入階段 all
,這是揮動事件唯一的階段。
Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onSwipe(evt:TransformGestureEvent):void { if (evt.offsetX == 1 ) { myTextField.text = "right"; } if (evt.offsetY == -1) { myTextField.text = "up"; } myTextField.text = evt.phase; }
GESTURE_ZOOM | 常數 |
public static const GESTURE_ZOOM:String = "gestureZoom"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2, Flash Lite 4 |
定義 GESTURE_ZOOM
觸控事件物件的 type
屬性值。
傳送的 TransformGestureEvent 物件具有下列屬性:
屬性 | 值 |
---|---|
altKey | 如果 Alt 鍵為作用中 (Windows 或 Linux),則為 true 。 |
bubbles | true |
cancelable | false ;沒有要取消的預設行為指令。 |
commandKey | 在 Mac 中,如果 Command 鍵為作用中,則為 true ;如果已停用則為 false 。在 Windows 中一定為 false 。 |
controlKey | 如果 Ctrl 或 Control 鍵為作用中,則為 true ;如果已停用,則為 false 。 |
ctrlKey | 在 Windows 或 Linux 中,如果 Ctrl 鍵為作用中,則為 true ;在 Mac 中,如果 Ctrl 鍵或 Command 鍵為作用中,則為 true ;否則為 false 。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
phase | 事件流程中的目前階段;來自 GesturePhase 類別的值。 |
localX | 相對於包含的顯示物件,事件發生的水平座標。 |
localY | 相對於包含的顯示物件,事件發生的垂直座標。 |
scaleX | 自從前次手勢事件之後顯示物件的水平縮放。 |
scaleY | 自從前次手勢事件之後顯示物件的垂直縮放。 |
rotation | 自從前次手勢事件之後,顯示物件沿著 Z 軸的目前旋轉角度 (以度數為單位)。 |
offsetX | 顯示物件與其前次手勢事件之原始位置的水平轉移差異。 |
offsetY | 顯示物件與其前次手勢事件之原始位置的垂直轉移差異。 |
velocity | 手勢事件的速度,以每秒像素數計算 (僅限 AIR)。對於縮放手勢,這個值為 0 |
shiftKey | 如果 Shift 鍵為作用中,則為 true ;若已停用,則為 false 。 |
target | 位於觸控裝置下方的 InteractiveObject 實體。target 不會永遠都是顯示清單中註冊事件偵聽程式的物件。 請使用 currentTarget 屬性,存取目前正在處理該事件之顯示清單中的物件。 |
相關 API 元素
範例 ( 如何使用本範例 )
GESTURE_ZOOM
事件的事件處理。當使用者在觸控裝置上執行縮放手勢時,myTextField 會填入目前階段。
Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_ZOOM , onZoom); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onZoom(evt:TransformGestureEvent):void { evt.target.scaleX++; if (evt.phase==GesturePhase.BEGIN) { myTextField.text = "Begin"; } if (evt.phase==GesturePhase.UPDATE) { myTextField.text = "Update"; } if (evt.phase==GesturePhase.END) { myTextField.text = "End"; } }
GESTURE_ROTATE
事件的事件處理。當使用者在觸控裝置上執行旋轉手勢時,mySprite 會旋轉而 myTextField 會填入目前階段。
Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_ROTATE , onRotate ); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onRotate(evt:TransformGestureEvent):void { evt.target.rotation -= 45; if (evt.phase==GesturePhase.BEGIN) { myTextField.text = "Begin"; } if (evt.phase==GesturePhase.UPDATE) { myTextField.text = "Update"; } if (evt.phase==GesturePhase.END) { myTextField.text = "End"; } }
package { import flash.display.Bitmap; import flash.display.Sprite; import flash.events.TransformGestureEvent; import flash.text.TextField; import flash.text.TextFormat; import flash.ui.Multitouch; import flash.ui.MultitouchInputMode; [SWF(width=320, height=460, frameRate=24, backgroundColor=0x000000)] public class TransformGestureExample2 extends Sprite { [Embed(source="african_elephant.jpg")] public var ElephantImage:Class; public var scaleDebug:TextField; public var rotateDebug:TextField; public function TransformGestureExample2() { // Debug var tf:TextFormat = new TextFormat(); tf.color = 0xffffff; tf.font = "Helvetica"; tf.size = 11; this.scaleDebug = new TextField(); this.scaleDebug.width = 310; this.scaleDebug.defaultTextFormat = tf; this.scaleDebug.x = 2; this.scaleDebug.y = 2; this.stage.addChild(this.scaleDebug); this.rotateDebug = new TextField(); this.rotateDebug.width = 310; this.rotateDebug.defaultTextFormat = tf; this.rotateDebug.x = 2; this.rotateDebug.y = 15; this.stage.addChild(this.rotateDebug); var elephantBitmap:Bitmap = new ElephantImage(); var elephant:Sprite = new Sprite(); elephant.addChild(elephantBitmap); elephant.x = 160; elephant.y = 230; elephantBitmap.x = (300 - (elephantBitmap.bitmapData.width / 2)) * -1; elephantBitmap.y = (400 - (elephantBitmap.bitmapData.height / 2)) *-1; this.addChild(elephant); Multitouch.inputMode = MultitouchInputMode.GESTURE; elephant.addEventListener(TransformGestureEvent.GESTURE_ZOOM, onZoom); elephant.addEventListener(TransformGestureEvent.GESTURE_ROTATE, onRotate); } private function onZoom(e:TransformGestureEvent):void { this.scaleDebug.text = (e.scaleX + ", " + e.scaleY); var elephant:Sprite = e.target as Sprite; elephant.scaleX *= e.scaleX; elephant.scaleY *= e.scaleY; } private function onRotate(e:TransformGestureEvent):void { var elephant:Sprite = e.target as Sprite; this.rotateDebug.text = String(e.rotation); elephant.rotation += e.rotation; } } }
Tue Jun 12 2018, 03:47 PM Z