高性能觸摸拖放的制作方法
【專利說明】
【背景技術】
[0001]持續使具有用戶可接合的顯示器(諸如,觸摸顯示器)的設備的設計師面臨的挑戰之一涉及通過可以利用該設備采用的手勢為用戶提供增強的功能。這不僅對于具有較大或多個屏幕的設備是如此,而且在具有較小占用面積的設備(諸如,平板電腦,手持設備,較小的多屏幕設備等)的背景中也是如此。
[0002]用基于手勢的輸入的一個挑戰是提供使能鼠標輸入的功能的web的web平臺以使能觸摸輸入的類似功能的挑戰。例如,現今在觸摸界面中,輕擊一項目以啟動該項目是常見的。這使得難以提供二次功能,諸如選擇項目的能力。此外,某些挑戰與所謂的可平移(pannable)表面(即可以能夠被平移并且使其內容移動的表面)共存。例如,可平移表面通常反應于手指拖動并且在用戶的手指的方向上移動內容。如果表面包含用戶可能想要重新安排的對象,則難以區分用戶何時想要平移表面或重新排列內容。
【發明內容】
[0003]本
【發明內容】
被提供來介紹以簡化形式的一系列概念,以下在【具體實施方式】中進一步描述該概念。本
【發明內容】
即不旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。
[0004]描述了用于高性能觸摸拖放的技術。在至少一些實施例中,多線程體系結構被實施為至少包括操縱線程和獨立命中測試線程。操縱線程接收與輸入相關聯的消息,并且發送與消息相關聯的數據到獨立命中測試線程。獨立命中測試線程執行獨立命中測試以確定輸入是否命中了有資格用于特定動作的元素。獨立命中測試線程還標識與輸入相關聯的交互模型,并且發送交互模型的指示到操縱線程,以使能操縱線程來檢測特定動作是否被觸發。
[0005]在一個或多個實施例中,接收基于與觸摸輸入相關聯的指針消息的一個或多個操縱通知。指針消息配置為發起對頁面的元素的拖放操作。將與指針消息相關聯的更新與表示頁面上的元素的拖動畫面相關。一個或多個拖動通知被發送給拖放管理器,以使能拖放管理器來發起鼠標兼容的功能而不必理解觸摸輸入。
[0006]在至少一些實施例中,接收加載頁面的請求,并標識頁面上的一個或多個可拖動元素。可拖動元素在網頁上被呈現到層中,該層與頁面上的內容所呈現到的另一個層分離。接收發起在可拖動元素上的拖放操作的輸入。響應于被發起的拖放操作,基于可拖動元素呈現拖動畫面。
【附圖說明】
[0007]參照附圖來描述【具體實施方式】。在附圖中,參考數字的(多個)最左邊數字標識其中該參考數字首次出現的附圖。描述和附圖中的不同實例中的相同參考數字的使用可以指示類似或相同的項目。
[0008]圖1是依據一個或多個實施例的示例實施方式中的環境的圖示。
[0009]圖2是更詳細地示出圖1的示例實施方式中的系統的圖示。
[0010]圖3是描述依據一個或多個實施例的方法中的步驟的流程圖。
[0011]圖4圖示依據一個或多個實施例的示例客戶端體系結構。
[0012]圖5是描述依據一個或多個實施例的方法中的步驟的流程圖。
[0013]圖6是依據一個或多個實施例的示例實施方式的圖示。
[0014]圖7是描述依據一個或多個實施例的方法中的步驟的流程圖。
[0015]圖8圖示依據一個或多個實施例的用于接收和處理鼠標和觸摸輸入的示例體系結構。
[0016]圖9是描述依據一個或多個實施例的輸入變換過程或方法中的步驟的流程圖。
[0017]圖10圖示依據一個或多個實施例的示出可操作以采用自動滾動用于觸摸輸入的示例實施方式的系統。
[0018]圖11是描述依據一個或多個實施例的方法中的步驟的流程圖。
[0019]圖12圖示可以被用來實施本文中所描述的各種實施例的示例計算設備。
【具體實施方式】
[0020]概述
描述用于觸摸顯示器的高性能拖放操作。在至少一些實施例中,可以對在一個方向上平移或滾動的內容使用交叉滑動手勢,以使能附加的動作,諸如內容選擇,拖放操作,等等。在至少一些其它實施例中,可以對元素使用按下并保持的手勢,以使能內容選擇,拖放操作J等等。
[0021]典型的web瀏覽器可以使能拖放功能作為用鼠標來移動、重新排列、或復制元素的手段。大致地,該功能是經由標準化的超文本標記語言5(HTML5)拖放應用編程接口(API)來使能的。然而,這些web瀏覽器大致地缺乏類似拖放功能用于觸摸輸入。此外,一些Web瀏覽器不澄清拖動操作與滾動操作。
[0022]各種實施例通過使用交叉滑動手勢或按下并保持手勢來使能在拖動動作和滾動(例如,平移)動作之間澄清。在至少一些實施例中,獨立于并行運行的應用程序或web頁面代碼來使能粘到您的手指的執行。這在至少一些實施例中經由多線程體系結構來實現,該多線程體系結構配置為在一個線程上操縱拖動畫面同時在另一線程上提供輸入事件。
[0023]在至少一些實施例中,可以大致地通過在觸摸操縱期間預分層拖動畫面并且也針對拖動畫面實施z次序和元素的視覺復制來在手勢的開始時同時地創建拖動畫面。這些增強功能可以提供從呈現元素到呈現拖動畫面的平滑轉變。
[0024]在一個或多個實施例中,獨立自動滾動可以被使能用于在拖動元素的同時滾動區域。自動滾動可以響應于用戶拖動在滾動區域的邊緣附近的元素而被發起。如果用戶拖動元素到距離閾值內的區域中,則可滾動區域可以開始在該邊緣方向上自動滾動。在至少一些實施例中,多點觸摸交互使用戶能夠用第一手指拖動元素,并且在拖動期間使用第二手指滾動被拖動的元素背后的頁面。
[0025]此外,至少一些實施例使能要被拖動的項目而不必進入模式。模式可以被看作是由用戶發起的動作,其不必與直接操縱項目有關。例如,可以通過點擊特定用戶界面按鈕,以然后被暴露于能夠關于項目或對象執行的功能來進入模式。在所描述的實施例中,模式可以通過在至少一些實例中消除訪問拖動功能的用戶界面元素而被避免。
[0026]在又其它實施例中,使用被設計用于鼠標輸入的拖放API的應用程序可以在不具有觸摸特定代碼的應用程序的情況下自動利用觸摸輸入工作。本文中所描述的各種實施例可以映射觸摸輸入事件到通常用于鼠標輸入的拖動事件。此外,本文中所描述的實施例可以映射多點觸摸輸入,這用鼠標大致地是不可能的。
[0027]在下面的討論中,首先描述示例環境,該環境可操作以采用本文中所描述的手勢技術。然后描述可以被采用在示例環境中以及在其他環境中的手勢和流程的示例圖示。相應地,該示例環境不限于執行示例手勢并且手勢不限于在示例環境中的實施方式。
[0028]示例環境
圖1是可操作以采用如本文所描述的高性能觸摸拖放操作的示例實施方式中的環境100的圖示。圖示的環境100包括可以以各種方式配置的計算設備102的示例。例如,計算設備102可以配置為傳統計算機(例如,臺式個人計算機、膝上型計算機、等等)、移動站、娛樂器具、通信地耦接到電視的機頂盒、無線電話、上網本、游戲控制臺、手持式設備、等等,如關于圖2進一步描述的那樣。因此,計算設備102的范圍可以從具有大量存儲器和處理器資源(例如,個人計算機、游戲控制臺)的全資源設備到具有有限的存儲器和/或處理資源的低資源設備(例如,傳統機頂盒、手持式游戲控制臺)。計算設備102還包括軟件,其使計算設備102能夠執行如以下所描述的一個或多個操作。
[0029]計算設備102包括手勢模塊104和web平臺106。手勢模塊104可操作以提供如本文檔中描述的手勢功能。手勢模塊104可以結合任何適合類型的硬件、軟件、固件或其組合來實施。在至少一些實施例中,手勢模塊104以軟件來實施,該軟件駐留在某種類型的計算機可讀存儲介質上,以下提供該計算機可讀存儲介質的示例。
[0030]手勢模塊104表示識別手勢(包括可以通過一個或多個手指來執行的拖放手勢)并且使對應于該手勢的操作被執行的功能。手勢可以由模塊104以各種不同的方式來識別。例如,手勢模塊104可以配置為識別觸摸輸入,諸如如接近計算設備102的顯示設備110的用戶的手108的手指使用觸摸屏功能。特別地,手勢模塊104可以識別對可滾動內容使用的非滾動手勢以使能非滾動動作,諸如內容選擇、拖放操作、等等。
[0031]例如,在所圖示的示例中,平移或滾動方向被示出為在如箭頭所指示的垂直方向上。在一個或多個實施例中,可以執行交叉滑動手勢,諸如在題為“Cross-slide Gestureto Select and Rearrange”的美國專利申請序號13/196272中描述的那樣。例如,可以在與平移或滾動方向不同例如正交的方向上拖動項目或對象來執行交叉滑動手勢。不同方向的拖動可以被映射到附加的動作或功能。關于方向是垂直還是水平的,垂直方向在至少在一些實例中可以被視為是大致地平行于顯示設備的一側的方向,并且水平方向可以被視為是通常與垂直方向正交的方向。因此,雖然計算設備的取向可以改變,但是特定交叉滑動手勢的垂直性或水平性可保持如相對于并且沿著顯示設備定義的標準。
[0032]例如,用戶的手108的手指被圖示為選擇112由顯示設備110顯示的圖象114。可以由手勢模塊104識別圖像114的選擇112和用戶的手106的手指在一個方向上的隨后移動,該方向與平移或滾動方向不同,例如大致地相對于平移或滾動方向正交。然后,手勢模塊104可以通過該移動的性質和特征標識該識別的移動,作為指示“拖放”操作改變圖像114的位置到顯示器中的一個點,在該點處用戶的手108的手指從顯示設備110抬離。因此,描述圖像的選擇的觸摸輸入的識別、選擇點到另一位置的移動以及然后抬起用戶的手106的手指可用于標識是要發起拖放操作的手勢(例如,拖放手勢)。
[0033]雖然在以上示例中討論交叉滑動手勢,但是要領會和理解,各種不同類型的手勢可以由手勢模塊104識別,該手勢模塊104包括(通過示例而非限制)從單一類型的輸入識別的手勢(例如,觸摸手勢,諸如先前描述的拖放手勢)以及涉及多種類型輸入的手勢。例如,可以利用模塊104來識別單一手指手勢和邊框手勢、多個手指/同一手的手勢和邊框手勢和/或多個手指/不同手的手勢和邊框手勢。
[0034]例如,計算設備102可以配置為檢測和區分觸摸輸入(例如,由用戶的手108的一個或多個手指提供)和手寫筆輸入(例如,由手寫筆116提供)。可以以各種方式諸如通過檢測由用戶的手108的手指接觸的顯示設備1