適用於 Adobe® Flash® Platform 的 ActionScript® 3.0 參考
首頁  |  隱藏套件和類別清單 |  套件  |  類別  |  新增內容  |  索引  |  附錄  |  為什麼顯示英文?
篩選: 從伺服器擷取資料...
從伺服器擷取資料...
flash.events 

TransformGestureEvent  - AS3

套件flash.events
類別public class TransformGestureEvent
繼承TransformGestureEvent Inheritance GestureEvent Inheritance Event Inheritance Object

語言版本: ActionScript 3.0
執行階段版本: Flash Player 10.1, AIR 2, Flash Lite 4

TransformGestureEvent 類別可讓您處理複雜的移動輸入事件 (例如在觸控螢幕上移動多根手指),裝置或作業系統會將這些事件解譯為手勢。手勢可以有一或多個觸控點。當使用者與具有觸控螢幕的裝置 (如行動電話或數位板) 互動時,使用者通常是用手指或是指向裝置在螢幕上觸控和移動。您可以利用 GestureEvent、PressAndTapGestureEvent 以及 TransformGestureEvent 類別開發回應這個使用者互動的應用程式。利用在此處定義,或是在相關 GestureEvent 與 TouchEvent 類別中定義的事件類型,建立事件偵聽程式。然後,利用這些類別的屬性和方法建構回應使用者觸控裝置的事件處理常式。

裝置或作業系統會解譯手勢輸入。因此,不同的裝置或作業系統對於個別的手勢類型有不同的需求。在某個裝置上的揮動,可能需要不同於在其他裝置上揮動的輸入移動。請參閱硬體或作業系統文件,以探索裝置或作業系統如何將接觸解譯為特定手勢。

使用 Multitouch 類別判定目前環境支援觸控互動的程度,以及管理觸控互動的支援 (若目前環境支援)。

注意:當物件在顯示清單中巢狀排列時,觸控事件會指向在顯示清單中可見的最深層巢狀物件。這個物件稱為目標節點。若要讓目標節點的祖系 (包含顯示清單中目標節點的物件) 接收觸控事件的通知,請在祖系節點上使用 EventDispatcher.addEventListener() (將 type 參數設定為您要偵測的特定觸控事件)。

當使用者觸碰裝置時,TransformGestureEvent 物件的縮放、旋轉以及偏移屬性是之前手勢事件的遞增數值。例如,隨著手勢增加顯示物件的大小,縮放數值可能依序從 1.031.011.011.02 變更,表示在手勢結束時,顯示物件為原本大小的 1.0717 倍。

對於 TransformGestureEvent 物件,會將目前手勢未修改的屬性設定為識別值。例如,平移手勢並沒有旋轉或縮放轉換,因此事件物件的 rotation 值為 0,而 scaleXscaleY 屬性則為 1

檢視範例

相關 API 元素



公用屬性
 屬性定義自
 InheritedaltKey : Boolean
指出 Alt 鍵為作用中 (true) 或停用 (false)。
GestureEvent
 Inheritedbubbles : Boolean
[唯讀] 指出事件是否為反昇事件。
Event
 Inheritedcancelable : Boolean
[唯讀] 指出是否可避免與事件相關聯的行為指令。
Event
 Inherited    commandKey : Boolean
指出 Command 鍵是否已啟用 (僅限 Mac)。
GestureEvent
 Inheritedconstructor : Object
類別物件的參照或是特定物件實體的建構函數。
Object
 InheritedcontrolKey : Boolean
指出是否已啟用 Control 鍵 (在 Mac 中) 以及是否已啟用 Ctrl 鍵 (在 Windows 或 Linux 中)。
GestureEvent
 InheritedctrlKey : Boolean
在 Windows 或 Linux 中,指出 Ctrl 鍵為作用中 (true) 或已停用 (false)。
GestureEvent
 InheritedcurrentTarget : Object
[唯讀] 正主動使用事件偵聽程式處理 Event 物件的物件。
Event
 InheritedeventPhase : uint
[唯讀] 事件流程中的目前階段。
Event
 InheritedlocalX : Number
相對於包含的 sprite,事件發生的水平座標。
GestureEvent
 InheritedlocalY : Number
相對於包含的 sprite,事件發生的垂直座標。
GestureEvent
  offsetX : Number
自從前次手勢事件之後顯示物件的水平轉換。
TransformGestureEvent
  offsetY : Number
自從前次手勢事件之後顯示物件的垂直轉換。
TransformGestureEvent
 Inheritedphase : String
GesturePhase 類別的值,指出觸控手勢的進度。
GestureEvent
  rotation : Number
自從前次手勢事件之後,顯示物件沿著 Z 軸的目前旋轉角度 (以度數為單位)。
TransformGestureEvent
  scaleX : Number
自從前次手勢事件之後顯示物件的水平縮放。
TransformGestureEvent
  scaleY : Number
自從上次手勢事件之後顯示物件的垂直縮放。
TransformGestureEvent
 InheritedshiftKey : Boolean
指出 Shift 鍵為作用中 (true) 或停用 (false)。
GestureEvent
 InheritedstageX : Number
[唯讀] 在全域舞台座標上,事件發生的水平座標。
GestureEvent
 InheritedstageY : Number
[唯讀] 在全域舞台座標上,事件發生的垂直座標。
GestureEvent
 Inheritedtarget : Object
[唯讀] 事件目標。
Event
 Inheritedtype : 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
 Inherited
formatToString(className:String, ... arguments):String
公用程式函數,可用來實作自訂 ActionScript 3.0 Event 類別中的 toString() 方法。
Event
 Inherited
指出物件是否有已定義的指定屬性。
Object
 Inherited
檢查是否已經對事件呼叫 preventDefault() 方法。
Event
 Inherited
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。
Object
 Inherited
如果可以取消事件的預設行為指令,則取消該行為指令。
Event
 Inherited
指出指定的屬性是否存在,以及是否可列舉。
Object
 Inherited
為迴圈作業設定動態屬性的可用性。
Object
 Inherited
避免處理事件流程中,目前節點以及任何後續節點中的任何事件偵聽程式。
Event
 Inherited
避免處理接續在事件流程中的目前節點之後,後續節點中的任何事件偵聽程式。
Event
 Inherited
傳回代表此物件的字串,根據地區特定慣例進行格式化。
Object
  
[覆寫] 傳回包含 TransformGestureEvent 物件所有屬性的字串。
TransformGestureEvent
 Inherited
假設事件處理常式已經修改顯示清單,在處理手勢事件後,重新整理 Flash 執行階段顯示。
GestureEvent
 Inherited
會傳回指定之物件的基本值。
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

屬性
offsetX:Number

語言版本: ActionScript 3.0
執行階段版本: Flash Player 10.1, AIR 2, Flash Lite 4

自從前次手勢事件之後顯示物件的水平轉換。



實作
    public function get offsetX():Number
    public function set offsetX(value:Number):void

offsetY

屬性 
offsetY:Number

語言版本: ActionScript 3.0
執行階段版本: Flash Player 10.1, AIR 2, Flash Lite 4

自從前次手勢事件之後顯示物件的垂直轉換。



實作
    public function get offsetY():Number
    public function set offsetY(value:Number):void

rotation

屬性 
rotation:Number

語言版本: ActionScript 3.0
執行階段版本: Flash Player 10.1, AIR 2, Flash Lite 4

自從前次手勢事件之後,顯示物件沿著 Z 軸的目前旋轉角度 (以度數為單位)。



實作
    public function get rotation():Number
    public function set rotation(value:Number):void

scaleX

屬性 
scaleX:Number

語言版本: ActionScript 3.0
執行階段版本: Flash Player 10.1, AIR 2, Flash Lite 4

自從前次手勢事件之後顯示物件的水平縮放。



實作
    public function get scaleX():Number
    public function set scaleX(value:Number):void

scaleY

屬性 
scaleY:Number

語言版本: ActionScript 3.0
執行階段版本: Flash Player 10.1, AIR 2, Flash Lite 4

自從上次手勢事件之後顯示物件的垂直縮放。



實作
    public function get scaleY():Number
    public function set scaleY(value:Number):void

velocity

屬性 
velocity:Number

語言版本: ActionScript 3.0
執行階段版本: AIR 24, Flash Lite 4

轉換手勢事件的速度,以每秒像素數計算。



實作
    public function get velocity():Number
    public function set velocity(value:Number):void
建構函式詳細資料

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_PANTransformGestureEvent.GESTURE_ROTATETransformGestureEvent.GESTURE_SWIPETransformGestureEvent.GESTURE_ZOOM
 
bubbles:Boolean (default = true) — 判斷事件物件是否參與事件流程的反昇階段。
 
cancelable:Boolean (default = false) — 判斷是否可以取消 Event 物件。
 
phase:String (default = null) — 這個數值會追蹤觸控手勢的開始、進度與結束。可能的值為:GesturePhase.BEGINGesturePhase.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

()方法
override public function clone():Event

語言版本: ActionScript 3.0
執行階段版本: Flash Player 10.1, AIR 2, Flash Lite 4

建立 TransformGestureEvent 物件的副本,然後設定每個屬性值以符合原始物件的屬性值。

傳回值
Event — 新的 TransformGestureEvent 物件,其屬性值符合原始物件的屬性值。

toString

()方法 
override public function toString():String

語言版本: ActionScript 3.0
執行階段版本: Flash Player 10.1, AIR 2, Flash Lite 4

傳回包含 TransformGestureEvent 物件所有屬性的字串。此字串的格式如下:

[TransformGestureEvent type=value bubbles=value cancelable=value ... ]

傳回值
String — 包含 TransformGestureEvent 物件所有屬性的字串。
常數詳細資訊

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
bubblestrue
cancelablefalse;沒有要取消的預設行為指令。
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
bubblestrue
cancelablefalse;沒有要取消的預設行為指令。
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
bubblestrue
cancelablefalse;沒有要取消的預設行為指令。
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
bubblestrue
cancelablefalse;沒有要取消的預設行為指令。
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
bubblestrue
cancelablefalse;沒有要取消的預設行為指令。
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";
    }
}
TransformGestureEventExample.as

以下範例顯示 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";
    }
}
TransformGestureExample2.as

以下範例顯示如何處理轉換手勢事件。這個範例會假設您的本機系統上有名稱為 "african_elephant.jpg" 的影像,而且與 TransformGestureExample2 類別位在同一個目錄中。這個範例來自 Christian Cantrell,而且在您的快速入門中提供詳細的說明:Flash 平台支援的多點觸控和手勢
 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;
        }
    }
}




[ X ]為什麼顯示英文?
「ActionScript 3.0 參考」的內容是以英文顯示

並非所有「ActionScript 3.0 參考」的內容都翻譯為所有語言。當語言元素未翻譯時,就會以英文顯示。例如,ga.controls.HelpBox 類別並沒有翻譯為任何語言。因此在參考的繁體中文版本中,ga.controls.HelpBox 類別就會以英文顯示。