具有用于控制和修改手勢識別的代表的手勢識別器的制造方法
【專利摘要】軟件應(yīng)用包括多個視圖和應(yīng)用狀態(tài)。本方法包括顯示一個或多個視圖,其中相應(yīng)視圖包括相應(yīng)的手勢識別器,其具有與該相應(yīng)的手勢識別器相對應(yīng)的代表。本方法包括檢測一個或多個事件以及使用相應(yīng)的手勢識別器處理該一個或多個事件中的相應(yīng)事件。處理該相應(yīng)事件包括根據(jù)與該相應(yīng)的手勢識別器對應(yīng)的相應(yīng)手勢定義在該相應(yīng)的手勢識別器中處理該相應(yīng)事件,執(zhí)行對應(yīng)的代表以確定一個或多個值,以及根據(jù)由該代表確定的一個或多個值,有條件地發(fā)送與該相應(yīng)事件對應(yīng)的信息到該軟件應(yīng)用。該方法包括根據(jù)從該相應(yīng)的手勢識別器接收的信息執(zhí)行該軟件應(yīng)用。
【專利說明】具有用于控制和修改手勢識別的代表的手勢識別器
[0001]相關(guān)申請引用
[0002]本申請是申請?zhí)枮?01110063183.8,申請日為2011年I月26日,發(fā)明名稱為“具有用于控制和修改手勢識別的代表的手勢識別器”的發(fā)明專利申請的分案申請。
【技術(shù)領(lǐng)域】
[0003]本申請主要涉及用戶界面處理,包括但不限于用于識別手勢(gesture)輸入的裝置和方法。
【背景技術(shù)】
[0004]電子設(shè)備通常包括用來與計算設(shè)備交互的用戶接口。該用戶接口可包括顯示器和/或輸入設(shè)備,例如用于與用戶接口的各方面交互的鍵盤、鼠標(biāo)和觸摸敏感表面。在具有作為輸入設(shè)備的觸摸敏感表面的某些設(shè)備中,在特定的情況下(例如在第一應(yīng)用的特定模式中),第一組基于觸摸的手勢(例如,以下的兩個或更多個:點擊、雙擊、水平揮擊(swipe)、垂直揮擊、收縮(pinch)、擴張(depinch)、兩根手指的揮擊)被識別為正確的輸入,而在其它情況(例如不同的應(yīng)用和/或第一應(yīng)用中的不同模式或情況)下,別的不同的組的基于觸摸的手勢被識別為正確的輸入。結(jié)果,識別和響應(yīng)基于觸摸的手勢所需要的軟件和邏輯可能變得復(fù)雜,并且每當(dāng)更新應(yīng)用或向計算設(shè)備增加新的應(yīng)用時,就可能需要修訂。在使用基于觸摸的手勢以外的輸入源的用戶接口中,上述及相似的問題也可能出現(xiàn)。
[0005]因此,希望擁有用于識別基于觸摸的手勢和事件以及來自其它輸入源的手勢和事件的全面架構(gòu)或者機制,其能夠容易地適用于計算設(shè)備上所有應(yīng)用程序的幾乎所有情況或模式,并且當(dāng)更新應(yīng)用或向計算設(shè)備增加新的應(yīng)用時只需很少的修訂或者無需修訂。
【發(fā)明內(nèi)容】
[0006]為解決上述缺陷,根據(jù)某些實施例,在電子設(shè)備處執(zhí)行一種方法,該電子設(shè)備具有一個或多個事件傳感器,并被配置為執(zhí)行包括多個視圖以及軟件應(yīng)用的應(yīng)用狀態(tài)的軟件應(yīng)用。該方法包括顯示該多個視圖中的一個或多個視圖。該一個或多個顯示的視圖中的相應(yīng)視圖包括一個或多個手勢識別器,且相應(yīng)的手勢識別器具有對應(yīng)的代表(delegate)。該方法包括檢測一個或多個事件,并使用相應(yīng)的手勢識別器處理該一個或多個事件中的相應(yīng)事件。該相應(yīng)事件的處理包括:根據(jù)與相應(yīng)的手勢識別器對應(yīng)的相應(yīng)手勢定義在該相應(yīng)的手勢識別器中處理該相應(yīng)事件,根據(jù)應(yīng)用狀態(tài)執(zhí)行該相應(yīng)的手勢識別器的對應(yīng)代表以確定一個或多個值,并且根據(jù)該相應(yīng)的手勢識別器處理該相應(yīng)事件的結(jié)果以及根據(jù)由對應(yīng)的代表決定的一個或多個值,有條件地發(fā)送與該相應(yīng)事件對應(yīng)的信息到軟件應(yīng)用。該方法進一步還包括根據(jù)從該相應(yīng)的手勢識別器接收的與該相應(yīng)事件對應(yīng)的信息執(zhí)行軟件應(yīng)用。
[0007]根據(jù)某些實施例,一種電子設(shè)備包括:用于檢測事件的一個或多個事件傳感器、一個或多個處理器、存儲器、以及存儲在存儲器中并被配置為由一個或多個處理器執(zhí)行的一個或多個程序。該一個或多個程序包括具有多個視圖和應(yīng)用狀態(tài)的軟件應(yīng)用。該軟件應(yīng)用包括用于顯示該多個視圖中的一個或多個視圖的指令。該一個或多個顯示的視圖中的相應(yīng)視圖包括一個或多個手勢識別器,并且相應(yīng)的手勢識別器具有對應(yīng)的代表。該軟件應(yīng)用還包括用于檢測一個或多個事件的指令以及用于使用相應(yīng)的手勢識別器處理檢測到的事件中的相應(yīng)事件的指令。用于處理相應(yīng)事件的指令包括用于以下操作的指令:根據(jù)與相應(yīng)的手勢識別器對應(yīng)的相應(yīng)手勢定義在該相應(yīng)的手勢識別器中處理該相應(yīng)事件,根據(jù)應(yīng)用狀態(tài)執(zhí)行對應(yīng)的代表以確定一個或多個值,并且根據(jù)該相應(yīng)的手勢識別器處理該相應(yīng)事件的結(jié)果以及根據(jù)由對應(yīng)的代表確定的一個或多個值,有條件地發(fā)送與該相應(yīng)事件對應(yīng)的信息到軟件應(yīng)用。該軟件應(yīng)用進一步包括用于根據(jù)從該相應(yīng)的手勢識別器接收的與該相應(yīng)事件對應(yīng)的信息執(zhí)行軟件應(yīng)用的指令。
[0008]根據(jù)某些實施例,一種計算機可讀存儲介質(zhì)存儲由電子設(shè)備的一個或多個處理器執(zhí)行的一個或多個程序,該電子設(shè)備具有一個或多個用于檢測事件的事件傳感器。該一個或多個程序包括軟件應(yīng)用,該軟件應(yīng)用包括多個視圖以及該軟件應(yīng)用的應(yīng)用狀態(tài)。該軟件應(yīng)用包括用于顯示該多個視圖中的一個或多個視圖的指令。該一個或多個顯示的視圖中的相應(yīng)視圖包括一個或多個相應(yīng)的手勢識別器,且相應(yīng)的手勢識別器具有對應(yīng)的代表。該軟件應(yīng)用還包括用于檢測一個或多個事件的指令以及用于使用該相應(yīng)的手勢識別器處理檢測到的事件中的相應(yīng)事件的指令。用于處理相應(yīng)事件的指令包括用于以下操作的指令:根據(jù)與相應(yīng)的手勢識別器對應(yīng)的相應(yīng)手勢定義在該相應(yīng)的手勢識別器中處理該相應(yīng)事件,根據(jù)應(yīng)用狀態(tài)執(zhí)行對應(yīng)的代表以確定一個或多個值,并且根據(jù)該相應(yīng)的手勢識別器處理該相應(yīng)事件的結(jié)果以及根據(jù)該對應(yīng)的代表確定的一個或多個值,有條件地將與該相應(yīng)事件對應(yīng)的信息發(fā)送到軟件應(yīng)用。該軟件應(yīng)用進一步包括用于根據(jù)從該相應(yīng)的手勢識別器接收的與該相應(yīng)事件對應(yīng)的信息執(zhí)行軟件應(yīng)用的指令。
[0009]根據(jù)某些實施例,在具有觸摸敏感表面并被配置為執(zhí)行軟件應(yīng)用的電子設(shè)備處執(zhí)行一種方法,該軟件應(yīng)用包括多個視圖以及該軟件應(yīng)用的應(yīng)用狀態(tài)。該方法包括顯示該多個視圖中的一個或多個視圖。該一個或多個顯示的視圖中的相應(yīng)視圖包括相應(yīng)手勢識別器。該相應(yīng)手勢識別器具有對應(yīng)的代表。該方法還包括檢測觸摸敏感表面上的一個或多個觸摸,每個觸摸具有落入一個或多個顯示的視圖中的觸摸位置。該方法進一步包括處理該一個或多個觸摸中的相應(yīng)觸摸。該相應(yīng)觸摸的處理包括:根據(jù)應(yīng)用狀態(tài)執(zhí)行與該相應(yīng)手勢識別器對應(yīng)的代表以獲得接收觸摸值,并且當(dāng)該接收觸摸值滿足預(yù)定義的標(biāo)準(zhǔn)時,在該相應(yīng)手勢識別器中處理該相應(yīng)觸摸。處理該相應(yīng)觸摸還包括有條件地向軟件應(yīng)用發(fā)送對應(yīng)于該相應(yīng)觸摸的信息。該方法進一步包括根據(jù)從該相應(yīng)手勢識別器接收的與該相應(yīng)觸摸對應(yīng)的信息執(zhí)行軟件應(yīng)用。
[0010]根據(jù)某些實施例,一種電子設(shè)備包括觸摸敏感表面、一個或多個處理器、存儲器、以及存儲在存儲器中并被配置為由一個或多個處理器執(zhí)行的一個或多個程序。該一個或多個程序包括具有多個視圖和軟件應(yīng)用的應(yīng)用狀態(tài)的軟件應(yīng)用。該軟件應(yīng)用包括用于顯示該多個視圖中的一個或多個視圖的指令。該一個或多個顯示的視圖中的相應(yīng)視圖包括一個或多個相應(yīng)手勢識別器。相應(yīng)手勢識別器具有對應(yīng)的代表。該軟件應(yīng)用還包括用于檢測觸摸敏感表面上的一個或多個觸摸的指令,每個觸摸具有落入一個或多個顯示的視圖中的觸摸位置。該軟件應(yīng)用還包括用于處理該一個或多個觸摸中的相應(yīng)觸摸的指令。用于處理該相應(yīng)觸摸的指令包括用于以下操作的指令:根據(jù)應(yīng)用狀態(tài)執(zhí)行與相應(yīng)手勢識別器對應(yīng)的代表以獲得接收觸摸值,當(dāng)該接收觸摸值滿足預(yù)定義的標(biāo)準(zhǔn)時,在該相應(yīng)手勢識別器中處理該相應(yīng)觸摸。用于處理該相應(yīng)觸摸的指令還包括用于有條件地向軟件應(yīng)用發(fā)送對應(yīng)于該相應(yīng)觸摸的信息的指令。該軟件應(yīng)用進一步包括用于根據(jù)從該相應(yīng)手勢識別器接收的與該相應(yīng)觸摸對應(yīng)的信息執(zhí)行軟件應(yīng)用的指令。
[0011]根據(jù)某些實施例,一種計算機可讀存儲介質(zhì)存儲一個或多個程序,該程序由具有觸摸敏感表面的電子設(shè)備的一個或多個處理器執(zhí)行。該一個或多個程序包括軟件應(yīng)用,其包括多個視圖以及該軟件應(yīng)用的應(yīng)用狀態(tài)。該軟件應(yīng)用包括用于顯示該多個視圖中的一個或多個視圖的指令。該一個或多個顯示的視圖中的相應(yīng)視圖包括一個或多個相應(yīng)手勢識別器。相應(yīng)手勢識別器具有對應(yīng)的代表。該軟件應(yīng)用還包括用于檢測觸摸敏感表面上的一個或多個觸摸的指令,每個觸摸具有落入一個或多個顯示的視圖中的觸摸位置。該軟件應(yīng)用進一步包括用于處理該一個或多個觸摸中的相應(yīng)觸摸的指令。用于處理該相應(yīng)觸摸的指令包括用于以下操作的指令:根據(jù)應(yīng)用狀態(tài)執(zhí)行與相應(yīng)手勢識別器對應(yīng)的代表以獲得接收觸摸值,以及當(dāng)該接收觸摸值滿足預(yù)定義的標(biāo)準(zhǔn)時,在該相應(yīng)手勢識別器中處理該相應(yīng)觸摸。用于處理該相應(yīng)觸摸的指令還包括用于有條件地向軟件應(yīng)用發(fā)送對應(yīng)于該相應(yīng)觸摸的信息的指令。該軟件應(yīng)用進一步包括用于根據(jù)從該相應(yīng)手勢識別器接收的與該相應(yīng)觸摸對應(yīng)的信息執(zhí)行軟件應(yīng)用的指令。
[0012]根據(jù)某些實施例,在具有觸摸敏感表面并被配置為執(zhí)行軟件應(yīng)用的電子設(shè)備處執(zhí)行一種方法。該方法包括顯示軟件應(yīng)用的一個或多個視圖。該一個或多個顯示的視圖包括多個手勢識別器。該多個手勢識別器包括至少一個離散手勢識別器以及至少一個連續(xù)手勢識別器。離散手勢識別器被配置為響應(yīng)于相應(yīng)手勢發(fā)送單個動作消息,而連續(xù)手勢識別器被配置為當(dāng)根據(jù)相應(yīng)的被識別手勢的連續(xù)的被識別子事件發(fā)送動作消息。該方法還包括檢測一個或多個觸摸,并且使用一個或多個手勢識別器處理每個觸摸。對相應(yīng)觸摸的處理包括:根據(jù)與相應(yīng)手勢識別器對應(yīng)的相應(yīng)手勢定義在該相應(yīng)手勢識別器中處理該相應(yīng)觸摸;以及根據(jù)在該相應(yīng)手勢識別器中處理該相應(yīng)觸摸的結(jié)果,有條件地發(fā)送一個或多個相應(yīng)動作消息至軟件應(yīng)用。該方法進一步包括根據(jù)從一個或多個手勢識別器接收到的與一個或多個觸摸對應(yīng)的一個或多個動作消息執(zhí)行軟件應(yīng)用。
[0013]根據(jù)某些實施例,一種電子設(shè)備包括觸摸敏感表面、一個或多個處理器、存儲器、以及一個或多個存儲在存儲器中并被配置為由該一個或多個處理器執(zhí)行的程序。該一個或多個程序包括軟件應(yīng)用,該軟件應(yīng)用包括用于顯示該軟件應(yīng)用的一個或多個視圖的指令。該一個或多個顯示的視圖包括多個手勢識別器。該多個手勢識別器包括至少一個離散手勢識別器以及至少一個連續(xù)手勢識別器。離散手勢識別器被配置為響應(yīng)于相應(yīng)手勢發(fā)送單個動作消息,而連續(xù)手勢識別器被配置為根據(jù)相應(yīng)的被識別手勢的連續(xù)的被識別子事件發(fā)送動作消息。軟件應(yīng)用還包括用于檢測一個或多個觸摸并使用一個或多個手勢識別器處理每個觸摸的指令。用于處理相應(yīng)觸摸的指令包括用于以下操作的指令:根據(jù)與相應(yīng)手勢識別器對應(yīng)的相應(yīng)手勢定義在該相應(yīng)手勢識別器中處理該相應(yīng)觸摸;以及根據(jù)在該相應(yīng)手勢識別器中處理該相應(yīng)觸摸的結(jié)果,有條件地發(fā)送一個或多個相應(yīng)動作消息至軟件應(yīng)用。該軟件應(yīng)用進一步包括用于根據(jù)從一個或多個手勢識別器中接收的與一個或多個觸摸相對應(yīng)的一個或多個動作消息執(zhí)行軟件應(yīng)用的指令。
[0014]根據(jù)某些實施例,一種計算機可讀存儲介質(zhì)存儲一個或多個程序,該程序由具有觸摸敏感表面的電子設(shè)備的一個或多個處理器執(zhí)行。該一個或多個程序包括軟件應(yīng)用,該軟件應(yīng)用包括用于顯示軟件應(yīng)用的一個或多個視圖的指令。該一個或多個顯示的視圖包括多個手勢識別器。該多個手勢識別器包括至少一個離散手勢識別器以及至少一個連續(xù)手勢識別器。離散手勢識別器被配置為響應(yīng)于相應(yīng)手勢發(fā)送單個動作消息,而連續(xù)手勢識別器被配置根據(jù)相應(yīng)的被識別手勢的連續(xù)的被識別子事件發(fā)送動作消息。該軟件應(yīng)用還包括用于以下操作的指令:檢測一個或多個觸摸,并且使用一個或多個手勢識別器處理每個觸摸。用于處理相應(yīng)觸摸的指令包括用于以下操作的指令:根據(jù)與相應(yīng)手勢識別器對應(yīng)的相應(yīng)手勢定義在該相應(yīng)手勢識別器中處理相應(yīng)觸摸;以及根據(jù)在該相應(yīng)手勢識別器中處理該相應(yīng)觸摸的結(jié)果有條件地發(fā)送一個或多個相應(yīng)動作消息至軟件應(yīng)用。該軟件應(yīng)用進一步包括用于根據(jù)從一個或多個手勢識別器接收的與一個或多個觸摸相對應(yīng)的一個或多個動作消息執(zhí)行軟件應(yīng)用的指令。
[0015]根據(jù)某些實施例,一種電子設(shè)備包括一個或多個被配置為感測一個或多個事件的事件感測單元,以及與該一個或多個事件感測單元耦合的處理單元。該處理單元被配置為:執(zhí)行包括多個視圖和軟件應(yīng)用的應(yīng)用狀態(tài)的軟件應(yīng)用,并啟用該多個視圖中的一個或多個視圖的顯示。該一個或多個顯示的視圖中的相應(yīng)視圖包括一個或多個相應(yīng)手勢識別器,并且相應(yīng)手勢識別器具有對應(yīng)的代表。該處理單元被配置為檢測由一個或多個事件感測單元感測的一個或多個事件,并通過以下操作使用相應(yīng)手勢識別器處理該一個或多個事件中的相應(yīng)事件:根據(jù)與相應(yīng)手勢識別器對應(yīng)的相應(yīng)手勢定義在該相應(yīng)手勢識別器中處理該相應(yīng)事件;根據(jù)應(yīng)用狀態(tài)執(zhí)行對應(yīng)的代表以確定一個或多個值;根據(jù)該相應(yīng)手勢識別器處理該相應(yīng)事件的結(jié)果,以及根據(jù)由對應(yīng)的代表確定的一個或多個值,有條件地將對應(yīng)于該相應(yīng)事件的信息發(fā)送到軟件應(yīng)用。該處理單元被配置為根據(jù)從相應(yīng)手勢識別器接收的與該相應(yīng)事件對應(yīng)的信息執(zhí)行軟件應(yīng)用。
[0016]根據(jù)某些實施例,一種電子設(shè)備包括被配置為接收一個或多個觸摸的觸摸敏感表面單元,以及與該觸摸敏感表面單元相耦合的處理單元。該處理單元被配置為:執(zhí)行軟件應(yīng)用,該軟件應(yīng)用包括多個視圖以及該軟件應(yīng)用的應(yīng)用狀態(tài),并啟用該多個視圖中的一個或多個視圖的顯示。該一個或多個顯示的視圖中的相應(yīng)視圖包括一個或多個相應(yīng)手勢識別器,相應(yīng)手勢識別器具有對應(yīng)的代表。該處理單元被配置為檢測在該觸摸敏感表面單元上接收到的一個或多個觸摸。該一個或多個觸摸中的每一個具有落入一個或多個顯示的視圖中的觸摸位置。該處理單元被配置為通過以下操作處理該一個或多個觸摸中的相應(yīng)觸摸:根據(jù)應(yīng)用狀態(tài)執(zhí)行與相應(yīng)手勢識別器相對應(yīng)的代表以獲得接收觸摸值,當(dāng)該接收觸摸值滿足預(yù)定義的標(biāo)準(zhǔn)時,在該相應(yīng)手勢識別器中處理該相應(yīng)觸摸,并有條件地發(fā)送與該相應(yīng)觸摸對應(yīng)的信息到軟件應(yīng)用。該處理單元被配置為根據(jù)從該相應(yīng)手勢識別器接收的與該相應(yīng)觸摸對應(yīng)的信息執(zhí)行軟件應(yīng)用。
[0017]根據(jù)某些實施例,一種電子設(shè)備包括被配置為接收一個或多個觸摸的觸摸敏感表面單元,以及與該觸摸敏感表面單元相耦合的處理單元。該處理單元被配置為:執(zhí)行軟件應(yīng)用,并啟用該軟件應(yīng)用中的一個或多個視圖的顯示。該一個或多個顯示的視圖包括多個手勢識別器,并且該多個手勢識別器包括:至少一個離散手勢識別器和至少一個連續(xù)手勢識別器。離散手勢識別器被配置為響應(yīng)于相應(yīng)手勢發(fā)送單個動作消息,而連續(xù)手勢識別器被配置為根據(jù)相應(yīng)的被識別手勢的連續(xù)的被識別子事件發(fā)送動作消息。該處理單元被配置為檢測在觸摸敏感表面單元上接收到的一個或多個觸摸,并使用一個或多個手勢識別器處理各個觸摸。該處理單元被配置為通過以下操作處理相應(yīng)觸摸:根據(jù)與相應(yīng)手勢識別器對應(yīng)的相應(yīng)手勢定義在該相應(yīng)手勢識別器中處理該相應(yīng)觸摸,以及根據(jù)在該相應(yīng)手勢識別器中處理該相應(yīng)觸摸的結(jié)果,有條件地發(fā)送一個或多個相應(yīng)的動作消息到軟件應(yīng)用。該處理單元被配置為根據(jù)從一個或多個手勢識別器接收的與一個或多個觸摸對應(yīng)的一個或多個動作消息執(zhí)行軟件應(yīng)用。
【專利附圖】
【附圖說明】
[0018]圖1A和IB是不出根據(jù)某些實施例的電子設(shè)備的框圖。
[0019]圖2為根據(jù)某些實施例的示例性電子設(shè)備的輸入/輸出處理棧的圖。
[0020]圖3A示出根據(jù)某些實施例的示例性的視圖層次結(jié)構(gòu)(view hierarchy)。
[0021]圖3B示出根據(jù)某些實施例的用于事件處理的示例性組件的框圖。
[0022]圖3C示出根據(jù)某些實施例的手勢識別器的示例性的類(class)和實例(instance)的框圖。
[0023]圖4A-4D示出根據(jù)某些實施例的示例性狀態(tài)機的流程圖。
[0024]圖5A示出根據(jù)某些實施例的事件信息流的框圖。
[0025]圖5B和5C示出根據(jù)某些實施例的手勢識別方法的高級流程圖。
[0026]圖6A-6B是示出根據(jù)某些實施例,根據(jù)從代表獲得的信息處理相應(yīng)事件的示例性方法的流程圖。
[0027]圖7A-7B是示出根據(jù)某些實施例,根據(jù)從代表獲得的接收觸摸值處理相應(yīng)觸摸的示例性方法的流程圖。
[0028]圖8A-8B示出根據(jù)某些實施例,在包括離散手勢識別器和連續(xù)手勢識別器的軟件應(yīng)用中處理相應(yīng)觸摸的示例性方法的流程圖。
[0029]圖9是根據(jù)某些實施例的電子設(shè)備的功能框圖。
[0030]圖10是根據(jù)某些實施例的電子設(shè)備的功能框圖。
[0031]圖11是根據(jù)某些實施例的電子設(shè)備的功能框圖。
[0032]在所有附圖中,類似的參考標(biāo)志表示對應(yīng)的部分。
【具體實施方式】
[0033]現(xiàn)在詳細(xì)參考實施例,在附圖中示出了這些實施例的例子。在下面的詳細(xì)描述中,提出了若干特定細(xì)節(jié),以便提供對本發(fā)明的透徹理解。然而,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明了,可以實現(xiàn)本發(fā)明而不使用這些特定細(xì)節(jié)。在其它情況下,公知的方法、程序、組件、電路和網(wǎng)絡(luò)未被詳細(xì)描述,以免不必要地使得這些實施例的有關(guān)方面含混不清。
[0034]還應(yīng)當(dāng)理解,雖然可以在此處使用術(shù)語第一、第二等描述各個元件,但是這些元件應(yīng)該不受這些術(shù)語的限制。這些術(shù)語僅被用于彼此區(qū)分元件。例如,第一接觸可被稱為第二接觸,并且類似地,第二接觸可被稱為第一接觸,而不會脫離本發(fā)明的范圍。第一接觸和第二接觸都是接觸,但是它們不是相同的接觸。
[0035]此處在本發(fā)明的描述中使用的術(shù)語僅僅是出于描述特定實施例的目的而不旨在作為對本發(fā)明的限制。如在本發(fā)明的描述和所附權(quán)利要求書中使用的,除非上下文清楚地指出例外情況,單數(shù)形式“一”、“一個”、“一種”、“該”(“a”、“an”和“the”)旨在也包括復(fù)數(shù)形式。還應(yīng)理解,此處使用的術(shù)語“和/或”指并且包括一個或多個相關(guān)聯(lián)地列出的項目的任何和所有可能組合。還應(yīng)理解,當(dāng)在本說明書中使用術(shù)語“包括”和“包含”(“include”、“including”、“comprise”和/或“comprising”)時,它們指敘述的特征、整體、步驟、操作、元件和/或組件的存在,但是不排除一個或多個其它特征、整體、步驟、操作、元件、組件和/或它們的組的存在或添加。
[0036]如此處使用的,根據(jù)上下文,術(shù)語“如果”可被理解為意味著“當(dāng)...時”或“一旦”或“響應(yīng)于確定...”或“響應(yīng)于檢測到...”。類似地,根據(jù)上下文,短語“如果確定...”或“如果檢測到(被說明的條件或事件)”可被理解為意味著“一旦確定”或“響應(yīng)于確定”或“一旦檢測到(被說明的條件或事件)”或“響應(yīng)于檢測到(被說明的條件或事件)”。
[0037]此處使用的術(shù)語“事件”意指由設(shè)備的一個或多個傳感器檢測到的輸入。特別地,術(shù)語“事件”包括在觸摸敏感表面上的觸摸。一個事件包含一個或多個子事件。子事件通常指對事件的改變(例如,觸摸向下,觸摸移動,觸摸的抬起可作為子事件)。在一個或多個子事件的序列中的子事件可以包括多種形式,包括但不限于:按鍵按壓、按鍵按壓保持、按鍵按壓釋放、按鈕按壓、按鈕按壓保持、按鈕按壓釋放、操作桿移動、鼠標(biāo)移動、鼠標(biāo)按鈕按壓、鼠標(biāo)按鈕釋放、觸筆觸摸、觸筆移動、觸筆釋放、語音指令、檢測到的眼球運動、生物測定輸入、以及檢測到的用戶生理變化,等等。由于事件可包括單個子事件(例如設(shè)備的短暫的橫向運動),此處使用的術(shù)語“子事件”也指事件。
[0038]此處使用的術(shù)語“事件識別器”以及“手勢識別器”可以互換使用,意指能夠識別手勢或其它事件(例如設(shè)備的運動)的識別器。
[0039]如以上提及的,在具有作為輸入設(shè)備的觸摸敏感表面的一些設(shè)備中,在特定情況下(例如,在第一應(yīng)用的特定模式中),第一組基于觸摸的手勢(如以下的兩個或更多個:點擊、雙擊、水平揮擊、垂直揮擊)被識別為正確的輸入,而在其它情況(如不同的應(yīng)用和/或第一應(yīng)用中的不同模式或情況)下,別的不同的組的基于觸摸的手勢被識別為正確的輸入。而且,兩個或更多個正確的輸入(或手勢)可能相互干擾或沖突(例如,檢測到單擊后,需要決定是否將該單擊識別為一個完整的單擊手勢還是作為雙擊手勢的一部分)。結(jié)果,識別和響應(yīng)基于觸摸的手勢所需要的軟件和邏輯可能變得復(fù)雜,并且每當(dāng)更新應(yīng)用或向計算設(shè)備增加新的應(yīng)用時,就可能需要修訂。
[0040]當(dāng)使用基于觸摸的手勢來控制運行在具有觸摸敏感表面的設(shè)備中的應(yīng)用時,觸摸既具有時間方面也具有空間方面。時間方面稱為階段,表示觸摸何時開始,它是在移動還是靜止,以及它何時結(jié)束一一即,手指何時從屏幕上抬起。觸摸的空間方面是其中發(fā)生觸摸的視圖或用戶界面窗口的集合。在其中檢測到觸摸的視圖或窗口可以對應(yīng)于視圖層次結(jié)構(gòu)中的編程層級(progra_atic level)。例如,在其中檢測到觸摸的最低層級視圖可以被稱為命中視圖(hit view),并且可以至少部分地基于作為開始基于觸摸的手勢的初始觸摸的命中視圖,來確定被識別為正確輸入的事件集合。
[0041]圖1A和IB是示出根據(jù)某些實施例的電子設(shè)備102、104的不同實施例的框圖。電子設(shè)備102或104可以是任意的電子設(shè)備,包括但不限于:臺式計算機系統(tǒng)、膝上型計算機系統(tǒng)、上網(wǎng)本計算機系統(tǒng)、移動電話、智能電話、個人數(shù)字助理、或?qū)Ш较到y(tǒng)。該電子設(shè)備還可以是具有被配置為提供用戶接口的觸摸屏顯示器(如觸摸敏感顯示器156,圖1B)的便攜式電子設(shè)備,具有被配置為提供用戶接口的觸摸屏顯示器的計算機,或者任何其它形式的計算設(shè)備,包括但不限于:消費類電子設(shè)備、移動電話、視頻游戲系統(tǒng)、電子音樂播放器、平板電腦、電子書閱讀系統(tǒng)、電子書、PDA、電子管理器、電子郵件設(shè)備、膝上型電腦、上網(wǎng)本或者其它計算機、信息亭計算機、自動售貨機、智能設(shè)施等。電子設(shè)備102或104包括用戶接Π 113。
[0042]在某些實施方式中,電子設(shè)備104包括觸摸屏顯示器。這些實施例中,用戶接口113可包括屏幕上顯示的鍵盤(圖中未示出),用戶使用它與電子設(shè)備102和104交互??商鎿Q地,鍵盤可以與電子設(shè)備104(或電子設(shè)備102)相分離和區(qū)別。例如,鍵盤可以是與電子設(shè)備102或104耦合的有線或無線鍵盤。
[0043]在某些實施例中,電子設(shè)備102包含顯不器126和一個或多個輸入設(shè)備128 (例如鍵盤、鼠標(biāo)、跟蹤球、麥克風(fēng)、物理按鈕、觸摸板等),它們耦合到電子設(shè)備102。這些實施例中,一個或多個輸入設(shè)備128可以可選地與電子設(shè)備102相分離和區(qū)別。例如,一個或多個輸入設(shè)備可包括以下一個或多個:鍵盤、鼠標(biāo)、跟蹤球和電子筆,其中任一個都可以可選地與電子設(shè)備相分離??蛇x地,設(shè)備102或104可以包括一個或多個傳感器130,例如一個或多個加速度計、陀螺儀、GPS系統(tǒng)、揚聲器、紅外(IR)傳感器、生物傳感器、照相機等。需要說明的是,上述關(guān)于諸如輸入設(shè)備128或傳感器130的各種示例性設(shè)備的說明對此處描述的實施例的操作沒有重要意義,任何在此處描述為輸入設(shè)備的輸入或傳感器設(shè)備可以被等同描述為傳感器,反之亦然。在某些實施例中,由一個或多個傳感器130產(chǎn)生的信號被作為用于檢測事件的輸入源。
[0044]在某些實施例中,電子設(shè)備104包括觸摸敏感顯示器156 (即,具有觸摸敏感表面的顯示器)以及一個或多個輸入設(shè)備128,它們耦合到電子設(shè)備104。在某些實施例中,觸摸敏感顯示器156能夠檢測兩個或更多個不同的、同時發(fā)生的(或部分同時發(fā)生的)觸摸,并且在這些實施例中,顯示器156在這里有時被稱為多觸摸顯示器或多觸摸敏感顯示器。
[0045]這里討論的電子設(shè)備102或104的某些實施例中,輸入設(shè)備128被布置在電子設(shè)備102或104中。在其它的實施例中,一個或多個輸入設(shè)備128與電子設(shè)備102或104相分離和區(qū)別;例如,一個或多個輸入設(shè)備128可以通過電纜(如USB電纜)或無線連接(如藍(lán)牙連接)耦合到電子設(shè)備102或104。
[0046]當(dāng)使用輸入設(shè)備128時,或者當(dāng)在電子設(shè)備104的觸摸敏感顯示器156上執(zhí)行基于觸摸的手勢時,用戶生成由電子設(shè)備102或104的一個或多個CPUllO處理的子事件序列。在某些實施例中,電子設(shè)備102或104的一個或多個CPUllO處理該子事件序列以識別事件。
[0047]電子設(shè)備102或104通常分別包括一個或多個單核或多核處理單元(“CPU”) 110,以及一個或多個網(wǎng)絡(luò)或其它通信接口 112。電子設(shè)備102或104分別包括存儲器111和用于互連這些組件的一個或多個通信總線115。通信總線115可以包括互連和控制系統(tǒng)組件之間的通信的電路(有時稱為芯片組)(此處未詳述)。如以上簡要論述的,電子設(shè)備102或104包括用戶接口 113,其包括顯示器(例如顯示器126或觸摸敏感顯示器156)。進一步地,電子設(shè)備102或104通常包括輸入設(shè)備128 (例如鍵盤、鼠標(biāo)、觸摸敏感表面、小鍵盤等)。在某些實施例中,輸入設(shè)備128包括屏幕輸入設(shè)備(例如顯示設(shè)備的觸摸敏感表面)。存儲器111可以包括高速隨機存取存儲器,諸如DRAM、SRAM、DDR RAM或其它的隨機存取固態(tài)存儲器設(shè)備;并可以包括非易失性存儲器,諸如一個或多個磁盤存儲設(shè)備、光盤存儲設(shè)備、閃速存儲器設(shè)備、或其它非易失性固態(tài)存儲設(shè)備。存儲器111可以可選地包括一個或多個遠(yuǎn)離CPU ( 一個或多個)110的存儲設(shè)備。存儲器111,或者可替換地在存儲器111中的非易失性存儲器設(shè)備(一個或多個),包括計算機可讀存儲介質(zhì)。在某些實施例中,(電子設(shè)備102或104的)存儲器111或存儲器111的計算機可讀存儲介質(zhì)存儲以下的程序、模塊和數(shù)據(jù)結(jié)構(gòu)或它們的子集:
[0048].操作系統(tǒng)118,包括用來處理各種基本系統(tǒng)服務(wù)和用于執(zhí)行依賴硬件的任務(wù)的程序;
[0049].通信模塊120,用來通過它們的一個或多個相應(yīng)的通信接口 112(有線或者無線的)和一個或多個通信網(wǎng)絡(luò),諸如因特網(wǎng)、其它廣域網(wǎng)、局域網(wǎng)、城域網(wǎng)等,分別將電子設(shè)備102或104連接到其它設(shè)備;
[0050].用戶接口模塊122,用于在顯示器126或觸摸敏感顯示器156上顯示包括用戶界面對象的用戶界面;
[0051].控制應(yīng)用124,用于控制進程(如命中視圖的確定、線程管理和/或事件監(jiān)控等);在某些實施例中,控制應(yīng)用124包括運行時應(yīng)用(run-time application);在其它實施例中,運行時應(yīng)用包括控制應(yīng)用124 ;
[0052].事件傳遞系統(tǒng)130,其可以在操作系統(tǒng)118中或應(yīng)用軟件132中以各種可替換地實施方式來實現(xiàn);但在某些實施例中,事件傳遞系統(tǒng)130的一些方面可以在操作系統(tǒng)118中實現(xiàn),而其它方面(例如至少是事件處理器的子集)可以在應(yīng)用軟件132中實現(xiàn);
[0053].應(yīng)用軟件132,其可以包括一個或多個軟件應(yīng)用(例如電子郵件應(yīng)用、Web瀏覽器應(yīng)用、文本消息應(yīng)用等);各軟件應(yīng)用通常具有(至少在執(zhí)行時具有)應(yīng)用狀態(tài),其指示軟件應(yīng)用及其組件(例如手勢識別器和代表)的狀態(tài);參見以下描述的應(yīng)用內(nèi)部狀態(tài)317 (圖3B);以及
[0054].設(shè)備/全局內(nèi)部狀態(tài)134,包括以下一個或多個:應(yīng)用狀態(tài),指示軟件應(yīng)用及其組件(例如手勢識別器和代表)的狀態(tài);顯示狀態(tài),指示何種應(yīng)用、視圖或其它信息占據(jù)了觸摸敏感顯示器156或顯示器126的各個區(qū)域;傳感器狀態(tài),包括從設(shè)備的各個傳感器130、輸入設(shè)備128和/或觸摸敏感顯示器
[0055]156獲得的信息;以及關(guān)于設(shè)備的位置和/或姿態(tài)的位置信息。
[0056]上面標(biāo)出的內(nèi)容中每一項可被存儲于一個或多個前面提到的存儲設(shè)備中,并對應(yīng)于用于執(zhí)行此處描述的功能的指令集。該指令集可被一個或多個處理器(例如一個或多個CPUl 10)執(zhí)行。上面標(biāo)出的模塊或程序(即,指令集)不需要被實現(xiàn)為單獨的軟件程序、過程或者模塊,因而這些模塊的各個子集可被組合或被重新安排在不同的實施例中。在某些實施例中,存儲器111可存儲上面標(biāo)出的模塊和數(shù)據(jù)結(jié)構(gòu)的子集。此外,存儲器111還可存儲上面沒有描述的另外的模塊和數(shù)據(jù)結(jié)構(gòu)。
[0057]圖2為根據(jù)本發(fā)明某些實施例的示例性電子設(shè)備或裝置(例如設(shè)備102或104)的輸入/輸出處理棧200的不意圖。設(shè)備的硬件(例如電子電路)212處于該輸入/輸出處理棧200的底層(base level)。硬件212可包括各種硬件接口組件,例如圖1A和/或IB所示的組件。硬件212還可以包括一個或多個上面提及的傳感器130。輸入/輸出處理棧200的所有其它元件(132,204-210)為軟件程序,或軟件程序的一部分,它們處理從硬件212接收的輸入并生成通過硬件用戶接口(例如顯示器、揚聲器、設(shè)備振動致動器中的一個或多個)呈現(xiàn)的各種輸出。
[0058]驅(qū)動程序或一組驅(qū)動程序210與硬件212通信。驅(qū)動程序210可以接收和處理從硬件212接收的輸入數(shù)據(jù)。核心操作系統(tǒng)(“OS”) 208可以與驅(qū)動程序(一個或多個)210通信。核心0S208可以處理從驅(qū)動程序210接收的原始輸入數(shù)據(jù)。在某些實施例中,驅(qū)動程序210可被認(rèn)為是核心0S208的一部分。
[0059]一組OS應(yīng)用編程接口(“OS API”) 206是與核心0S208通信的軟件程序。在某些實施例中,API206被包括在設(shè)備的操作系統(tǒng)中,但位于核心0S208之上的層。API206被設(shè)計為由運行在此處討論的電子設(shè)備或裝置上的應(yīng)用使用。用戶接口(UI)API204可利用OSAPI206。運行在設(shè)備上的應(yīng)用軟件(“應(yīng)用”)132可以利用Π API204以便與用戶通信。UI API204又可以與下層的元件通信,最終與各個用戶接口硬件(例如多觸摸顯示器156)通信。
[0060]盡管輸入/輸出處理棧200的每一層可以利用它下面的層,但這并非總是必要的。例如,在某些實施例中,應(yīng)用132可以偶爾與OS API206通信。一般,位于OS API層206或位于其上的層不可以直接訪問核心0S208、驅(qū)動程序210、或硬件212,因為這些層被認(rèn)為是隱蔽的(private)。層132中的應(yīng)用和UI API204通常直接調(diào)用OS API206, OS API206又訪問核心0S208、驅(qū)動程序210和硬件212這些層。
[0061]以另一方式敘述,電子設(shè)備102或104的一個或多個硬件元件212以及運行在設(shè)備上的軟件(諸如,舉例來說,驅(qū)動程序210 (如圖2所示)、核心OS (操作系統(tǒng))208(如圖2所示)、操作系統(tǒng)API軟件206 (如圖2所示)、以及應(yīng)用和用戶接口 API軟件204 (如圖2所示))檢測在一個或多個輸入設(shè)備128和/或觸摸敏感顯示器156處的輸入事件(其可能對應(yīng)于手勢中的子事件),并生成或更新各個數(shù)據(jù)結(jié)構(gòu)(存儲在設(shè)備102或104的存儲器中),所述數(shù)據(jù)結(jié)構(gòu)由一組當(dāng)前活動的事件識別器使用以確定是否以及何時該輸入事件對應(yīng)于要傳遞給應(yīng)用132的事件。以下將更加詳細(xì)地描述事件識別方法、裝置和計算機程序產(chǎn)品的實施例。
[0062]圖3A描繪了示例性的視圖層次結(jié)構(gòu)300,在該示例中是在最外層(outermost)視圖302中顯示的搜索程序。最外層視圖302 —般包含用戶可以直接與之交互的完整用戶界面,并且包括次級(subordinate)視圖,例如:
[0063].搜索結(jié)果面板304,其將搜索結(jié)果集合在一起并可以縱向卷動;
[0064].搜索區(qū)域306,其接收文本輸入;以及
[0065].主行(home row) 310,其將應(yīng)用集合在一起以便快速訪問。
[0066]該示例中,每個次級視圖包括下層的次級視圖。在其它的示例中,層次結(jié)構(gòu)300中的視圖層級的數(shù)量在層次結(jié)構(gòu)的不同分支中可以不相同,其中一個或多個次級視圖具有下層的次級視圖,而一個或多個別的次級視圖不具有任何這樣的下層次級視圖。繼續(xù)如圖3A所示的例子,檢索結(jié)果面板304包含用于各個搜索結(jié)果的單獨的次級視圖305 (從屬于面板304)。這里,該示例在稱為地圖視圖305的次級視圖中顯示了一個搜索結(jié)果。搜索區(qū)域306包括在這里被稱為清空內(nèi)容圖標(biāo)視圖307的次級視圖,當(dāng)用戶在視圖307的清空內(nèi)容圖標(biāo)上執(zhí)行特定動作(如單個觸摸或點擊手勢)時,其清空搜索區(qū)域的內(nèi)容。主行310包括次級視圖310-1、310-2、310-3和310-4,其分別對應(yīng)于聯(lián)系人應(yīng)用、電子郵件應(yīng)用、web瀏覽器和iPod音樂界面。
[0067]觸摸子事件301-1被表示在最外層視圖302中。假設(shè)觸摸子事件301_1的位置在搜索結(jié)果面板304和地圖視圖305 二者上,則該觸摸子事件301-1也被表示在這些視圖上,分別是301-2和301-3。該觸摸子事件的有效涉及視圖(actively involved view)包括搜索結(jié)果面板304視圖、地圖視圖305和最外層視圖302。以下參照圖3B和3C提供關(guān)于子事件傳遞和有效涉及視圖的進一步信息。
[0068]視圖(以及相應(yīng)的編程層級)可以嵌套。也就是說,視圖可以包括其它視圖。因此,與第一視圖相關(guān)聯(lián)的軟件元件(一個或多個)(例如事件識別器)可包括或被鏈接到與該第一視圖內(nèi)的視圖相關(guān)聯(lián)的一個或多個軟件元件。一些視圖可以與應(yīng)用相關(guān)聯(lián),而其它視圖可以與高層OS元件(例如圖形用戶界面,窗口管理器等)相關(guān)聯(lián)。
[0069]圖3B是示出根據(jù)某些實施例的用于事件處理的示例性組件(如事件處理組件390)的框圖。在某些實施例中,存儲器111 (圖1A和IB中)包括事件識別器全局方法311 (例如在操作系統(tǒng)118中)和單獨的應(yīng)用132-1。
[0070]在某些實施例中,事件識別器全局方法311包括事件監(jiān)視器312、命中視圖確定模塊313、活動事件識別器確定模塊314和事件分派器(dispatcher)模塊315。在某些實施例中,事件識別器全局方法311位于事件傳遞系統(tǒng)130中。在某些實施例中,事件識別器全局方法311被實現(xiàn)在操作系統(tǒng)118中。可替換地,事件識別器全局方法311被實現(xiàn)在應(yīng)用132-1中。而在其它實施例中,事件識別器全局方法311被實現(xiàn)為獨立的模塊,或作為存儲在存儲器111中的另一模塊(例如接觸/運動模塊(未繪出))的一部分。
[0071]事件監(jiān)視器312從傳感器130、觸摸敏感顯示器156和/或輸入設(shè)備128接收事件信息。事件信息包括關(guān)于事件(例如觸摸敏感顯示器156上的用戶觸摸,作為多觸摸手勢的一部分,或設(shè)備102或104的運動)和/或子事件(例如劃過觸摸敏感顯示器156的觸摸的運動)的信息。例如,觸摸事件的事件信息包括以下一個或多個:觸摸的位置和時間戳。類似地,揮擊事件的事件信息包括以下兩個或更多個:位置、時間戳、方向和揮擊的速度。傳感器130、觸摸敏感顯示器156和輸入設(shè)備128把事件信息和子事件信息直接地或通過外圍接口發(fā)送到事件監(jiān)視器312,事件監(jiān)視器檢索和存儲事件信息。傳感器130包括以下一個或多個:接近傳感器(proximity sensor)、加速度計(一個或多個)、陀螺儀、麥克風(fēng)和攝像頭。在某些實施例中,傳感器130還包括輸入設(shè)備128和/或觸摸敏感顯示器156。
[0072]在某些實施例中,事件監(jiān)視器312以預(yù)定的時間間隔向傳感器130和/或外圍接口發(fā)送請求。作為響應(yīng),傳感器130和/或外圍接口發(fā)送事件信息。在其它實施例中,只有發(fā)生重要事件(例如,接收到超過預(yù)定噪聲閾值和/或長于預(yù)定持續(xù)時間的輸入)時,傳感器130和外圍接口才發(fā)送事件信息。
[0073]事件監(jiān)視器312接收事件信息并確定要向其傳遞事件信息的應(yīng)用132-1和應(yīng)用132-1的應(yīng)用視圖316-2。
[0074]在某些實施例中,事件識別器全局方法311還包括命中視圖確定模塊313和/或活動事件識別器確定模塊314。
[0075]命中視圖確定模塊313提供用于在觸摸敏感顯示器156顯示多于一個視圖時,確定事件或子事件在一個或多個視圖中發(fā)生的位置的軟件程序。視圖由用戶在顯示器上可見的控件和其它元件組成。[0076]與應(yīng)用132-1相關(guān)聯(lián)的用戶界面的另一方面是一組視圖316,有時在這里被稱為應(yīng)用視圖或用戶界面窗口,在其中顯示信息并且發(fā)生基于觸摸的手勢。在其中檢測到觸摸的(相應(yīng)應(yīng)用的)應(yīng)用視圖可以對應(yīng)于該應(yīng)用的視圖層次結(jié)構(gòu)中的特定視圖。例如,在其中檢測到觸摸的最低層級視圖可被稱為命中視圖,并且可以至少部分地基于開始某個基于觸摸的手勢的初始觸摸的命中視圖,來確定被識別為正確輸入的事件集合。
[0077]命中視圖確定模塊313接收與事件和/或子事件有關(guān)的信息。當(dāng)應(yīng)用具有以層次結(jié)構(gòu)組織的多個視圖時,命中視圖確定模塊313將該層次結(jié)構(gòu)中應(yīng)當(dāng)處理該事件或子事件的最低層視圖確立為命中視圖。在大部分情況下,命中視圖是其中發(fā)生了發(fā)起事件或子事件(即,形成手勢的事件和/或子事件序列中的第一個事件或子事件)的最低層級的視圖。一旦命中視圖確定模塊確立了命中視圖,該命中視圖通常接收與使其被確立為命中視圖的相同觸摸或輸入源有關(guān)的所有事件和/或子事件。
[0078]活動事件識別器確定模塊314確定視圖層次結(jié)構(gòu)中的哪個視圖或哪些視圖應(yīng)當(dāng)接收特定序列的事件和/或子事件。在某些應(yīng)用情況下,活動事件識別器確定模塊314確定只有命中視圖應(yīng)當(dāng)接收特定序列的事件和/或子事件。在其它一些應(yīng)用情況下,活動事件識別器確定模塊314確定所有包括事件和/或子事件的物理位置的視圖是有效涉及視圖,并且因此確定所有有效涉及視圖應(yīng)當(dāng)接收特定序列的事件和/或子事件。在其它一些應(yīng)用情況下,即使觸摸事件和/或子事件被完全限制到與一個特定視圖相關(guān)聯(lián)的區(qū)域,層次結(jié)構(gòu)中更高的視圖將仍然保持作為有效涉及視圖。
[0079]事件分派器模塊315將事件信息分派到事件識別器(這里也稱為“手勢識別器”)(例如,事件識別器320-1)。在包括活動事件識別器確定模塊314的實施例中,事件分派器模塊315將事件信息傳遞到由活動事件識別器確定模塊314確定的事件識別器。在某些實施例中,事件分派器模塊315將事件信息存儲在事件隊列中,由相應(yīng)的事件識別器320 (或相應(yīng)的事件識別器320中的事件接收器331)檢索該事件信息。
[0080]在某些實施例中,應(yīng)用132-1包括應(yīng)用內(nèi)部狀態(tài)317,其在應(yīng)用是活動的或在執(zhí)行時指示顯示在觸摸敏感顯示器156上的當(dāng)前應(yīng)用視圖(一個或多個)。在某些實施例中,設(shè)備/全局內(nèi)部狀態(tài)134由事件識別器全局方法311使用以確定哪個(哪些)應(yīng)用當(dāng)前是活動的,而應(yīng)用內(nèi)部狀態(tài)317由事件識別器全局方法311使用以確定要向其傳遞事件信息的應(yīng)用視圖316。
[0081]在某些實施例中,應(yīng)用內(nèi)部狀態(tài)317包括附加信息(例如344,圖3C),諸如以下一個或多個:當(dāng)應(yīng)用132-1恢復(fù)執(zhí)行時要使用的恢復(fù)信息、指示應(yīng)用132-1正在顯示的或準(zhǔn)備顯示的信息的用戶界面狀態(tài)信息、使用戶能夠回到應(yīng)用132-1的前一狀態(tài)或視圖的狀態(tài)隊列、以及用戶執(zhí)行的先前動作的重做/撤銷隊列。在某些實施例中,應(yīng)用內(nèi)部狀態(tài)317進一步包括上下文信息/文本和元數(shù)據(jù)318。
[0082]在某些實施例中,應(yīng)用132-1包括一個或多個應(yīng)用視圖316,它們中的每一個包括用于處理發(fā)生在該應(yīng)用的用戶界面的相應(yīng)視圖內(nèi)的觸摸事件的指令。應(yīng)用132-1的至少一個應(yīng)用視圖316包括一個或多個事件識別器320以及一個或多個事件處理器322。通常,一個應(yīng)用視圖316包括多個事件識別器320和多個事件處理器322。在其它一些實施例中,一個或多個事件識別器320是單獨模塊的一部分,所述單獨模塊諸如用戶界面工具箱(未示出)或應(yīng)用132-1從中繼承方法和其它屬性的更高層對象。在某些實施例中,事件處理器190還包括下列一個或多個:數(shù)據(jù)更新器、對象更新器、GUI更新器、和/或接收到的事件數(shù)據(jù)。
[0083]事件識別器320-1從事件分派器模塊315接收事件信息,并基于事件信息確立事件。事件識別器320-1包括事件接收器331和事件比較器332。
[0084]事件信息包括關(guān)于事件(例如觸摸)或子事件(例如觸摸移動)的信息。取決于事件或子事件,事件信息還包括附加信息,諸如事件或子事件的位置。當(dāng)事件或子事件涉及觸摸的移動時,事件信息還可以包括子事件的速度和方向。在某些實施例中,事件包括設(shè)備從一個定向到另一個定向的旋轉(zhuǎn)(例如,從縱向到橫向,或反過來),并且事件信息包括關(guān)于設(shè)備的當(dāng)前定向(也被稱為設(shè)備姿態(tài))的對應(yīng)信息。
[0085]事件比較器332將事件信息與預(yù)定義的手勢定義(這里也稱為“事件定義”)進行比較,并且基于該比較,確定事件或子事件,或者確定或更新事件或子事件的狀態(tài)。在某些實施例中,事件比較器332包括一個或多個手勢定義333 (如上所述的,這里也稱為“事件定義”)。手勢定義333包含手勢(例如,預(yù)定的事件和/或子事件序列)的定義,例如,手勢I (334-1)、手勢2 (334-2),等等。在某些實施例中,事件定義333中的子事件包括,例如,觸摸開始、觸摸結(jié)束、觸摸移動、觸摸取消和多觸摸。在一個例子中,手勢1(334-1)的定義是在顯示對象上的雙擊。該雙擊例如包括手勢的預(yù)定階段的在顯示對象上的第一觸摸(觸摸開始)、手勢的下一預(yù)定階段的第一抬起(觸摸結(jié)束)、手勢的隨后的預(yù)定階段的在顯示對象上的第二觸摸(觸摸開始)、和手勢的最終的預(yù)定階段的第二抬起(觸摸結(jié)束)。在另一個例子中,手勢2 (334-2)的定義是在顯示對象上的拖動。該拖動例如包括在顯示對象上的觸摸(或接觸)、該觸摸在觸摸敏感顯示器156上的移動、和觸摸的抬起(觸摸結(jié)束)。
[0086]在某些實施例中,事件識別器320-1還包括用于事件傳遞335的信息。用于事件傳遞335的信息包括對相對應(yīng)的事件處理器322的引用??蛇x地,用于事件傳遞335的信息包括動作-目標(biāo)對(一個或多個)。在某些實施例中,響應(yīng)于識別出手勢(或手勢的一部分),事件信息(例如動作消息(一個或多個))被發(fā)送到由動作-目標(biāo)對確立的一個或多個目標(biāo)。在其它實施例中,響應(yīng)于識別出手勢(或手勢的一部分),該動作-目標(biāo)對被激活。
[0087]在某些實施例中,手勢定義333包括針對用戶界面對象的手勢的定義。在某些實施例中,事件比較器332執(zhí)行命中測試,以便確定哪個用戶界面對象與子事件相關(guān)聯(lián)。例如,在三個用戶界面對象被顯示在觸摸敏感顯示器156上的應(yīng)用視圖中,當(dāng)在觸摸敏感顯示器156上檢測到觸摸時,事件比較器332執(zhí)行命中測試,以便確定三個用戶界面對象中的哪一個(如果有的話)與該觸摸(事件)相關(guān)聯(lián)。如果每個顯示對象與一個相應(yīng)的事件處理器322相關(guān)聯(lián),則事件比較器332使用命中測試的結(jié)果來確定應(yīng)當(dāng)激活哪個事件處理器322。例如,事件比較器332選擇與觸發(fā)命中測試的事件和對象相關(guān)聯(lián)的事件處理器322。
[0088]在某些實施例中,手勢333的定義還包括延遲動作,延遲動作延遲事件信息的傳遞,直到已經(jīng)確定事件和/或子事件序列是否與事件識別器的事件類型相對應(yīng)。
[0089]當(dāng)事件識別器320-1確定事件和/或子事件序列不與手勢定義333中的任何事件匹配時,該相應(yīng)的事件識別器320-1進入事件失敗狀態(tài),此后該相應(yīng)的事件識別器320-1忽視后續(xù)的基于觸摸的手勢的事件和/或子事件。在該情況下,對于命中視圖保持為活動的其它事件識別器(如果有的話)繼續(xù)跟蹤和處理進行中的基于觸摸的手勢的事件和/或子事件。
[0090]在某些實施例中,事件識別器320-1包括事件識別器狀態(tài)336。事件識別器狀態(tài)336包括該相應(yīng)的事件識別器320-1的狀態(tài)。以下參照圖4A-4D更詳細(xì)地描述事件識別器狀態(tài)的例子。
[0091]在某些實施例中,事件識別器336包括識別器元數(shù)據(jù)和屬性337-1。在某些實施例中,識別器兀數(shù)據(jù)和屬性337-1包括以下一個或多個:A)可配置的屬性、標(biāo)志、和/或列表,其指示事件傳遞系統(tǒng)應(yīng)當(dāng)如何執(zhí)行事件和/或子事件到有效涉及的(actively involved)事件識別器的傳遞;B)可配置的屬性、標(biāo)志和/或列表,其指示事件識別器如何彼此交互;C)可配置的屬性、標(biāo)志和/或列表,其指示事件識別器如何接收事件信息;D)可配置的屬性、標(biāo)志和/或列表,其指示事件識別器可以如何識別手勢;E)可配置的屬性、標(biāo)志和/或列表,其指示事件和/或子事件是否被傳遞到視圖層次結(jié)構(gòu)中的不同層級;以及F)到對應(yīng)的事件處理器322的引用。
[0092]在某些實施例中,事件識別器狀態(tài)336包括事件/觸摸元數(shù)據(jù)337-2。事件/觸摸元數(shù)據(jù)337-2包括關(guān)于被檢測到的并且與手勢定義333相對應(yīng)的相應(yīng)事件/觸摸的事件/觸摸信息。該事件/觸摸信息包括以下一個或多個:該相應(yīng)事件/觸摸的位置、時間戳、速度、方向、距離、比例(或比例變化)、以及角度(或角度變化)。
[0093]在某些實施例中,相應(yīng)的應(yīng)用視圖包括一個或多個代表321。相應(yīng)的代表321被分配給相應(yīng)的事件識別器320??商鎿Q地,相應(yīng)的事件識別器320具有對應(yīng)的代表321,但是該代表321并不一定在運行時被分配給相應(yīng)的識別器320,反而是,事件識別器的代表可以在執(zhí)行該應(yīng)用之前被建立(例如,事件識別器的代表可以由應(yīng)用視圖的代表屬性來指示,在對應(yīng)的應(yīng)用視圖316初始化時建立)。在某些實施例中,一些事件識別器不具有分配的(或?qū)?yīng)的)代表。缺少對應(yīng)代表的事件識別器根據(jù)默認(rèn)規(guī)則來執(zhí)行,默認(rèn)規(guī)則諸如管理事件識別獨占性(exclusivity)的默認(rèn)規(guī)則。在某些實施例中,有些事件識別器具有多個分配的(或?qū)?yīng)的)代表。代表修改對應(yīng)的事件識別器的行為,還可以用于協(xié)調(diào)多個事件識別器的行為。在下面描述的某些實施例中,當(dāng)被分配給了相應(yīng)的事件識別器時,代表修改該相應(yīng)事件識別器行為的多個方面。
[0094]在某些實施例中,當(dāng)手勢的一個或多個特定事件和/或子事件被識別時,相應(yīng)事件識別器320激活與該相應(yīng)事件識別器320相關(guān)聯(lián)的事件處理器322。在某些實施例中,相應(yīng)的事件識別器320傳遞與事件相關(guān)聯(lián)的事件信息到事件處理器322。
[0095]事件處理器322在被激活時,執(zhí)行以下一個或多個:創(chuàng)建和/或更新數(shù)據(jù)、創(chuàng)建和更新對象、以及準(zhǔn)備顯示信息并將其發(fā)送以顯示在顯示器126或觸摸敏感顯示器156上。
[0096]在某些實施例中,應(yīng)用視圖316-2包括視圖元數(shù)據(jù)323。視圖元數(shù)據(jù)323包括關(guān)于視圖的數(shù)據(jù)??蛇x地,視圖元數(shù)據(jù)包括以下屬性,其影響事件和/或子事件到事件識別器的傳遞:
[0097].停止屬性324-1,當(dāng)為視圖設(shè)置了該屬性時,阻止事件和/或子事件被傳遞給與該視圖及其在視圖層次結(jié)構(gòu)中的先輩(ancestor)相關(guān)聯(lián)的事件識別器;
[0098].跳過屬性324-2,當(dāng)為視圖設(shè)置了該屬性時,阻止事件和/或子事件被傳遞給與該視圖相關(guān)聯(lián)的事件識別器,但允許事件和/或子事件被傳遞給其在視圖層次結(jié)構(gòu)中的
先輩;[0099].非命中跳過屬性324-3,當(dāng)為視圖設(shè)置了該屬性時,阻止事件和/或子事件被傳遞給與該視圖相關(guān)聯(lián)的事件識別器,除非該視圖是命中視圖;如前面討論的,命中視圖確定模塊313將層次結(jié)構(gòu)中最低層的視圖確立為命中視圖,其應(yīng)當(dāng)處理該子事件;以及
[0100].其它視圖元數(shù)據(jù)324-4。
[0101]在某些實施例中,視圖層次結(jié)構(gòu)中的第一有效涉及視圖可以被配置為阻止相應(yīng)的子事件被傳遞到與該第一有效涉及視圖相關(guān)聯(lián)的事件識別器。這種行為可實現(xiàn)跳過屬性324-2。當(dāng)為應(yīng)用視圖設(shè)置了跳過屬性時,仍然為與視圖層次結(jié)構(gòu)中其它的有效涉及視圖相關(guān)聯(lián)的事件識別器執(zhí)行該相應(yīng)子事件的傳遞。
[0102]可替換地,視圖層次結(jié)構(gòu)中的第一有效涉及視圖可被配置為阻止相應(yīng)的子事件被傳遞到與該第一有效涉及視圖相關(guān)聯(lián)的事件識別器,除非該第一有效涉及視圖是命中視圖。這種行為可實現(xiàn)有條件地非命中跳過屬性324-3。
[0103]在某些實施例中,視圖層次結(jié)構(gòu)中的第二有效涉及視圖被配置為阻止相應(yīng)的子事件被傳遞到與該第二有效涉及視圖相關(guān)聯(lián)的事件識別器和與該第二有效涉及視圖的先輩相關(guān)聯(lián)的事件識別器。這種行為可實現(xiàn)停止屬性324-1。
[0104]應(yīng)當(dāng)理解,前面關(guān)于觸摸敏感顯示器上的用戶觸摸的事件處理的討論也適用于操作具有輸入設(shè)備的電子設(shè)備102或104的其它形式的用戶輸入,其中不是所有用戶輸入都是在觸摸屏上發(fā)起的,例如,與或不與單個或多個鍵盤按壓或保持相配合的鼠標(biāo)移動和鼠標(biāo)按鈕按壓,觸控板上的用戶移動、敲擊、拖動、卷動等,觸筆輸入,設(shè)備的移動(例如旋轉(zhuǎn)),口頭指令,檢測到的眼睛運動,生物測定輸入,和/或它們的任何組合,都可用作與定義要被識別的手勢的事件和/或子事件相對應(yīng)的輸入。
[0105]圖3C是示出了根據(jù)本發(fā)明某些實施例的手勢識別器(如事件處理組件390)的示例性的類和實例的框圖。
[0106]軟件應(yīng)用(例如應(yīng)用132-1)具有一個或多個事件識別器340。在某些實施例中,某個事件識別器(例如340-2)是事件識別器類。該事件識別器(例如340-2)包括事件識別器特定代碼341 (例如,定義事件識別器的操作的指令集)和狀態(tài)機342。
[0107]在某些實施例中,軟件應(yīng)用(例如應(yīng)用132-1)的應(yīng)用狀態(tài)317包括事件識別器的實例。事件識別器的每一實例是一個具有狀態(tài)(例如事件識別器狀態(tài)336)的對象。通過執(zhí)行對應(yīng)的事件識別器特定代碼(例如341)并更新或者維持事件識別器實例343的狀態(tài)336,實現(xiàn)相應(yīng)的事件識別器實例的“執(zhí)行”。事件識別器實例343的狀態(tài)336包括事件識別器實例的狀態(tài)機342的狀態(tài)338。
[0108]在某些實施例中,應(yīng)用狀態(tài)317包括多個事件識別器實例343,每個實例對應(yīng)于一個已被綁定到(也稱為“附著到”)應(yīng)用視圖的事件識別器。在某些實施例中,應(yīng)用狀態(tài)317包括某個事件識別器(例如340-2)的多個實例(例如343-1至343-L)。在某些實施例中,應(yīng)用狀態(tài)317包括多個事件識別器(例如340-1至340-R)的實例343。
[0109]在某些實施例中,手勢識別器的一個實例343-2包括事件識別器狀態(tài)336。如上面討論的,事件識別器狀態(tài)336包括識別器元數(shù)據(jù)和屬性337-1以及事件/觸摸元數(shù)據(jù)337-2。事件識別器狀態(tài)336還包括(一個或多個)視圖層次結(jié)構(gòu)引用337-3,指示手勢識別器的該相應(yīng)的實例343-2附著到哪個視圖。
[0110]在某些實施例中,識別器元數(shù)據(jù)和屬性337-1包括以下項目或其子集或超集:[0111].獨占標(biāo)志339,當(dāng)為事件識別器設(shè)置了該標(biāo)志時,指示一旦事件識別器識別出手勢,事件傳遞系統(tǒng)將停止傳遞事件和/或子事件到有效涉及視圖的任何其它事件識別器(除了在例外清單353中列出的任何其它事件識別器);當(dāng)接收事件和/或子事件導(dǎo)致特定的事件識別器進入該獨占狀態(tài),如它的對應(yīng)的獨占標(biāo)志339所指示的,那么隨后的事件和/或子事件只被傳遞到該處于獨占狀態(tài)的事件識別器(以及在例外清單353中列出的任何其它事件識別器);
[0112].獨占例外清單353 ;當(dāng)被包括在相應(yīng)事件識別器的事件識別器狀態(tài)336中時,該清單353表示這樣一組事件識別器(如果有的話),其即使在所述相應(yīng)事件識別器進入獨占狀態(tài)后,也將繼續(xù)接收事件和/或子事件;例如,如果單擊事件的事件識別器進入獨占狀態(tài),且當(dāng)前涉及的視圖包括雙擊事件的事件識別器,則清單353會列出雙擊事件識別器,因而,即使在檢測到單擊事件之后雙擊事件也可以被識別。因此,該獨占例外清單353允許事件識別器識別共享共同的事件和/或子事件序列的不同手勢,例如單擊手勢的識別不排除其它事件識別器對雙擊或三擊手勢的后續(xù)識別。
[0113].等待清單351 ;當(dāng)被包括在相應(yīng)事件識別器的事件識別器狀態(tài)336中時,該清單351指示這樣一組事件識別器(如果有的話),其在所述相應(yīng)事件識別器可識別出相應(yīng)事件之前,必須進入事件失敗或事件取消狀態(tài);實際上,列出的事件識別器比具有等待清單351的事件識別器擁有更高的識別事件的優(yōu)先級。
[0114].延遲觸摸開始標(biāo)志352,當(dāng)為事件識別器設(shè)置了該標(biāo)志時,導(dǎo)致該事件識別器延遲發(fā)送事件和/或子事件(包括觸摸開始或手指放下子事件,和隨后的事件)到事件識別器的相應(yīng)命中視圖,直到已確定事件和/或子事件序列與該事件識別器的手勢類型不相對應(yīng)之后;在該手勢已被識別的情況下,該標(biāo)志可被用于防止命中視圖看到任何的事件和/或子事件;當(dāng)該事件識別器識別手勢失敗時,該觸摸開始子事件(和隨后的觸摸結(jié)束子事件)可被傳遞至命中視圖;在一個例子中,傳遞這樣的子事件到命中視圖使得用戶界面簡單地突出顯示對象,而不調(diào)用與該對象相關(guān)聯(lián)的動作;
[0115].延遲觸摸結(jié)束標(biāo)志363,當(dāng)為事件識別器設(shè)置了該標(biāo)志時,導(dǎo)致事件識別器延遲發(fā)送子事件(例如觸摸結(jié)束子事件)到事件識別器的相應(yīng)命中視圖或?qū)蛹?,直到已確定子事件序列與該事件識別器的事件類型不相對應(yīng);在該手勢被識別晚了的情況下,這可被用于防止命中視圖根據(jù)觸摸結(jié)束子事件而行動;只要該觸摸結(jié)束子事件沒被發(fā)送,觸摸取消可以被發(fā)送至命中視圖或?qū)蛹墸蝗绻录驯蛔R別,則應(yīng)用的對應(yīng)動作被執(zhí)行,并且該觸摸結(jié)束子事件被傳遞到命中視圖或?qū)蛹墸灰约?br>
[0116].觸摸取消標(biāo)志364,當(dāng)為事件識別器設(shè)置了該標(biāo)志時,導(dǎo)致在已確定事件和/或子事件序列與事件識別器的手勢類型不相對應(yīng)時,事件識別器發(fā)送觸摸或者輸入取消至事件識別器的相應(yīng)命中視圖;發(fā)送到命中視圖的觸摸或輸入取消表明一在先的事件和/或子事件(例如觸摸開始子事件)已經(jīng)被取消;觸摸或者輸入取消可使得事件識別器的狀態(tài)進入事件取消狀態(tài)418 (在圖4B中)。
[0117]在某些實施例中,一個或多個事件識別器可適合于延遲傳遞子事件序列中的一個或多個子事件,直到事件識別器識別該事件之后。這種行為反映延遲的事件。例如,考慮在能夠進行多擊手勢的視圖中的單擊手勢。在這種情況下,點擊事件變?yōu)椤包c擊+延遲”識別器。本質(zhì)上,當(dāng)事件識別器實施這種行為時,事件識別器將延遲事件識別,直到確定子事件序列實際上確實與其事件定義相對應(yīng)。當(dāng)接收方視圖不能適當(dāng)?shù)仨憫?yīng)取消的事件時,這種行為可能是適當(dāng)?shù)摹T谀承嵤├?,事件識別器將延遲將其事件識別器狀態(tài)更新為其相應(yīng)的有效涉及視圖,直到事件識別器確定子事件序列與事件定義不相對應(yīng)。延遲觸摸開始標(biāo)志352、延遲觸摸結(jié)束標(biāo)志363和觸摸取消標(biāo)志364被提供以根據(jù)特定的需要而調(diào)整子事件傳遞技術(shù)以及事件識別器和視圖狀態(tài)信息更新。
[0118]在某些實施例中,識別器元數(shù)據(jù)和屬性337-1包括以下項目或其子集或超集:
[0119].狀態(tài)機狀態(tài)/階段338,其表明相應(yīng)的事件識別器實例(例如343-2)的狀態(tài)機(例如342)的狀態(tài);狀態(tài)機狀態(tài)/階段338可具有各種狀態(tài)值,例如“事件可能”、“事件被識別”、“事件失敗”和其它,如下面描述的;可替換地或者作為附加,狀態(tài)機狀態(tài)/階段338可以具有各種階段值,例如,“觸摸階段開始”,可表示觸摸數(shù)據(jù)結(jié)構(gòu)定義了沒有被之前的觸摸數(shù)據(jù)結(jié)構(gòu)引用過的新觸摸;“觸摸階段移動”值,可表示被定義的觸摸已經(jīng)從前一位置移動;“觸摸階段靜止”值,可表示該觸摸已停留在相同位置;“觸摸階段結(jié)束”值,可表示觸摸已結(jié)束(例如,用戶已經(jīng)從多觸摸顯示器表面上抬起他/她的手指);“觸摸階段取消”值,可表示觸摸已經(jīng)被設(shè)備取消;被取消的觸摸可以是不一定由用戶結(jié)束的觸摸,而是設(shè)備已決定將其忽略的觸摸;例如,設(shè)備可以確定觸摸不是有意生成的(例如,作為將具有便攜式多觸摸功能的設(shè)備放在口袋中的結(jié)果)并且出于該原因忽略該觸摸;狀態(tài)機狀態(tài)/階段338的每個值可以為整數(shù)(此處稱為“手勢識別器狀態(tài)值”);
[0120].動作-目標(biāo)對(一個或多個)345,每一對確立一個目標(biāo),響應(yīng)于將事件或觸摸識別作為手勢或手勢的一部分,相應(yīng)的事件識別器實例發(fā)送所確立的動作消息給該目標(biāo);
[0121].代表346,當(dāng)代表被分配給相應(yīng)的事件識別器實例時,該代表346是到對應(yīng)代表的引用;當(dāng)代表沒有被分配給相應(yīng)的事件識別器實例時,代表346包含空值;以及
[0122].啟用屬性347,表示相應(yīng)的事件識別器實例是否被啟用(enabled);在某些實施例中,當(dāng)相應(yīng)的事件識別器實例沒有被啟用(例如,被禁用(disabled))時,該相應(yīng)的事件識別器實例不處理事件或觸摸。
[0123]在某些實施例中,例外清單353也可由非獨占的事件識別器使用。特別地,當(dāng)非獨占的事件識別器識別出事件或者子事件時,隨后的事件和/或子事件不被傳遞到與當(dāng)前活動視圖相關(guān)聯(lián)的獨占性事件識別器,除了列在所述識別出事件或子事件的事件識別器的例外清單353中的那些獨占性事件識別器。
[0124]在某些實施例中,事件識別器可被配置為利用觸摸取消標(biāo)志364結(jié)合延遲觸摸結(jié)束標(biāo)志363來阻止不需要的事件和/或子事件被傳遞到命中視圖。例如,單擊手勢的定義與雙擊手勢前半部分是相同的。一旦單擊事件識別器成功地識別單擊,不希望的動作可能發(fā)生。如果設(shè)置了延遲觸摸結(jié)束標(biāo)志,則阻止單擊事件識別器發(fā)送子事件到命中視圖,直到單擊事件被識別。此外,該單擊事件識別器的等待清單可以標(biāo)識出雙擊事件識別器,從而阻止單擊事件識別器識別單擊,直到雙擊事件識別器進入了事件不可能狀態(tài)。使用等待清單避免了當(dāng)進行雙擊手勢時與單擊相關(guān)聯(lián)的動作被執(zhí)行。代替地,響應(yīng)于識別出雙擊事件,將只執(zhí)行與雙擊相關(guān)聯(lián)的動作。
[0125]特別地,轉(zhuǎn)向在觸摸敏感表面上的用戶觸摸的形式,如前面指出的,觸摸和用戶手勢可以包括無需是瞬時的動作,例如,觸摸可以包括在顯示器上移動或保持手指一段時間的動作。然而,觸摸數(shù)據(jù)結(jié)構(gòu)定義在特定時間的觸摸的狀態(tài)(或者,更普遍的,任意輸入源的狀態(tài))。因此,存儲在觸摸數(shù)據(jù)結(jié)構(gòu)中的值可能在單個觸摸過程中變化,使得單個觸摸在不同時間點的狀態(tài)被傳送到應(yīng)用。
[0126]每個觸摸數(shù)據(jù)結(jié)構(gòu)可包括各種條目。在某些實施例中,觸摸數(shù)據(jù)結(jié)構(gòu)可包括至少與事件/觸摸元數(shù)據(jù)337-2中的特定于觸摸的條目相對應(yīng)的數(shù)據(jù),例如如下項目或其子集或超集:
[0127].“視圖的第一觸摸”條目348,指示觸摸數(shù)據(jù)結(jié)構(gòu)是否定義了該特定視圖(自該視圖實例化(instantiate)后)的第一觸摸;
[0128].“每個觸摸的信息”條目349,包括“時間戳”信息,其指示與該觸摸數(shù)據(jù)結(jié)構(gòu)有關(guān)的特定時間(例如,觸摸的時間);可選的,“每個觸摸的信息”條目349包括其它信息,諸如對應(yīng)觸摸的位置;以及
[0129].可選的“點擊計數(shù)”條目350,指示在初始觸摸的位置已連續(xù)執(zhí)行了多少次點擊;一次點擊可定乂為手指在觸摸敏感面板的特定位直的快速按壓和抬起;如果手指在面板的相同位置迅速連續(xù)地再次按壓和釋放手指,可以發(fā)生多次連續(xù)點擊;事件傳遞系統(tǒng)130可以計算點擊數(shù)并通過“點擊計數(shù)”條目350向應(yīng)用轉(zhuǎn)發(fā)該信息;在相同位置的多次點擊有時被認(rèn)為對于記住用于能夠觸摸的界面的命令是有用且容易的;這樣,通過計算點擊數(shù),事件傳遞系統(tǒng)130再次減輕了應(yīng)用的一些數(shù)據(jù)處理。
[0130]因此,每個觸摸數(shù)據(jù)結(jié)構(gòu)可以定義相應(yīng)觸摸(或其它輸入源)在特定時間發(fā)生了什么(例如,觸摸是否靜止、移動等等),以及其它與該觸摸相關(guān)聯(lián)的信息(例如位置)。于是,每個觸摸數(shù)據(jù)結(jié)構(gòu)可定義特定觸摸在特定時刻的狀態(tài)。參照同一時間的一個或多個觸摸數(shù)據(jù)結(jié)構(gòu)可以被添加到觸摸事件數(shù)據(jù)結(jié)構(gòu)中,該觸摸事件數(shù)據(jù)結(jié)構(gòu)可以定義特定視圖在某時刻接收的所有觸摸的狀態(tài)(如前面提及的,一些觸摸數(shù)據(jù)結(jié)構(gòu)還可以引用已經(jīng)結(jié)束且不再被接收的觸摸)。為了向軟件提供描述視圖中正在發(fā)生的觸摸的連續(xù)信息,隨時間的推移,多個觸摸事件數(shù)據(jù)結(jié)構(gòu)可被發(fā)送到實施視圖的軟件中。
[0131]處理復(fù)雜的基于觸摸的手勢(可選地包括多觸摸手勢)的能力可能向各種軟件應(yīng)用增加復(fù)雜度。在某些情況下,這種增加的復(fù)雜度是實施高級的所希望的界面特征所必需的。例如,由于游戲常需要在同一時間按壓多個按鈕,或?qū)⒓铀俣葦?shù)據(jù)與觸摸敏感表面上的觸摸相結(jié)合,游戲可能需要處理在不同視圖中發(fā)生的多個同時觸摸的能力。然而,一些較簡單的應(yīng)用和/或視圖不需要高級的界面特征。例如,簡單的軟按鈕(即,顯示在觸摸敏感顯示器上的按鈕)可以用單個觸摸得到令人滿意的操作,而不需多觸摸功能。在這些情況中,底層OS可能發(fā)送不必要或過度的觸摸數(shù)據(jù)(例如,多觸摸數(shù)據(jù))到與僅打算通過單觸摸(例如,在軟按鈕上的單個觸摸或點擊)來操作的視圖相關(guān)聯(lián)的軟件組件。由于該軟件組件可能需要處理該數(shù)據(jù),其可能需要具有處理多觸摸的軟件應(yīng)用的全部復(fù)雜度的特征,即使它與只涉及單觸摸的視圖相關(guān)聯(lián)。這可能增加開發(fā)設(shè)備軟件的成本,因為在鼠標(biāo)接口環(huán)境中(即,各種按鈕等)傳統(tǒng)上容易編程的軟件組件在多觸摸環(huán)境中可能復(fù)雜得多。
[0132]為了減小識別復(fù)雜的基于觸摸的手勢的復(fù)雜度,按照某些實施例,可以使用代表來控制事件識別器的行為。如以下描述的,代表可以確定例如對應(yīng)的事件識別器(或手勢識別器)是否可以接收事件(例如觸摸)信息;對應(yīng)的事件識別器(或手勢識別器)是否可以從狀態(tài)機的初始狀態(tài)(例如,事件可能狀態(tài))轉(zhuǎn)換到另一狀態(tài);和/或?qū)?yīng)的事件識別器(或手勢識別器)是否可以將事件(例如,觸摸)識別為對應(yīng)的手勢,而同時不阻止其它事件識別器(或手勢識別器)識別該事件或者被其它事件識別器(或手勢識別器)阻止識別該事件。
[0133]然而,應(yīng)當(dāng)理解的是,上述關(guān)于評估和處理在觸摸敏感表面上的用戶觸摸的復(fù)雜度的討論也適用于操作電子設(shè)備102或104的所有形式的用戶輸入,其中不是所有用戶輸入都是在觸摸屏上發(fā)起的,例如,與或不與單個或多個鍵盤按壓或保持相配合的鼠標(biāo)移動和鼠標(biāo)按鈕按壓,設(shè)備旋轉(zhuǎn)或其他運動,觸控板上的用戶移動(諸如點擊、拖動、卷動等),觸筆輸入,口頭指令,檢測到的眼睛運動,生物測定輸入,檢測到的用戶生理變化,和/或它們的任何組合,都可用作與定義要被識別的手勢的事件和/或子事件相對應(yīng)的輸入。
[0134]圖4A-4D是根據(jù)某些實施例的用于示例性的狀態(tài)機的流程圖。手勢識別器可以包括離散手勢識別器和連續(xù)手勢識別器。離散手勢識別器通常在識別在預(yù)定時間周期內(nèi)發(fā)生的簡短手勢(如點擊或揮擊手勢)時是有用的,但更基礎(chǔ)的是用于識別這樣的手勢:在識別該手勢后只有一個動作消息或一組動作消息需要被傳遞給應(yīng)用。連續(xù)手勢識別器在識別包括觸摸移動(因此需要跟蹤觸摸的位置)的手勢(如平移(pan)、收縮、或旋轉(zhuǎn)手勢)中是有用的,但更基礎(chǔ)的是用于識別這樣的手勢:在該手勢的過程中一連串的動作消息需要被傳遞給應(yīng)用。在某些實施例中,離散事件識別器狀態(tài)機400和連續(xù)事件識別器狀態(tài)機402具有不同的狀態(tài)。
[0135]圖4A描繪了根據(jù)某些實施例的包含三個狀態(tài)的離散事件識別器狀態(tài)機400。通過基于接收到的事件和/或子事件管理事件識別器狀態(tài)機342中的狀態(tài)轉(zhuǎn)換,事件識別器有效地表示出事件定義。例如,點擊手勢可被有效地定義為兩個或可選的三個子事件的序列。首先,觸摸應(yīng)當(dāng)被檢測,這是子事件I。例如,該觸摸子事件可以是用戶手指在包括具有事件識別器狀態(tài)機342的事件識別器的視圖中觸摸觸摸敏感表面。第二,在觸摸在任何給定的方向上都基本上沒有移動(例如,觸摸位置的任何移動小于預(yù)定義的閾值,其可以以距離(例如,5毫米)或者顯示器上的象素數(shù)目(例如,5象素)來衡量)的情況下,可選的測量的延遲將作為子事件2,其中該延遲足夠短。最后,觸摸的終止(例如,從觸摸敏感表面上抬起用戶的手指)將作為子事件3。通過將事件識別器狀態(tài)機342編程為基于接收這些子事件而在狀態(tài)之間轉(zhuǎn)換,該事件識別器狀態(tài)機342有效地表示出點擊手勢事件定義。離散事件識別器狀態(tài)機400是上述的被配置為識別點擊手勢的事件狀態(tài)機342的示例性的實現(xiàn)。
[0136]不論事件是什么類型,事件識別器狀態(tài)機342 (包括被實現(xiàn)為離散事件識別器狀態(tài)機400的事件識別器狀態(tài)機)開始于事件可能狀態(tài)410,其指示事件識別器狀態(tài)機的初始狀態(tài)。依據(jù)接收到什么樣的事件和/或子事件,事件識別器狀態(tài)機342可進行到任何余下的狀態(tài)。
[0137]從事件可能狀態(tài)410開始,如果接收到不是手勢定義中的第一事件或子事件的事件或者子事件,離散事件識別器狀態(tài)機400將轉(zhuǎn)換到事件失敗狀態(tài)430。
[0138]從事件可能狀態(tài)410開始,如果接收到其本身包含手勢的手勢定義的事件或者子事件,離散事件識別器狀態(tài)機400轉(zhuǎn)換到事件被識別狀態(tài)420。然而,即使接收到的事件或者子事件包含手勢的手勢定義,離散事件識別器狀態(tài)機400仍然可以根據(jù)對應(yīng)的事件識別器的元數(shù)據(jù)(例如,屬性)、由對應(yīng)的代表確定的一個或多個值、和/或應(yīng)用狀態(tài),而轉(zhuǎn)換到事件失敗狀態(tài)430。
[0139]在某些實施例中,在轉(zhuǎn)換到事件被識別狀態(tài)420后,對應(yīng)的事件識別器檢查(441)延遲標(biāo)志(例如,延遲觸摸結(jié)束標(biāo)志363)。如果該延遲標(biāo)志被設(shè)置(441-是),則該對應(yīng)的事件識別器延遲(442)傳遞事件信息,直到該延遲標(biāo)志被取消。
[0140]在某些實施例中,對應(yīng)的事件識別器包括等待清單351,并且該對應(yīng)的事件識別器等待該等待清單351中列出的事件識別器達(dá)到某個狀態(tài)。例如,當(dāng)視圖包括單擊手勢識別器和雙擊手勢識別器時,單擊手勢識別器可以被配置為等待雙擊手勢識別器失敗。實際上,單擊手勢識別器到事件被識別狀態(tài)420的轉(zhuǎn)換需要(或者條件是)雙擊手勢識別器識別該手勢失敗。結(jié)果,當(dāng)有點擊事件時,只要該點擊事件不是多點擊手勢的一部分,單擊手勢識別器就識別該點擊事件。
[0141]延遲和等待(442)(如果有的話)之后,對應(yīng)的手勢識別器傳遞事件至應(yīng)用(443)。在某些實施例中,事件以動作消息的形式被傳遞。在某些實施例中,動作消息按照動作-目標(biāo)對345來傳遞。在某些實施例中,對應(yīng)的手勢識別器激活動作-目標(biāo)對345。
[0142]圖4B描繪了根據(jù)某些實施例的包含6個狀態(tài)的連續(xù)事件識別器狀態(tài)機402。
[0143]根據(jù)上面討論的,連續(xù)事件識別器狀態(tài)機402開始于事件可能狀態(tài)410。
[0144]從事件可能狀態(tài)410開始,如果接收到不是手勢定義中的事件和/或子事件的開始序列的一部分的事件(一個或多個)或子事件(一個或多個),連續(xù)事件識別器狀態(tài)機402轉(zhuǎn)換到事件失敗狀態(tài)430。
[0145]從事件可能狀態(tài)410開始,如果接收到是給定手勢定義的事件和/或子事件的開始序列的一部分的事件或者子事件,連續(xù)事件識別器狀態(tài)機402轉(zhuǎn)換到事件開始狀態(tài)412。與離散手勢識別器400相似,即使接收到的事件或者子事件包含手勢定義中的事件和/或子事件的開始序列的一部分,連續(xù)事件識別器狀態(tài)機402也可以根據(jù)對應(yīng)的事件識別器的元數(shù)據(jù)(例如,屬性)、由對應(yīng)的代表確定的一個或多個值、和/或應(yīng)用狀態(tài),而轉(zhuǎn)換到事件失敗狀態(tài)430。
[0146]從事件開始狀態(tài)412,如果接收的下一事件或子事件是中間事件或子事件,而不是給定手勢定義中的最終事件或子事件,則連續(xù)事件識別器狀態(tài)機402將轉(zhuǎn)換到并維持在事件改變狀態(tài)414。連續(xù)事件識別器狀態(tài)機402可以維持在事件改變狀態(tài)414,只要接收的事件和/或子事件序列繼續(xù)是該手勢定義的一部分。在任何時間,如果連續(xù)事件識別器狀態(tài)機402處于事件改變狀態(tài)414,并且事件識別器狀態(tài)機402接收到不是手勢定義的一部分的事件或子事件,則它將轉(zhuǎn)換到事件失敗狀態(tài)430,從而確定當(dāng)前的事件(如果有的話)不是與這個事件識別器(即,對應(yīng)于連續(xù)事件識別器狀態(tài)機402的事件識別器)相對應(yīng)的事件類型。另一方面,如果連續(xù)事件識別器狀態(tài)機402處于事件開始狀態(tài)412或事件改變狀態(tài)414,并且連續(xù)事件識別器狀態(tài)機402接收到手勢定義中的最后一個事件或子事件,則它將轉(zhuǎn)換到事件結(jié)束狀態(tài)416,從而完成了成功的事件識別。
[0147]在某些實施例中,每個手勢識別器狀態(tài)具有一個手勢識別器狀態(tài)值。在某些實施例中,事件被識別狀態(tài)420 (對于離散事件識別器狀態(tài)機400而言)和事件結(jié)束狀態(tài)416 (對于連續(xù)事件識別器狀態(tài)機402而言)具有相同的手勢識別器狀態(tài)值,從而,被配置為響應(yīng)一種類型的手勢識別器的手勢識別的軟件組件也能響應(yīng)其它類型的手勢識別器。
[0148]在處于事件開始狀態(tài)412或者事件改變狀態(tài)414時,當(dāng)預(yù)定義的中斷事件(例如,操作系統(tǒng)118或者控制應(yīng)用124中預(yù)定義的,例如進入的電話呼叫)發(fā)生,連續(xù)事件識別器狀態(tài)機402轉(zhuǎn)換到事件取消狀態(tài)418。[0149]不論手勢識別器是什么類型,每個手勢識別器(例如,343)可被重置,以使得對應(yīng)的事件識別器狀態(tài)機(例如,342)回到事件可能狀態(tài)410。
[0150]圖4C和4D描繪了根據(jù)某些實施例,代表在狀態(tài)轉(zhuǎn)換中的作用。在圖4C和4D中,一個或多個代表進行的動作(或作出的決定)被表示為陰影框(例如,450-456)。
[0151]圖4C描繪了根據(jù)某些實施例,對于離散事件識別器狀態(tài)機400,代表在狀態(tài)轉(zhuǎn)換中的作用。在下面討論的例子中,狀態(tài)機400對應(yīng)于具有對應(yīng)的代表的特定離散事件識別器。
[0152]開始于事件可能狀態(tài)410,如果檢測到事件或子事件,與事件識別器相對應(yīng)的代表決定事件識別器是否應(yīng)接收(450)該事件或子事件。如果代表返回阻止對應(yīng)的事件識別器接收該事件或子事件的值,則對應(yīng)的事件識別器不接收該事件或子事件(或者忽略該事件或子事件)。結(jié)果是,對應(yīng)的事件識別器維持在事件可能狀態(tài)410。如果沒有代表阻止對應(yīng)的事件識別器接收該事件或子事件,則對應(yīng)的事件識別器的默認(rèn)行為是接收該事件或子事件。
[0153]應(yīng)當(dāng)注意,一組事件識別器的代表進行的“應(yīng)當(dāng)接收”操作450可被用于確定哪些事件識別器接收在觸摸敏感顯示器或表面上的哪些觸摸。例如,在允許用戶使用兩個觸摸以便分別且同時重新定位(reposition)兩個對象或者以便選擇兩個不同對象的視圖中,兩個事件識別器的代表可被配置為允許一個事件識別器只接收這兩個觸摸中的第一個,以及允許第二事件識別器只接收這兩個觸摸中的第二個。關(guān)于這兩個觸摸中每一個的全部信息因此只針對由其對應(yīng)的代表允許接收該觸摸的事件識別器。通過使用多個事件識別器和對應(yīng)的確定由哪些事件識別器處理哪些觸摸的代表,更多復(fù)雜的多觸摸輸入也可以被識別和處理。
[0154]如果事件識別器被允許接收事件或子事件,與該事件識別器相對應(yīng)的代表(或控制應(yīng)用124或操作系統(tǒng)118)決定該事件識別器對事件或子事件的識別是否被已經(jīng)識別出該事件的另一個事件識別器阻止(451)。這種初級水平的阻止基于默認(rèn)的獨占規(guī)則,且可被代表推翻(override)。如果事件或子事件的識別被阻止,對應(yīng)的代表(或操作系統(tǒng)118或控制應(yīng)用124)還根據(jù)由該代表確定的一個或多個值,決定是否允許該事件識別器同時識別該事件(452)。例如,如果該事件識別器位于最初識別該事件的事件識別器的獨占例外清單353上,則該代表允許兩個事件識別器同時識別。在另一個例子中,如果該事件識別器的獨占標(biāo)志339沒有設(shè)置,則該代表允許兩個事件識別器同時識別。如果同時識別不被允許,則該事件識別器轉(zhuǎn)換到事件失敗狀態(tài)430。
[0155]如果對應(yīng)的事件識別器未被阻止(451-否)識別事件或子事件,或者如果同時的識別是被允許的(452-是),則對應(yīng)的事件識別器確定該事件或子事件是否與對應(yīng)的手勢定義匹配(453)。如果該事件或子事件與該對應(yīng)的手勢定義不匹配(453-不),則該對應(yīng)的手勢識別器轉(zhuǎn)換到事件失敗狀態(tài)430。
[0156]如果事件或子事件與對應(yīng)的手勢定義相匹配(453-是),則對應(yīng)的代表(或操作系統(tǒng)118或控制應(yīng)用124)根據(jù)由該代表確定的一個或多個值,決定是否可以轉(zhuǎn)換離開事件可能狀態(tài)410 ( “應(yīng)當(dāng)開始”454)。如果事件識別器沒被代表允許轉(zhuǎn)換離開事件可能狀態(tài)410 (454-不),則對應(yīng)的事件識別器被設(shè)置為事件失敗狀態(tài)430。如果事件識別器被允許轉(zhuǎn)換離開事件可能狀態(tài)410 (454-是),則對應(yīng)的數(shù)據(jù)識別器轉(zhuǎn)換到事件被識別狀態(tài)420。[0157]當(dāng)對應(yīng)的數(shù)據(jù)識別器轉(zhuǎn)換到事件被識別狀態(tài)420時,對應(yīng)的事件識別器(或操作系統(tǒng)118或控制應(yīng)用124)還決定是否允許其它的事件識別器識別該事件或子事件(455)。在某些實施例中,默認(rèn)是阻止所有其它事件識別器識別該相同事件,除非至少一個事件識別器的代表(或應(yīng)用)設(shè)置了允許同時識別的屬性。如果與已識別出該事件或子事件的事件識別器相對應(yīng)的代表確定該代表將允許其它事件識別器識別該事件或子事件(455-是),則該代表(或操作系統(tǒng)118或控制應(yīng)用124)設(shè)置其它事件識別器的屬性(456)以使得它們可以同時識別該事件或子事件。如果該代表不允許其它事件識別器識別該事件或子事件,則其它事件識別器被阻止識別該事件或子事件。
[0158]在某些實施例中,在阻止某個事件識別器識別事件或子事件之前,該事件識別器的代表還被調(diào)用(見452)以觀察它是否會允許該事件或子事件的同時識別。在這些實施例中,同時識別可以由第一事件識別器的代表或者第二事件識別器的代表啟用以識別該事件。如圖4C中的452和455所示,在這些實施例中,只有當(dāng)事件至少一個事件識別器的事件定義匹配時,才進行關(guān)于是否允許同時識別的決定。
[0159]上面描述的代表操作,當(dāng)在應(yīng)用視圖(或一組同時顯示的視圖)所使用的一組事件識別器的代表中實施時,可被用于定制(customize)事件識別器間的交互。這些代表可以實施默認(rèn)的獨占規(guī)則的例外,否則,基于相同的接收的事件(一個或多個),該規(guī)則只允許一個事件識別器識別手勢。使用代表來實施默認(rèn)的獨占規(guī)則的例外并從而允許符合的事件識別器同時進行事件識別,促進了軟件應(yīng)用中許多有用功能的實現(xiàn)。使用代表來修改和控制事件識別器的行為,考慮到了復(fù)雜關(guān)系的緊湊表示和實施,所述復(fù)雜關(guān)系諸如是相互排斥的多組彼此相容的手勢。
[0160]圖4D描繪了根據(jù)某些實施例,對于連續(xù)事件識別器狀態(tài)機402,代表在狀態(tài)轉(zhuǎn)換中的作用。在下面討論的例子中,狀態(tài)機402對應(yīng)于具有對應(yīng)的代表的特定的連續(xù)事件識別器。圖4C中示出的以及以上參照圖4C討論的所有代表操作同樣適用于具有對應(yīng)的代表的連續(xù)事件識別器,因此圖4D中示出的代表操作與圖4C具有相同的標(biāo)號。唯一的不同是狀態(tài)機中一個狀態(tài)的名稱改變了,從狀態(tài)機400中的“事件被識別” 420變?yōu)闋顟B(tài)機402中的“事件開始”412。
[0161]開始于事件開始狀態(tài)412,如上所述的,對應(yīng)的事件識別器轉(zhuǎn)換到其它狀態(tài)。為簡單起見,不描述從事件改變狀態(tài)414到事件失敗狀態(tài)416的轉(zhuǎn)換。
[0162]以下表格用表格形式給出與上述事件識別器的狀態(tài)有關(guān)的示例性的子事件序列(例如,單擊)的處理。在該例子中,子事件序列包括單擊,并且視圖具有兩個點擊手勢識別器:單擊手勢識別器和雙擊手勢識別器。并且在該例子中,兩個手勢識別器都被配置為同時接收和識別該子事件序列??梢杂煞峙浣o單擊手勢識別器的代表或者分配給第二點擊手勢識別器的代表來允許同時的識別。
[0163]
序號I子事件序列(單擊)I單擊手勢識別器~I雙擊手勢識別器^
? 傳遞開始之前事件可能事件可能
[0164]
【權(quán)利要求】
1.一種方法,包括: 在具有一個或多個事件傳感器并且被配置為執(zhí)行包括多個視圖和軟件應(yīng)用的應(yīng)用狀態(tài)的所述軟件應(yīng)用的電子設(shè)備處: 顯示所述多個視圖中的一個或多個視圖,其中所顯示的所述一個或多個視圖中的相應(yīng)視圖包括一個或多個相應(yīng)的手勢識別器,并且相應(yīng)的手勢識別器具有對應(yīng)的代表; 檢測一個或多個事件; 使用所述相應(yīng)的手勢識別器來處理所述一個或多個事件中的相應(yīng)事件,對所述相應(yīng)事件的所述處理包括: 在所述相應(yīng)的手勢識別器處,根據(jù)與所述相應(yīng)的手勢識別器對應(yīng)的相應(yīng)手勢定義來處理所述相應(yīng)事件,執(zhí)行所述對應(yīng)的代表以根據(jù)所述應(yīng)用狀態(tài)來確定一個或多個值,以及根據(jù)所述相應(yīng)的手勢識別器對所述相應(yīng)事件的所述處理的結(jié)果并且根據(jù)由所述對應(yīng)的代表確定的所述一個或多個值,有條件地向所述軟件應(yīng)用發(fā)送與所述相應(yīng)事件對應(yīng)的信息;以及根據(jù)從所述相應(yīng)的手勢識別器接收的、與所述相應(yīng)事件對應(yīng)的信息,來執(zhí)行所述軟件應(yīng)用。
2.根據(jù)權(quán)利要求1所述的方法,其中所述一個或多個事件傳感器包括被配置為檢測一個或多個觸摸的觸摸敏感表面,所述一個或多個事件包括所述一個或多個觸摸,并且處理所述相應(yīng)事件包括處理相應(yīng)觸摸。
3.根據(jù)權(quán)利要求2所述的方法,包括根據(jù)由所述對應(yīng)的代表確定的所述一個或多個值,在所述相應(yīng)的手勢識別器處有條件地接收所述相應(yīng)觸摸。
4.根據(jù)權(quán)利要求2-3中任一項所述的方法,其中處理所述相應(yīng)觸摸包括:當(dāng)由所述對應(yīng)的代表確定的所述一個或多個值與預(yù)定義的觸摸忽視標(biāo)準(zhǔn)匹配時,所述相應(yīng)的手勢識別器忽視所述相應(yīng)觸摸。
5.根據(jù)權(quán)利要求2-3中任一項所述的方法,其中處理所述相應(yīng)觸摸包括:當(dāng)由所述對應(yīng)的代表所確定的所述一個或多個值與預(yù)定義的觸摸忽視標(biāo)準(zhǔn)匹配時,阻止所述相應(yīng)的手勢識別器接收所述相應(yīng)觸摸。
6.根據(jù)權(quán)利要求2-3中任一項所述的方法,其中在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸包括:當(dāng)檢測到的所述觸摸與所述相應(yīng)手勢定義一致時,在所述對應(yīng)的代表啟用對應(yīng)的狀態(tài)轉(zhuǎn)換時在所述相應(yīng)的手勢識別器中啟用所述對應(yīng)的狀態(tài)轉(zhuǎn)換。
7.根據(jù)權(quán)利要求2-3中任一項所述的方法,其中在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸包括:當(dāng)檢測到的所述觸摸與所述相應(yīng)手勢定義一致時,在所述對應(yīng)的代表啟用對應(yīng)的狀態(tài)轉(zhuǎn)換時在所述相應(yīng)的手勢識別器中有條件地啟用所述對應(yīng)的狀態(tài)轉(zhuǎn)換。
8.根據(jù)權(quán)利要求2-3中任一項所述的方法,其中在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸包括:根據(jù)與第二手勢識別器對應(yīng)的代表所確定的一個或多個值,在所述第二手勢識別器處同時處理所述相應(yīng)觸摸。
9.根據(jù)權(quán)利要求2-3中任一項所述的方法,其中在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸包括:根據(jù)與所述相應(yīng)的手勢識別器對應(yīng)的所述代表所確定的一個或多個值,在第二手勢識別器處同時處理所述相應(yīng)觸摸。
10.根據(jù)權(quán)利要求1-3中任一項所述的方法,其中所顯示的所述一個或多個視圖包括多個手勢識別器,所述方法包括:至少向所述多個手勢識別器的子集分配不同的代表。
11.一種電子設(shè)備,包括: 用于檢測一個或多個事件的裝置; 用于顯示軟件應(yīng)用的多個視圖中的一個或多個視圖的裝置,其中所顯示的所述一個或多個視圖中的相應(yīng)視圖包括一個或多個相應(yīng)的手勢識別器,并且相應(yīng)的手勢識別器具有相應(yīng)的代表; 用于使用相應(yīng)的手勢識別器來處理所述一個或多個事件中的相應(yīng)事件的裝置,用于所述相應(yīng)事件的處理的所述裝置包括: 用于在所述相應(yīng)的手勢識別器處根據(jù)與所述相應(yīng)的手勢識別器對應(yīng)的相應(yīng)手勢定義來處理所述相應(yīng)事件的裝置,用于執(zhí)行所述相應(yīng)的代表以根據(jù)所述軟件應(yīng)用的應(yīng)用狀態(tài)來確定一個或多個值的裝置,以及用于根據(jù)所述相應(yīng)的手勢識別器對所述相應(yīng)事件的所述處理的結(jié)果并且根據(jù)由所述相應(yīng)的代表確定的所述一個或多個值,有條件地向所述軟件應(yīng)用發(fā)送與所述相應(yīng)事件對應(yīng)的信息的裝置;以及 用于根據(jù)從所述相應(yīng)的手勢識別器接收的、與所述相應(yīng)事件對應(yīng)的信息來執(zhí)行所述軟件應(yīng)用的裝置。
12.根據(jù)權(quán)利要求11所述的電子設(shè)備,其中用于檢測一個或多個事件的所述裝置包括被配置為檢測一個或多個觸摸的觸摸敏感表面,所述一個或多個事件包括所述一個或多個觸摸,并且用于處理所述相應(yīng)事件的所述裝置包括用于處理相應(yīng)觸摸的裝置。
13.根據(jù)權(quán)利要求12所述的電子設(shè)備,包括用于根據(jù)由所述對應(yīng)的代表確定的所述一個或多個值,在所述相應(yīng)的手勢識別器處有條件地接收所述相應(yīng)觸摸的裝置。
14.根據(jù)權(quán)利要求12-13中任一項所述的電子設(shè)備,其中用于處理所述相應(yīng)觸摸的所述裝置包括所述相應(yīng)的手勢識別器,被配置為當(dāng)由所述對應(yīng)的代表確定的所述一個或多個值與預(yù)定義的觸摸忽視標(biāo)準(zhǔn)匹配時,忽`視所述相應(yīng)觸摸。
15.根據(jù)權(quán)利要求12-13中任一項所述的電子設(shè)備,其中用于處理所述相應(yīng)觸摸的所述裝置包括:用于當(dāng)由所述對應(yīng)的代表所確定的所述一個或多個值與預(yù)定義的觸摸忽視標(biāo)準(zhǔn)匹配時阻止所述相應(yīng)的手勢識別器接收所述相應(yīng)觸摸的裝置。
16.根據(jù)權(quán)利要求12-13中任一項所述的電子設(shè)備,其中用于在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸的所述裝置包括:當(dāng)檢測到的所述觸摸與所述相應(yīng)手勢定義一致時被啟用、以用于在所述對應(yīng)的代表啟用對應(yīng)的狀態(tài)轉(zhuǎn)換時在所述相應(yīng)的手勢識別器中啟用所述對應(yīng)的狀態(tài)轉(zhuǎn)換的裝置。
17.根據(jù)權(quán)利要求12-13中任一項所述的電子設(shè)備,其中用于在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸的所述裝置包括:當(dāng)檢測到的所述觸摸與所述相應(yīng)手勢定義一致時被啟用、以用于在所述對應(yīng)的代表啟用對應(yīng)的狀態(tài)轉(zhuǎn)換時在所述相應(yīng)的手勢識別器中有條件地啟用所述對應(yīng)的狀態(tài)轉(zhuǎn)換的裝置。
18.根據(jù)權(quán)利要求12-13中任一項所述的電子設(shè)備,其中用于在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸的所述裝置包括:用于根據(jù)與第二手勢識別器對應(yīng)的代表所確定的一個或多個值,在所述第二手勢識別器處同時處理所述相應(yīng)觸摸的裝置。
19.根據(jù)權(quán)利要求12-13中任一項所述的電子設(shè)備,其中用于在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸的所述裝置包括:用于根據(jù)與所述相應(yīng)的手勢識別器對應(yīng)的所述代表所確定的一個或多個值,在第二手勢識別器處同時處理所述相應(yīng)觸摸的裝置。
20.根據(jù)權(quán)利要求11-13中任一項所述的電子設(shè)備,其中所顯示的所述一個或多個視圖包括多個手勢識別器,并且所述電子設(shè)備包括:用于至少向所述多個手勢識別器的子集分配不同的代表的裝置。
21.一種在電子設(shè)備中使用的信息處理設(shè)備,所述電子設(shè)備具有用于檢測一個或多個事件的裝置,所述信息處理設(shè)備包括: 用于顯示軟件應(yīng)用的多個視圖中的一個或多個視圖的裝置,其中所顯示的所述一個或多個視圖中的相應(yīng)視圖包括一個或多個相應(yīng)的手勢識別器,并且相應(yīng)的手勢識別器具有相應(yīng)的代表; 用于使用相應(yīng)的手勢識別器來處理所述一個或多個事件中的相應(yīng)事件的裝置,用于所述相應(yīng)事件的處理的所述裝置包括: 用于在所述相應(yīng)的手勢識別器處根據(jù)與所述相應(yīng)的手勢識別器對應(yīng)的相應(yīng)手勢定義來處理所述相應(yīng)事件的裝置,用于執(zhí)行所述相應(yīng)的代表以根據(jù)所述軟件應(yīng)用的應(yīng)用狀態(tài)來確定一個或多個值的裝置,以及用于根據(jù)所述相應(yīng)的手勢識別器對所述相應(yīng)事件的所述處理的結(jié)果并且根據(jù)由所述相應(yīng)的代表確定的所述一個或多個值,有條件地向所述軟件應(yīng)用發(fā)送與所述相應(yīng)事件對應(yīng)的信息的裝置;以及 用于根據(jù)從所述相應(yīng)的手勢識別器接收的、與所述相應(yīng)事件對應(yīng)的信息來執(zhí)行所述軟件應(yīng)用的裝置。
22.根據(jù)權(quán)利要求21所述的設(shè)備,其中用于檢測事件的所述裝置包括被配置為檢測一個或多個觸摸的觸摸敏感表面,所述一個或多個事件包括所述一個或多個觸摸,并且用于處理所述相應(yīng)事件的所述裝置包括用于處理相應(yīng)觸摸的裝置。
23.根據(jù)權(quán)利要求22所述的設(shè)備,包括用于根據(jù)由所述對應(yīng)的代表確定的所述一個或多個值,在所述相應(yīng)的手勢識別器處有條件地接收所述相應(yīng)觸摸的裝置。
24.根據(jù)權(quán)利要求22-23中任一項所述的設(shè)備,其中用于處理所述相應(yīng)觸摸的所述裝置包括所述相應(yīng)的手勢識別器,被配置為當(dāng)由所述對應(yīng)的代表確定的所述一個或多個值與預(yù)定義的觸摸忽視標(biāo)準(zhǔn)匹配時,忽視所述相應(yīng)觸摸。
25.根據(jù)權(quán)利要求22-23中任一項所述的設(shè)備,其中用于處理所述相應(yīng)觸摸的所述裝置包括:用于當(dāng)由所述對應(yīng)的代表所確定的所述一個或多個值與預(yù)定義的觸摸忽視標(biāo)準(zhǔn)匹配時阻止所述相應(yīng)的手勢識別器接收所述相應(yīng)觸摸的裝置。
26.根據(jù)權(quán)利要求22-23中任一項所述的設(shè)備,其中用于在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸的所述裝置包括:當(dāng)檢測到的所述觸摸與所述相應(yīng)手勢定義一致時被啟用、以用于在所述對應(yīng)的代表啟用對應(yīng)的狀態(tài)轉(zhuǎn)換時在所述相應(yīng)的手勢識別器中啟用所述對應(yīng)的狀態(tài)轉(zhuǎn)換的裝置。
27.根據(jù)權(quán)利要求22-23中任一項所述的設(shè)備,其中用于在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸的所述裝置包括:當(dāng)檢測到的所述觸摸與所述相應(yīng)手勢定義一致時被啟用、以用于在所述對應(yīng)的代表啟用對應(yīng)的狀態(tài)轉(zhuǎn)換時在所述相應(yīng)的手勢識別器中有條件地啟用所述對應(yīng)的狀態(tài)轉(zhuǎn)換的裝置。
28.根據(jù)權(quán)利要求22-23中任一項所述的設(shè)備,其中用于在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸的所述裝置包括:用于根據(jù)與第二手勢識別器對應(yīng)的代表所確定的一個或多個值,在所述第二手勢識別器處同時處理所述相應(yīng)觸摸的裝置。
29.根據(jù)權(quán)利要求22-23中任一項所述的設(shè)備,其中用于在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸的所述裝置包括:用于根據(jù)與所述相應(yīng)的手勢識別器對應(yīng)的所述代表所確定的一個或多個值,在第二手勢識別器處同時處理所述相應(yīng)觸摸的裝置。
30.根據(jù)權(quán)利要求21-23中任一項所述的設(shè)備,其中所顯示的所述一個或多個視圖包括多個手勢識別器,并且所述信息處理設(shè)備包括:用于至少向所述多個手勢識別器的子集分配不同的代表的裝置。
31.一種電子設(shè)備,包括: 一個或多個事件感測單元,被配置為感測一個或多個事件;以及 處理單元,耦合到所述一個或多個事件感測單元,所述處理單元被配置為: 執(zhí)行軟件應(yīng)用,所述軟件應(yīng)用包括多個視圖和所述軟件應(yīng)用的應(yīng)用狀態(tài); 啟用所述多個視圖中的一個或多個視圖的顯示,其中所顯示的所述一個或多個視圖中的相應(yīng)視圖包括相應(yīng)的手勢識別器,并且所述相應(yīng)的手勢識別器具有對應(yīng)的代表; 檢測由所述一個或多個事件感測單元感測的所述一個或多個事件;以及 通過以下操作,使用所述相應(yīng)的手勢識別器來處理所述一個或多個事件中的相應(yīng)事件: 在所述相應(yīng)的手勢識別器處,根據(jù)與所述相應(yīng)的手勢識別器對應(yīng)的相應(yīng)手勢定義來處理所述相應(yīng)事件,執(zhí)行所述對應(yīng)的代表以根據(jù)所述應(yīng)用狀態(tài)來確定一個或多個值,以及根據(jù)所述相應(yīng)的手勢識別器對所述相應(yīng)事件的所述處理的結(jié)果并且根據(jù)由所述對應(yīng)的代表確定的所述一個或多個值,有條件地向所述軟件應(yīng)用發(fā)送與所述相應(yīng)事件對應(yīng)的信息;以及根據(jù)從所述相應(yīng)的手勢識別器接收的、與所述相應(yīng)事件對應(yīng)的信息,來執(zhí)行所述軟件應(yīng)用。
32.根據(jù)權(quán)利要求31所述的設(shè)備,其中所述一個或多個事件感測單元包括被配置為檢測一個或多個觸摸的觸摸敏感表面單元,所述一個或多個事件包括所述一個或多個觸摸,并且所述處理單元被配置為處理相應(yīng)觸摸。
33.根據(jù)權(quán)利要求32所述的設(shè)備,所述處理單元被配置為根據(jù)由所述對應(yīng)的代表確定的所述一個或多個值,使所述相應(yīng)的手勢識別器能夠有條件地接收所述相應(yīng)觸摸。
34.根據(jù)權(quán)利要求32-33中任一項所述的設(shè)備,其中所述處理單元被配置為:當(dāng)由所述對應(yīng)的代表確定的所述一個或多個值與預(yù)定義的觸摸忽視標(biāo)準(zhǔn)匹配時,使所述相應(yīng)的手勢識別器能夠忽視所述相應(yīng)觸摸。
35.根據(jù)權(quán)利要求32-33中任一項所述的設(shè)備,其中所述處理單元被配置為:當(dāng)由所述對應(yīng)的代表所確定的所述一個或多個值與預(yù)定義的觸摸忽視標(biāo)準(zhǔn)匹配時,阻止所述相應(yīng)的手勢識別器接收所述相應(yīng)觸摸。
36.根據(jù)權(quán)利要求32-33中任一項所述的設(shè)備,其中所述處理單元被配置為通過如下方式在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸:當(dāng)檢測到的所述觸摸與所述相應(yīng)手勢定義一致時,在所述對應(yīng)的代表啟用對應(yīng)的狀態(tài)轉(zhuǎn)換時在所述相應(yīng)的手勢識別器中啟用所述對應(yīng)的狀態(tài)轉(zhuǎn)換。
37.根據(jù)權(quán)利要求32-33中任一項所述的設(shè)備,其中所述處理單元被配置為通過如下方式在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸:當(dāng)檢測到的所述觸摸與所述相應(yīng)手勢定義一致時,在所述對應(yīng)的代表啟用對應(yīng)的狀態(tài)轉(zhuǎn)換時在所述相應(yīng)的手勢識別器中有條件地啟用所述對應(yīng)的狀態(tài)轉(zhuǎn)換。
38.根據(jù)權(quán)利要求32-33中任一項所述的設(shè)備,其中所述處理單元被配置為通過如下方式在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸:根據(jù)與第二手勢識別器對應(yīng)的代表所確定的一個或多個值,在所述第二手勢識別器處同時處理所述相應(yīng)觸摸。
39.根據(jù)權(quán)利要求32-33中任一項所述的設(shè)備,其中所述處理單元被配置為通過如下方式在所述相應(yīng)的手勢識別器處處理所述相應(yīng)觸摸:根據(jù)與所述相應(yīng)的手勢識別器對應(yīng)的所述代表所確定的一個或多個值,在第二手勢識別器處同時處理所述相應(yīng)觸摸。
40.根據(jù)權(quán)利要求31-33中任一項所述的設(shè)備,其中所顯示的所述一個或多個視圖包括多個手勢識別器,并且所述處理單元被配置為:至少向所述多個手勢識別器的子集分配不同的代表 。
【文檔編號】G06F3/041GK103558983SQ201310557439
【公開日】2014年2月5日 申請日期:2011年1月26日 優(yōu)先權(quán)日:2010年1月26日
【發(fā)明者】J·H·沙法爾, B·A·摩爾, J·C·比弗 申請人:蘋果公司