觸控輸入的基本概念

Flash Player 10.1 以及更新的版本,Adobe AIR 2 以及更新的版本

Flash Platform 在支援觸控輸入的環境中執行時,InteractiveObject 實體可以偵聽觸控事件,並呼叫處理常式。通常,您會像處理 ActionScript 中的其他事件一樣,處理觸控、多點觸控和手勢事件 (如需使用 ActionScript 處理事件的基本資訊,請參閱 處理事件 )。

不過,為了讓 Flash 執行階段解譯觸控或手勢,執行階段必須在支援觸控或多點觸控輸入的硬體和軟體環境中執行。如需比較不同觸控螢幕類型的圖表,請參閱 探索輸入類型 。此外,如果執行階段是在容器應用程式 (例如瀏覽器) 內執行,則該容器會將輸入傳遞給執行階段。在部分情況下,目前的硬體和作業系統環境支援多點觸控,但是含有 Flash 執行階段的瀏覽器只會解譯輸入,並不會將它傳遞給執行階段。或者,就直接忽略所有輸入。

下圖顯示從使用者到執行階段的輸入流程:

檢視完整大小的圖形
從使用者到 Flash Platform 執行階段的輸入流程

幸運的是,開發觸控應用程式的 ActionScript API 包括類別、方法和屬性,以判斷執行階段環境中的觸控或多點觸控輸入支援。您用來判斷觸控輸入支援的 API 是進行觸控事件處理的「探索 API」。

重要概念與術語

下列參考清單包含撰寫觸控事件處理應用程式的重要術語:

探索 API
用來測試執行階段環境是否支援觸控事件和不同輸入模式的方法和屬性。

觸控事件
使用單一接觸點,在觸控裝置上執行的輸入動作。

觸控點
單一觸控事件的接觸點。即使裝置不支援手勢輸入,還是可能支援多個同時觸控點。

觸控順序
代表單一觸控之生命期的一連串事件。這些事件包括一個開始、零個以上的移動,以及一個結束。

多點觸控事件
使用數個接觸點 (例如多根手指) 在觸控裝置上執行的輸入動作。

手勢事件
追蹤某個複雜移動而在觸控裝置上執行的輸入動作。例如,一個手勢是用兩根手指觸控螢幕,並將它們同時沿著抽象圓形 (具長寬屬性) 的周圍移動,以表示旋轉。

階段
事件流程中的不同時間點 (例如開始和結束)。

觸控筆
與觸控螢幕互動的工具。觸控筆的精確度高於人的手指。部分裝置只能辨識來自特定類型觸控筆的輸入。可以辨識觸控筆輸入的裝置,可能無法辨識多個同時接觸點或手指接觸。

按下並輕點
特定類型的多點觸控輸入手勢,其中,使用者用手指按下觸控裝置,然後使用另一根手指或另一個指標裝置進行輕點。在多點觸控應用程式中,這個手勢通常是用來模擬按一下滑鼠右鍵。

觸控輸入 API 結構

ActionScript 觸控輸入 API 的設計,是要解決觸控輸入處理取決於 Flash 執行階段之硬體和軟體環境的問題。觸控輸入 API 主要解決觸控應用程式開發的三個需求:探索、事件和階段。協調這些 API,以針對使用者產生可預測且具回應的體驗;即使在您開發應用程式時目標裝置不明仍然可進行開發。

探索

探索 API 提供執行階段測試硬體和軟體環境的能力。執行階段所填入的值,可決定 Flash 執行階段在其目前環境中可用的觸控輸入。此外,可使用探索屬性和方法的集合,來設定應用程式回應滑鼠事件 (非觸控事件,以防環境不支援部分觸控輸入時)。如需詳細資訊,請參閱 觸控支援探索

事件

ActionScript 使用事件偵聽程式和事件處理常式來管理觸控輸入事件,就和管理其他事件一樣。不過,觸控輸入事件處理也必須考量下列各項:
  • 裝置或作業系統可能會以多種方式解譯觸控,可能是一連串的觸控或統稱為手勢。

  • 觸控裝置的單一觸控 (透過手指、觸控筆或指標裝置) 一律也會傳送滑鼠事件。您可以使用 MouseEvent 類別中的事件類型來處理滑鼠事件,或是設計應用程式只回應觸控事件。您也可以設計應用程式同時回應兩者。

  • 應用程式可以回應多個同時觸控事件,以及分別處理每個事件。

一般會使用探索 API 視條件處理應用程式所處理的事件及其處理方式。應用程式辨識執行階段環境之後,就可以呼叫適當的處理常式,或在使用者與應用程式互動時建立正確的事件物件。應用程式也可以指出無法在目前環境中處理特定輸入,以及提供使用者替代方式或資訊。如需詳細資訊,請參閱 觸控事件處理 手勢事件處理

階段

如果是觸控和多點觸控應用程式,則觸控事件物件包含的屬性,可追蹤使用者互動的階段。撰寫 ActionScript 來處理階段 (例如使用者輸入的開始、更新或結束階段),以回應使用者。回應事件階段後,視覺物件會隨著使用者觸控和移動螢幕上的觸控點而變更。或是使用階段來追蹤手勢在變換時的特定屬性。

如果是觸控點事件,則會追蹤使用者停留在特定互動式物件上的時間長短。應用程式可以個別追蹤多個同時觸控點的階段,並據此處理各階段。

如果是手勢,則會解譯進行手勢轉換的特定資訊。追蹤單一或多個接觸點在螢幕上移動時的座標。