| 套件 | 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
隱藏繼承公用屬性
顯示繼承公用屬性