套件 | flash.ui |
類別 | public final class Multitouch |
繼承 | Multitouch Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2, Flash Lite 4 |
- flash.events.TouchEvent
- flash.events.GestureEvent
- flash.events.GesturePhase
- flash.events.TransformGestureEvent
- flash.events.PressAndTapGestureEvent
使用列出的類別撰寫處理觸控事件的程式碼。使用 Multitouch 類別判定目前環境對於觸控互動的支援,以及管理觸控互動的支援 (若目前環境支援觸控輸入)。
您不能直接從 ActionScript 程式碼建立 Multitouch 物件。如果您呼叫 new Multitouch()
,就會擲出例外。
注意:在 MacOS 中,內嵌於 HTML 的 SWF 檔案不支援 Multitouch 功能。
詳細資訊
Christian Cantrell:Flash 平台的多點觸控及手勢支援
Lee Brimelow:Flash Player 10.1 多點觸控常見問題
Piotr Walczyszyn:Flex 的多點觸控開發
相關 API 元素
flash.events.GestureEvent
flash.events.TransformGestureEvent
flash.events.GesturePhase
flash.events.PressAndTapGestureEvent
flash.events.MouseEvent
flash.events.EventDispatcher.addEventListener()
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
inputMode : String [靜態]
識別處理觸控與手勢事件的多點觸控模式。 | Multitouch | ||
mapTouchToMouse : Boolean [靜態]
指定 AIR 執行階段是否將觸控事件對應至滑鼠事件。 | Multitouch | ||
maxTouchPoints : int [靜態] [唯讀]
目前環境支援的同時觸控點數目上限。 | Multitouch | ||
supportedGestures : Vector.<String> [靜態] [唯讀]
目前環境支援的多點觸控接觸類型向量陣列 (字串值的陣列類型)。 | Multitouch | ||
supportsGestureEvents : Boolean [靜態] [唯讀]
指出目前的環境是否支援手勢輸入,例如在觸控螢幕上旋轉兩根手指。 | Multitouch | ||
supportsTouchEvents : Boolean [靜態] [唯讀]
指出目前的環境是否支援基本觸控輸入,例如單一手指點一下。 | Multitouch |
inputMode | 屬性 |
inputMode:String
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2, Flash Lite 4 |
識別處理觸控與手勢事件的多點觸控模式。使用這個屬性管理是否將事件傳送為具有多點接觸的觸控事件以及不同手勢 (例如旋轉與平移) 的特定事件,或是單一接觸點 (例如點選) 的事件,或是都不傳送 (接觸視為滑鼠事件處理)。若要設定這個屬性,請使用 flash.ui.MultitouchInputMode 類別的值。
預設值為 gesture。
實作
public static function get inputMode():String
public static function set inputMode(value:String):void
相關 API 元素
範例 ( 如何使用本範例 )
Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT; var mySprite:Sprite = new Sprite(); var myTextField:TextField = new TextField(); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0,0,40,40); addChild(mySprite); mySprite.addEventListener(TouchEvent.TOUCH_TAP, taphandler); function taphandler(e:TouchEvent): void { myTextField.text = "I've been tapped"; myTextField.y = 50; addChild(myTextField); }
mapTouchToMouse | 屬性 |
mapTouchToMouse:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 3 |
指定 AIR 執行階段是否將觸控事件對應至滑鼠事件。
使用預設值 true
時,AIR 執行階段會傳送滑鼠事件,以及觸控輸入的觸控事件。設為 false
時,執行階段不會傳送其他滑鼠事件。將這個屬性設定為 false
可能會導致依賴滑鼠事件的現有程式碼、元件庫和架構無法在支援觸控輸入的裝置上正常運作。
實作
public static function get mapTouchToMouse():Boolean
public static function set mapTouchToMouse(value:Boolean):void
相關 API 元素
maxTouchPoints | 屬性 |
supportedGestures | 屬性 |
supportedGestures:Vector.<String>
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2, Flash Lite 4 |
目前環境支援的多點觸控接觸類型向量陣列 (字串值的陣列類型)。字串陣列可用來當做事件類型以註冊事件偵聽程式。可能的值為 GestureEvent、PressAndTapGestureEvent 與 TransformGestureEvent 類別的常數 (例如 GESTURE_PAN
)。
如果 Flash 執行階段位在不支援任何多點觸控手勢的環境中,值為 null
。
注意:對於 Mac OS 10.5.3 與之後版本,即使目前的硬體不支援手勢輸入,Multitouch.supportedGestures
會傳回非 null 值 (可能錯誤地指出支援手勢事件)。
使用這個屬性測試多點觸控手勢支援。然後,使用可用的多點觸控手勢的事件處理常式。對於那些目前環境不支援的手勢,您必須建立其他的事件處理常式。
實作
public static function get supportedGestures():Vector.<String>
相關 API 元素
flash.events.MouseEvent
flash.events.EventDispatcher.addEventListener()
flash.events.GestureEvent
flash.events.PressAndTapGestureEvent
flash.events.TransformGestureEvent
範例 ( 如何使用本範例 )
Multitouch.supportedGestures
向量陣列內容會變更成包含 Flash 執行階段的目前軟、硬體環境適用的所有手勢。如果 Multitouch.supportedGestures
向量陣列不包含 TransformGestureEvent 手勢之一,則不會為該手勢新增事件偵聽程式。此範例來自 Holly Schinsky。
Multitouch.inputMode = MultitouchInputMode.GESTURE; for each (var item:String in Multitouch.supportedGestures) { trace("gesture " + item); if (item == TransformGestureEvent.GESTURE_PAN) img.addEventListener(TransformGestureEvent.GESTURE_PAN, onPan); else if (item == TransformGestureEvent.GESTURE_ROTATE) img.addEventListener(TransformGestureEvent.GESTURE_ROTATE, onRotate); else if (item == TransformGestureEvent.GESTURE_SWIPE) img.addEventListener(TransformGestureEvent.GESTURE_SWIPE, onSwipe); else if (item == TransformGestureEvent.GESTURE_ZOOM) img.addEventListener(TransformGestureEvent.GESTURE_ZOOM, onZoom); }
supportsGestureEvents | 屬性 |
supportsGestureEvents:Boolean
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2, Flash Lite 4 |
指出目前的環境是否支援手勢輸入,例如在觸控螢幕上旋轉兩根手指。Gesture 事件在 TransformGestureEvent、PressAndTapGestureEvent 與 GestureEvent 類別中列示。
注意:對於 MacOS 10.5.3 及之後版本,這個值永遠是 true
。Multitouch.supportsGestureEvent
傳回 true
即使硬體不支援手勢事件。
實作
public static function get supportsGestureEvents():Boolean
相關 API 元素
supportsTouchEvents | 屬性 |
Multitouch.supportedGestures
會回傳 null
並指派 null
到造成執行階段錯誤的字串向量)。如果支援手勢事件,範例會顯示目前環境支援的 TransformGestureEvent 類別:
package { import flash.ui.Multitouch; import flash.ui.MultitouchInputMode; import flash.display.Sprite; import flash.text.TextField; public class MultitouchExample extends Sprite { Multitouch.inputMode = MultitouchInputMode.GESTURE; public function MultitouchExample() { if(Multitouch.supportsGestureEvents){ var supportedGesturesVar:Vector.<String> = Multitouch.supportedGestures; var deviceSupports:TextField = new TextField(); deviceSupports.width = 200; deviceSupports.height = 200; deviceSupports.wordWrap = true; for (var i:int=0; i<supportedGesturesVar.length; ++i) { deviceSupports.appendText(supportedGesturesVar[i] + ", "); addChild(deviceSupports); } } } } }
Tue Jun 12 2018, 03:47 PM Z