處理使用者互動
目前,觸摸屏已經成為移動裝置的标配,Android裝置也不例外。是以,對開發者來說,處理使用者互動在很大程度上也就是處理手與觸摸屏的互動。
由于手指很靈活,在一塊觸摸屏上可以産生多種多樣的操作方式。比如,單個手指就有按下、移動、快速單擊、長按等操作;兩個手指可以做旋轉、放縮手勢等,這些手勢引發的就是多點觸摸事件。如何在AIR中處理多點觸摸事件,正是本章要介紹的内容。
關于多點觸摸
在ActionScript 3.0中按照互動行為産生的事件類型,将多點觸摸動作分為兩類:觸摸和手勢。
觸摸動作指一個或多個手指觸摸螢幕的動作,引發的事件對象為TouchEvent類型。手勢往往由一系列的觸摸動作組成,以代表某個特定意義,引發的事件對象為GestureEvent類型。
由于觸摸和手勢存在包含關系,在運作期間程式無法同時檢測這兩類事件,為此ActionScript 3.0引入了Multitouch類,用來管理程式的觸摸互動模式。如果要檢測觸摸事件,必須通過下面的代碼改變檢測方式:
//導入相應的類
import flash.ui.Multitouch;
import flash.ui.MultitouchInputMode;
…
//檢測系統是否支援觸摸事件
if ( Multitouch.supportsTouchEvents )
{
//設定多點觸摸的模式為觸摸
Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT;
}
在處理觸摸事件之前,建議開發者先檢測Multitouch 類的靜态屬性supportsTouchEvents 是否為true,即檢測目前設定是否支援觸摸事件,然後再進行後面的操作。如果裝置不支援觸摸事件,可以用其他方式來處理互動,這樣就可以相容多種裝置。
intputMode是Multitouch類的另一個靜态屬性,表示目前程式的觸摸互動模式,有3個可選值,為MultitouchInputMode類的靜态常量:
MultitouchInputMode.NONE(不處理觸摸和手勢事件)
MultitouchInputMode.TOUCH_POINT(處理觸摸事件)
MultitouchInputMode.GESTURE(預設值,處理手勢事件)
在AIR中預設的互動模式為MultitouchInputMode.GESTURE,即處理手勢事件。是以,要使用觸摸事件時,必須将inputMode修改為MultitouchInputMode.TOUCH_POINT。
設定好互動模式後,就可以像處理其他事件一樣,對舞台上的元件添加相應的事件監聽器來響應使用者的操作。
提示 不管是在哪一種觸摸互動模式下,滑鼠事件都可以正常使用。
【編輯推薦】
【責任編輯:闫佳明 TEL:(010)68476606】
點贊 0