(57)【要約】様々な実施形態は、ユーザ経験を向上させるように、複数の連続ジェスチャのような反復的ジェスチャを効果的に実装できるようにする。少なくとも一部の実施形態において、オブジェクトに関連する第１のジェスチャが検出される。第１のジェスチャは第１のアクションに関連付けられる。第１のジェスチャを検出したことに応答して、第１のアクションに関連する前処理がバックグラウンドで実行される。所定の期間内に、オブジェクトに関連する第２のジェスチャが検出されたことに応答して、第２のジェスチャに関連するアクションが実行される。所定の期間内に第２のジェスチャが実行されなかったことに応答して、第１のアクションに関連する処理が完了する。
2015503804.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトに関連する第１のジェスチャを検出するステップであって、前記第１のジェスチャは第１のアクションに関連する、ステップと、
前記第１のジェスチャを検出したことに応答して、前記第１のアクションに関連する前処理をバックグラウンドで実行するステップと、
所定の期間内に前記オブジェクトに関連する第２のジェスチャを検出したことに応答して、少なくとも前記第２のジェスチャに関連するアクションを実行するステップと、
前記所定の期間内に前記第２のジェスチャが実行されなかったことに応答して、前記第１のアクションに関連する処理を完了するステップと
を含む、方法。
【請求項２】
前記第１のジェスチャ及び前記第２のジェスチャは、タップジェスチャである、請求項１に記載の方法。
【請求項３】
前記前処理を実行するステップは、１つ又は複数のリソースのダウンロードを開始することを含む、請求項１に記載の方法。
【請求項４】
前記前処理を実行するステップは、１つ又は複数のリソースのダウンロードを開始することを含み、
前記処理を完了するステップは、前記１つ又は複数のリソースに関連するナビゲーションを実行することを含む、請求項１に記載の方法。
【請求項５】
前記第１のジェスチャを検出したことに応答して、あるタイプの前記オブジェクトの要素について定義される１つ又は複数のスタイルを適用するステップを更に含む、請求項１に記載の方法。
【請求項６】
実行されると、
オブジェクトに関連する第１のタップを検出するステップと、
タイマを開始するステップと、
前記第１のタップを検出することに応答して、あるタイプのオブジェクトの要素について定義されたスタイルを適用するステップと、
前記タイマによって定義された期間内に第２のタップを検出したことに応答して、前記第１のタップ及び前記第２のタップを含むジェスチャに関連するアクションを実行するステップと、
前記タイマによって定義された前記期間内に第２のタップを検出しなかったことに応答して、前記第１のタップに関連するアクションを実行するステップと
を含む方法を実行するコンピュータ読取可能命令を具現化した、１つ又は複数のコンピュータ読取可能記憶媒体。
【請求項７】
前記第１のタップ及び前記第２のタップを含む前記ジェスチャに関連するアクションは、ズームオペレーションを備える、請求項６に記載の１つ又は複数のコンピュータ読取可能記憶媒体。
【請求項８】
前記第１のタップに関連するアクションを実行するステップは、ナビゲーションを実行することを含む、請求項６に記載の１つ又は複数のコンピュータ読取可能記憶媒体。
【請求項９】
前記方法は、前記タイマによって定義された期間内に、前記第１のタップに関連するアクションを実行することに関連する前処理を実行するステップを更に含む、請求項６に記載の１つ又は複数のコンピュータ読取可能記憶媒体。
【請求項１０】
前記方法は、前記タイマによって定義された期間内に、前記第１のタップに関連するアクションを実行することに関連する前処理を実行するステップを更に含み、前記前処理を実行することは、１つ又は複数のリソースのダウンロードを開始することを含み、前記第１のタップに関連するアクションは、前記１つ又は複数のリソースに関連するナビゲーションを含む、請求項６に記載の１つ又は複数のコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力ポインタの遅滞に関する。
【背景技術】
【０００２】
ジェスチャの使用は、様々なコンピューティングデバイスと関連してより一般性が増している。ジェスチャベースの技術を開発している人々は、ユーザ経験を向上させ、ジェスチャベースの実装をより効果的にしようとする限りにおいて、ジェスチャに関する挑戦は続くことになる。
【発明の概要】
【０００３】
この「発明の概要」の記載は、以下の「発明を実施するための形態」において更に説明される概念の選択を、簡単な形で紹介するために提供される。この「発明の概要」の記載は、特許請求に係る主題の重要な特徴又は本質的特徴を特定するようには意図されていない。
【０００４】
様々な実施形態は、ユーザ経験を向上させるため、複数の連続ジェスチャのような反復的ジェスチャを効果的に実装できるようにする。
【０００５】
少なくとも一部の実施形態において、オブジェクトに関連する第１のジェスチャが検出される。第１のジェスチャは第１のアクションに関連付けられる。第１のジェスチャを検出したことに応答して、第１のアクションに関連する前処理がバックグラウンドで実行される。所定の期間内にオブジェクトに関連する第２のジェスチャが検出されたことに応答して、第２のジェスチャに関連するアクションが実行される。所定の期間内に第２のジェスチャが実行されなかったことに応答して、第１のアクションに関連する処理が完了する。
【０００６】
少なくとも一部の実施形態において、オブジェクトに関連する第１のタップが検出され、タイマが開始される。第１のタップを検出したことに応答して、あるタイプのオブジェクトの要素について定義されたスタイルが適用される。第２のタップが、タイマによって定義された期間内に検出されたことに応答して、第1及び第２のタップを備えるジェスチャに関連するアクションが実行される。タイマによって定義された期間内に第２のタップが検出されなかったことに応答して、第１のタップに関連するアクションが実行される。
【０００７】
以下の発明の詳細な説明は、添付の図面を参照しながら説明される。図面において、参照番号の左端の桁は、その参照番号が最初に現れる図面を特定する。説明及び図面の異なる例における同じ参照番号の使用は、同様又は同一のアイテムを示す可能性がある。
【図面の簡単な説明】
【０００８】
【図１】１つ又は複数の実施形態に係る例示的実装の環境の例を示す図である。
【図２】図１に示される例示的実装におけるシステムの例をより詳細に示す図である。
【図３】１つ又は複数の実施形態に係る方法のステップを示すフロー図である。
【図４】１つ又は複数の実施形態に係る方法のステップを示すフロー図である。
【図５】１つ又は複数の実施形態に係る方法のステップを示すフロー図である。
【図６】本明細書で説明される様々な実施形態を実装するのに使用することができる例示的なコンピューティングデバイスを示す図である。
【発明を実施するための形態】
【０００９】
＜概要＞
様々な実施形態は、ユーザ経験を向上させるよう、複数の連続ジェスチャのような反復的ジェスチャを効果的に実装できるようにする。
【００１０】
少なくとも一部の実施形態において、オブジェクトに関連する第１のジェスチャが検出される。第１のジェスチャは第１のアクションに関連付けられる。第１のジェスチャを検出したことに応答して、第１のアクションに関連する前処理がバックグラウンドで実行される。所定の期間内にオブジェクトに関連する第２のジェスチャが検出されたことに応答して、第２のジェスチャに関連するアクションが実行される。所定の期間内に第２のジェスチャが実行されなかったことに応答して、第１のアクションに関連する処理が完了する。
【００１１】
少なくとも一部の実施形態において、オブジェクトに関連する第１のタップが検出され、タイマが開始される。第１のタップを検出したことに応答して、あるタイプのオブジェクトの要素について定義されたスタイルが適用される。第２のタップが、タイマによって定義された期間内に検出されたことに応答して、第1及び第２のタップを備えるジェスチャに関連するアクションが実行される。タイマによって定義された期間内に第２のタップが検出されなかったことに応答して、第１のタップに関連するアクションが実行される。
【００１２】
以下の議論では、まず、本明細書で説明される技術を用いるのに動作可能な例示的環境について説明する。次に、様々な実施形態の例示的な実施例について説明する。これらの実施形態は、例示的な環境だけでなく他の環境においても用いられる可能性がある。したがって、例示的環境は、説明される実施形態を実行するものに限定されず、説明される実施形態は、例示的環境における実装に限定されない。
【００１３】
＜例示的な動作環境＞
図１は、本明細書で説明される入力ポインタ遅滞の技術を用いるのに動作可能な例示的実装の環境１００の図である。図示される環境１００は、様々な方法で構成され得るコンピューティングデバイス１０２の例を含む。例えばコンピューティングデバイス１０２は、図２に関連して更に説明されるような、従来のコンピュータ（例えばデスクトップ型のパーソナルコンピュータ、ラップトップコンピュータ等）、モバイルステーション、娯楽用機器、テレビに通信的に接続されるセットトップボックス、ワイヤレスフォン、ネットブック、ゲームコンソール、ハンドヘルドデバイス等として構成され得る。したがって、コンピューティングデバイス１０２は、相当なメモリ及びプロセッサリソースを有する完全リソースデバイス（例えばパーソナルコンピュータ、ゲームコンソール）から、限られたメモリ及び／又は処理リソースを有する低リソースデバイス（例えば従来のセットトップボックス、ハンドヘルドゲームコンソール）にまで及ぶことがある。コンピューティングデバイス１０２は、該コンピューティングデバイス１０２に、下述するような１つ又は複数のオペレーションを実行させるソフトウェアも含む。
【００１４】
コンピューティングデバイス１０２は、入力ポインタ遅滞モジュール１０４を含む。入力ポインタ遅滞モジュール１０４は、ユーザ経験を向上させるよう、複数の連続ジェスチャのような反復的なジェスチャを効果的に実装することができるように構成される。入力ポインタ遅滞モジュール１０４は、タイマの使用により、複数の連続ジェスチャ信号間の時間を測定可能にする。ジェスチャ入力のタイプ及びタイミングが与えられると、第１のジェスチャ及び／又は後続のジェスチャのうちの１つ若しくは複数又はこれらの組み合わせに関連するアクションを実行することができる。
【００１５】
コンピューティングデバイス１０２は、ジェスチャモジュール１０５も含む。ジェスチャモジュール１０５は、１又は複数の指によって実行され得る入力ポインタジェスチャを認識し、該ジェスチャに対応するオペレーション又はアクションを実行させる。モジュール１０５によって様々な異なる方法でジェスチャが認識され得る。例えばジェスチャモジュール１０５は、タッチスクリーン機能を使用して、コンピューティングデバイス１０２のディスプレイデバイス１０８へ近接するユーザの手１０６ａの指のようなタッチ入力を認識するように構成され得る。モジュール１０５を使用して、単一の指のジェスチャとベゼルジェスチャ、複数の指／同じ手のジェスチャとベゼルジェスチャ、及び／又は複数の指／異なる手のジェスチャとベゼルジェスチャを認識することができる。入力ポインタ遅滞モジュール１０４とジェスチャモジュール１０５は、別個のモジュールとして示されているが、双方によって提供される機能を、単一の一体型ジェスチャモジュールとして実装することができる。モジュール１０４及び／又は１０５によって実装される機能性を、限定ではなく例としてウェブブラウザのような任意の適切に構成されたアプリケーションによって実装することができる。
【００１６】
コンピューティングデバイス１０２は、（例えばユーザの手１０６ａの１又は複数の指によって提供される）タッチ入力と、（例えばスタイラス１１６によって提供される）スタイラス入力とを検出して区別するようにも構成され得る。この区別は、ユーザの手１０６ａの指によって接触されるディスプレイデバイス１０８の量に対する、スタイラス１１６によって接触されるディスプレイデバイス１０８の量を検出すること等のように、様々な方法で実行することが可能である。
【００１７】
したがって、ジェスチャモジュール１０５は、スタイラスとタッチ入力との間、並びに異なるタイプのタッチ入力の間の区分の認識及び利用を通して、様々な異なるジェスチャ技術をサポートし得る。
【００１８】
図２は、複数のデバイスが中央コンピューティングデバイスを通じて相互接続される環境において実装されるような、入力ポインタ遅滞モジュール１０４及びジェスチャモジュール１０５を示す例示システム２００を図示している。中央コンピューティングデバイスは、それらの複数のデバイスに対してローカルであってもよく、それらの複数のデバイスからリモートに配置されてもよい。一実施形態において、中央コンピューティングデバイスは、ネットワーク又はインターネット又は他の手段を通じて複数のデバイスに接続される１つ又は複数のサーバコンピュータを備える、「クラウド」サーバファームである。
【００１９】
一実施形態において、この相互接続アーキテクチャは、機能性が複数のデバイスにわたって伝達され、該複数のデバイスのユーザに共通のシームレスな経験が提供されることを可能にする。複数のデバイスはそれぞれ、異なる物理的要件及び能力を有することがあり、中央コンピューティングデバイスは、そのデバイスに対して調整されるが、依然として全てのデバイスに共通の経験をデバイスに伝達することを可能にするプラットフォームを使用する。一実施形態において、ターゲットデバイスの「クラス」を作成して、経験をデバイスの汎用クラスに対して調整する。あるデバイスのクラスを、複数のデバイスの物理的な特徴又は用法又は他の共通の特性によって定義してもよい。例えば上述のように、コンピューティングデバイス１０２は、モバイル２０２での使用、コンピュータ２０４での使用及びテレビジョン２０６での使用のような、様々な異なる方法で構成され得る。これらの構成の各々は一般に、対応する画面サイズを有し、したがって、コンピューティングデバイス１０２は、この例示システム２００においてこれらのデバイスクラスのうちのいずれか１つとして構成され得る。例えばコンピューティングデバイス１０２は、モバイル電話、音楽プレイヤ、ゲームデバイス等を含むデバイスのモバイル２０２のクラスを想定してもよい。コンピューティングデバイス１０２はまた、パーソナルコンピュータ、ラップトップコンピュータ、ネットブック等を含むデバイスのコンピュータ２０４のクラスを想定してもよい。テレビジョン２０６の構成は、略式の環境において表示を伴うデバイスの構成、例えばテレビジョン、セットトップボックス、ゲームコンソール等を含む。したがって、本明細書で説明される技術は、コンピューティングデバイス１０２のこれらの様々な構成によってサポートされ、以下のセクションにおいて説明される具体的な例には限定されない。
【００２０】
クラウド２０８は、ウェブサービス２１２のためのプラットフォーム２１０を含むように図示されている。プラットフォーム２１０は、クラウド２０８のハードウェア（例えばサーバ）及びソフトウェアリソースの基礎となる機能を抽象化し、したがって「クラウドオペレーティングシステム」として機能し得る。例えばプラットフォーム２１０はリソースを抽象化して、コンピューティングデバイス１０２を他のコンピューティングデバイスに接続してもよい。プラットフォーム２１０は、リソースのスケーリングを抽象化して、プラットフォーム２１０を介して実装されるウェブサービス２１２について直面する需要に対して、対応するレベルのスケールを提供するようにも機能し得る。サーバファームにおけるサーバの負荷分散や、悪意あるパーティ（例えばスパム、ウィルス及び他のマルウェア）に対する保護等の様々な他の例も考慮される。
【００２１】
したがって、クラウド２０８は、インターネット又は他のネットワークを介してコンピューティングデバイス１０２に対して利用可能となるソフトウェア及びハードウェアリソースに関するストラテジの一部として含まれる。
【００２２】
入力ポインタ遅滞モジュール１０４及びジェスチャモジュール１０５によってサポートされるジェスチャ技術は、モバイル２０２構成におけるタッチスクリーン機能、コンピュータ２０４構成におけるトラックパッド機能を使用することによって検出されることがあり、また、カメラによって、特定の入力デバイスとの接触を要しないナチュラルユーザインタフェース（ＮＵＩ）のサポートの一部として検出されること等がある。さらに、特定のジェスチャを識別する入力を検出及び認識するオペレーションの性能は、コンピューティングデバイス１０２によって、及び／又はクラウド２０８のプラットフォーム２１０によりサポートされるウェブサービス２１２によって等、システム２００を通じて分散されることがある。
【００２３】
一般に、本明細書で説明される機能のいずれかを、ソフトウェア、ファームウェア、ハードウェア（例えば固定の論理回路）、手動の処理又はこれらの実装の組み合わせにより実装することができる。本明細書で使用されるとき、「モジュール」、「機能」及び「ロジック」という用語は、概してソフトウェア、ファームウェア、ハードウェア又はこれらの組み合わせを表す。ソフトウェアの実装の場合、モジュール、機能又はロジックは、プロセッサ（例えば１つ又は複数のＣＰＵ）において又はプロセッサによって実行されると、指定されたタスクを実行するプログラムコードを表す。プログラムコードは、１つ又は複数のコンピュータ読取可能なメモリデバイスに格納され得る。下述されるジェスチャ技術の特徴は、プラットフォーム独立であり、これは、本技術が、様々なプロセッサを有する様々な市販のコンピューティングプラットフォームにおいて実装され得ることを意味する。
【００２４】
以下の議論では、様々なセクションにおいて様々な例示的実施形態を説明する。「例示的な入力ポインタ遅滞の実施形態」というタイトルのセクションでは、１つ又は複数の実施形態に係る入力ポインタ遅滞を利用することができる実施形態を説明する。この次の「実装例」というタイトルのセクションでは、１つ又は複数の実施形態に係る例示的実装を説明する。最後に、「例示的なデバイス」というタイトルのセクションは、１つ又は複数の実施形態を実装するのに用いることができる例示的なデバイスの態様を説明する。
【００２５】
入力ポインタ遅滞の機能を利用することができる例示的な動作環境について説明してきたので、次に例示的な実施形態の議論を検討する。
【００２６】
＜例示的な入力ポインタ遅滞の実施形態＞
記載される例では、２つの異なるアプローチが説明されるが、少なくとも一部の実施形態では、これらのアプローチが一緒に用いられることがある。第１のアプローチは、複数の連続するジェスチャを受信することに関連して、バックグラウンドの前処理を用いて、ユーザによって感知されるような入力ポンインタ遅滞のネガティブな影響を軽減することである。第２のアプローチは、第１のアプローチとともに用いられても、そうでなくてもよいが、並行ユーザフィードバックを、ウェブページのようなリソースと対話しているユーザに提供するように設計される。各アプローチは、第１及び第２のアプローチの双方を組み合わせたアプローチの議論に続く別個の副題の下で検討される。
【００２７】
バックグラウンドの前処理の例
図３は、１つ又は複数の実施形態に係る方法のステップを示すフロー図である。本方法を、任意の適切なハードウェア、ソフトウェア、ファームウェア又はこれらに任意の組み合わせとの関連で実行することができる。少なくとも一部の実施形態において、本方法を、任意のタイプのコンピュータ読取可能記憶媒体において具現化される、コンピュータ読取可能命令の形式のソフトウェアによって実行することができ、この命令を、１つ又は複数のプロセッサの影響の下で実行することができる。説明される機能を実行することができるソフトウェアの例は、上述の入力ポインタ遅滞モジュール１０４及びジェスチャモジュール１０５である。
【００２８】
ステップ３００において、オブジェクトに関連する第１のジェスチャを検出する。第１のジェスチャは、オブジェクトに関連して実行され得る第１のアクションに関連付けられる。任意の適切なタイプのジェスチャを検出することができる。限定ではなく例として、第１のジェスチャは、タッチジェスチャ、タップジェスチャ又は上述のような任意の適切な他のタイプのジェスチャを備えることができる。加えて、任意の適切なタイプの第１のアクションを第１のジェスチャと関連付けることができる。例えば少なくとも一部の実施形態において、第１のアクションは、ウェブページのようなあるリソースから異なるウェブページのような別のリソースへナビゲートするのに実行され得る、ナビゲーションを備える。第１のジェスチャを検出したことに応答して、ステップ３０２において、第１のアクションに関連する前処理を実行する。１つ又は複数の実施形態において、前処理は、ユーザによって検知不可能であるように、バックグラウンドで実行される。任意の適切なタイプの前処理を実行することができ、限定ではなく例として、この前処理には、１つ又は複数のリソースのダウンロードを開始することが含まれる。例えばオブジェクトが、ハイパーリンク又は何らかの他のタイプのナビゲート可能なリソースを備えると想定する。この例では、前処理は、ナビゲーションを実行することに関連する１つ又は複数のリソースをダウンロードすることを含むことができる。
【００２９】
ステップ３０４において、所定の期間内に第２のジェスチャが検出されたかどうかを確認する。任意の適切な所定の期間を用いることができる。少なくとも一部の実施形態において、所定の期間は、約３００ミリ秒（ｍｓ）以下である。さらに、任意の適切なタイプの第２のジェスチャを用いることができる。限定ではなく例として、第２のジェスチャは、タッチジェスチャ、タップジェスチャ又は上述のような任意の適切な他のタイプのジェスチャを備えることができる。
【００３０】
所定の期間内に、オブジェクトに関連する第２のジェスチャを検出したことに応答して、ステップ３０６において、第２のジェスチャに関連するアクションを実行する。少なくとも一部の実施形態において、アクションを、第１及び第２のジェスチャの双方を含むジェスチャに関連付けることができる。任意の適切なタイプのアクションを、第２のジェスチャに関連付けることができる。限定ではなく例として、そのようなアクションには、オブジェクトがズームアップされるズームオペレーションを実行することを含むことができる。この場合、ステップ３０２によって実行された前処理を破棄することができる。
【００３１】
あるいは、所定の期間内に第２のジェスチャが実行されなかったことに応答して、ステップ３０８において、第１のアクションに関連する処理を完了する。このステップは、任意の適切な方法で実行され得る。限定ではなく例として、処理の完了は、オブジェクトと前処理中にダウンロードが開始された１つ又は複数のリソースとに関連するナビゲーションを実行することを含むことができる。
【００３２】
少なくとも一部の実施形態において、以下で明らかになるように、上述の前処理を実行することに加えて、第１のジェスチャを検出したことに応答して、あるタイプのオブジェクトの要素について定義された１つ又は複数のスタイルを適用することができる。任意の適切なタイプのスタイルを適用することができ、限定ではなく例として、このスタイルには、ＣＳＳ疑似クラスによって定義されるスタイルが含まれる。例えば：ｈｏｖｅｒ疑似クラス及び／又は：ａｃｔｉｖｅ疑似クラスに関連付けられるスタイルを適用することができる。当業者には認識されるように、そのようなスタイルを使用して、サイズや形状、要素の色のような要素の表示プロパティを変更し、あるいは表示のバックグラウンドを変更して、位置変更を開始し、アニメーション又は遷移を提供すること等ができる。例えば定義されたスタイルによって選択されると、通常ハイパーリンクの色が変わるか下線が引かれる場合、第１のジェスチャがステップ３００において検出されるときに、そのようなスタイルを適用することができる。
【００３３】
１つ又は複数の実施形態に従って、バックグラウンドの前処理をどのように実行することができるかについて説明したので、次に、１つ又は複数の実施形態に従って並行ユーザフィードバックをどのように適用することができるかについて検討する。
【００３４】
並行ユーザフィードバックの例
図４は、１つ又は複数の実施形態に係る方法のステップを説明するフロー図である。本方法を、任意の適切なハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせとの関連で実行することができる。少なくとも一部の実施形態において、本方法を、任意のタイプのコンピュータ読取可能記憶媒体において具現化される、コンピュータ読取可能命令の形式のソフトウェアによって実行することができ、この命令を、１つ又は複数のプロセッサの影響の下で実行することができる。説明される機能を実行することができるソフトウェアの例は、上述の入力ポインタ遅滞モジュール１０４及びジェスチャモジュール１０５である。
【００３５】
ステップ４００において、オブジェクトに関連する第１のタップを検出する。第１のタップを検出したことに応答して、ステップ４０２においてタイマを開始する。第１のタップを検出したことに応答して、ステップ４０４において、あるタイプのオブジェクトの要素について定義されているスタイルを適用する。任意の適切なタイプの１つ又は複数のスタイルを適用することができ、そのようなスタイルには、限定ではなく例として、ＣＳＳ疑似クラスによって定義されるスタイルが含まれる。例えば：ｈｏｖｅｒ疑似クラス及び／又はａｃｔｉｖｅ疑似クラスに関連するスタイルを適用することができる。
【００３６】
ステップ４０６において、第２のタップが、タイマによって定義された期間内に検出されるかどうかを確認する。任意の適切な期間を用いることができる。少なくとも一部の実施形態において、この期間は、約３００ｍｓ以下とすることができる。タイマによって定義された期間内に第２のタップを検出したことに応答して、ステップ４０８において、第１及び第２のタップを備えるジェスチャに関連するアクションを実行する。任意の適切なアクションを実行することができる。少なくとも一部の実施形態において、第１及び第２のタップを含むジェスチャに関連するアクションは、ズームオペレーションである。
【００３７】
タイマによって定義された期間内に第２のタップを検出しなかったことに応答して、ステップ４１０は、第１のタップに関連するアクションを実行する。任意の適切なアクションを実行することができる。少なくとも一部の実施形態において、第１のタップに関連するアクションは、ナビゲーションを実行することである。
【００３８】
少なくとも一部の実施形態において、タイマによって定義された期間内に、第１のタップに関連するアクションの実行に関連する前処理を実行することができる。任意の適切なタイプの前処理を実行することができる。少なくとも一部の実施形態において、前処理は、限定ではなく例として、１つ又は複数のリソースのダウンロードを開始することを含むことができる。この例において、第１のタップに関連するアクションは、ダウンロードされる１つ又は複数のリソースに関連するナビゲーションである。
【００３９】
並行ユーザフィードバックを用いる実施形態について検討してきたので、次に、１つ又は複数の実施形態に従ってバックグラウンドの前処理と並行ユーザフィードバックとの双方を用いるアプローチについて検討する。
【００４０】
バックグラウンドの前処理と並行ユーザフィードバックの例
図５は、１つ又は複数の実施形態に係る方法のステップを示すフロー図である。本方法を、任意の適切なハードウェア、ソフトウェア、ファームウェア又はこれらに任意の組み合わせとの関連で実行することができる。少なくとも一部の実施形態において、本方法を、任意のタイプのコンピュータ読取可能記憶媒体において具現化される、コンピュータ読取可能命令の形式のソフトウェアによって実行することができ、この命令を、１つ又は複数のプロセッサの影響の下で実行することができる。説明される機能を実行することができるソフトウェアの例は、上述の入力ポインタ遅滞モジュール１０４及びジェスチャモジュール１０５である。
【００４１】
ステップ５００において、オブジェクトに関連付けられた第１のジェスチャを検出する。第１のジェスチャは、オブジェクトに関連して実行され得る第２のアクションに関連付けられる。任意の適切なジェスチャを検出することができる。限定ではなく例として、第１のジェスチャは、タッチジェスチャ、タップジェスチャ又は上述の任意の適切な他のタイプのジェスチャを備えることができる。加えて、任意の適切なタイプの第１のアクションを第１のジェスチャに関連付けることができる。例えば少なくとも一部の実施形態において、第１のアクションは、ウェブページのようなあるリソースから異なる別のウェブページのような別のリソースへナビゲートするのに実行され得るナビゲーションを備える。第１のジェスチャを検出したことに応答して、ステップ５０２において、第１のアクションに関連する前処理をバックグラウンドで実行する。任意の適切なタイプの前処理を実行することができ、この前処理には、限定ではなく例として、１つ又は複数のリソースのダウンロードを開始することが含まれる。例えばオブジェクトが、ハイパーリンク又は何らかの他のタイプのナビゲート可能なリソースを備えると想定する。この例において、前処理は、ナビゲーションの実行に関連する１つ又は複数のリソースをダウンロードすることを含むことができる。
【００４２】
ステップ５０４において、あるタイプのオブジェクトの要素について定義される１つ又は複数のスタイルを適用することができる、これを行う方法の例は上記に提示されている。ステップ５０６において、第２のジェスチャが所定の期間内に検出されたかどうかを確認する。第２のジェスチャが所定の期間内に検出されたことに応答して、ステップ５０８において、第２のジェスチャに関連するアクションを実行する。少なくとも一部の実施形態において、アクションを、第１及び第２のジェスチャの双方を含むあるジェスチャに関連付けることができる。少なくとも一部の実施形態において、第１及び第２のジェスチャはタップジェスチャを備えることができる。任意の適切なタイプのアクションを第２のジェスチャに関連付けることができる。限定ではなく例として、そのようなアクションは、オブジェクトがズームアップされるズームオペレーションを実行することを含むことができる。この場合、ステップ５０２によって実行される前処理は破棄され得る。
【００４３】
あるいは、第２のジェスチャが所定の期間内に実行されなかったことに応答して、ステップ５１０において、第２のアクションに関連する処理を完了する。このステップを任意の適切な方法で実行することができる。限定ではなく例として、処理の完了には、オブジェクト並びに前処理中にダウンロードが開始された１つ又は複数のリソースに関連するナビゲーションを実行することを含むことができる。
【００４４】
いくつかの例示的な方法を説明してきたので、次に実装例を説明する。
【００４５】
＜実装例＞
１つ又は複数の実施形態において、上述の機能は、入力ポインタのイベントを遅滞させることによって実装され得る。これを行うための一方法は次の通りである。ジェスチャからのタップ、ペンのタップ、マウスクリック、ナチュラルユーザインタフェース（ＮＵＩ）からの入力等のような入力を受信すると、タイマが、限定ではなく例として３００ｍｓのような所定の時間に設定される。ダブルタップ・キャッシング・コンポーネントが使用され、入力メッセージが、ダブルタップ・キャッシング・コンポーネントへとルート変更される。加えて、予備メッセージ（preliminary  message）が、遅滞なしに選択関連のロジックを実行する選択コンポーネントへ送信される。選択関連コンポーネントによって実行される機能は、上記の例では、入力ポインタ遅滞モジュール１０４によって実行され得る。選択関連のロジックは、タップされたテキストを選択すること、以前にタップされたテキストは選択しないこと、既に選択されたメッセージはタップされているのでコンテキストメニューを起動すること等を含むことができる。
【００４６】
１つ又は複数の実施形態において：ａｃｔｉｖｅ及び：ｈｏｖｅｒのような疑似クラスは、通常の入力処理によって既に適用されているであろう。というのも、タップは、タッチダウンとタッチアップで構成され、：ａｃｔｉｖｅ及び：ｈｏｖｅｒは、タップが認識される前にタッチダウンの間に適用されるためである。これは、ウェブページが、タップにつながる何らかのイベントを見ているであろうことも意味する。
【００４７】
ダブルタップキャッシングコンポーネントは、以前に送信されたメッセージを調べて、次のようなロジックを実行する。まず、ダブルタップキャッシングコンポーネントは、入力が、一次的接触（primary  contact）でのタッチ（すなわち１本の指によるタッチ）によって生じたものかどうかを確認する。入力が一次的接触でのタッチによるものでない場合、入力は通常通りに処理される。これは、マウス対話のようなものが、制限のない方法で続けられることを可能にする。
【００４８】
一方、入力が一次的接触でのタッチにより生じたものである場合、ロジックは継続して、そのような入力が新たな接触であるかどうかを確認する。入力が新たな接触でない場合、次いで対応するメッセージが、内部の遅延型メッセージキュー（deferred  message  queue）に添付されて、当分の間無視される。メッセージが受信されたときにのみ収集することができる任意の情報、例えばタッチが物理的なハードウェアからのものか又はシミュレートされたものか等の情報を収集して、このキューに格納する。一方、接触が新たな接触である場合は、ロジックは以下のように続く。
【００４９】
ロジックは、次に、新たな接触の位置が、ダブルタップと見なすことができるほど十分に、以前に検出されたタップと近いかどうかを確認する。新たな接触の位置が、ダブルタップと見なされるほど以前に検出されたタップと近くない場合、これは、タイムアウトと同じものとして扱われる。タイムアウトが生じると、最初にタップされた要素がまだ存在する場合は、遅延型メッセージキュー内の全ての入力メッセージが素早く順次処理されるので、遅滞したタップが完了する。例外は、選択マネージャに関連するアクションは既に実行されているために、これらのメッセージが選択マネージャから隠されることである。
【００５０】
新たな接触の位置が、ダブルタップと見なされるほど十分に以前に検出されたタップと近い場合、ロジックは、最初にタップされた要素がまだ存在しているかどうかを確認する。最初にタップされた要素がまだ存在している場合、「ポインタキャンセル」イベントが、ドキュメントオブジェクトモデル（ＤＯＭ）を通じて送られ、：ａｃｔｉｖｅ及び：ｈｏｖｅｒは、タップの前半を見たが、続いてすぐに行われそうなタップはもうないと思われるウェブページを示すように移動される。要素がまだ存在するかどうかに関わらず、ロジックは以下のように続く。
【００５１】
次に、ページ上のいずれのテキストも選択されず、これは以前の選択を効果的に取り消す。この時点で、ダブルタップのズームオペレーションが実行されて、遅延型メッセージキュー内の全てのメッセージが破棄され、その結果ウェブページがこれらのメッセージを見ることはなくなる。
【００５２】
例示的実装について説明してきたので、次に、上述の実施形態を実装するのに用いることができる例示的デバイスを検討する。
【００５３】
＜例示的なデバイス＞
図６は、本明細書で説明されるアニメーションライブラリの実施形態を実装するために、図１及び２に関連して説明したような任意のタイプのポータブル及び／又はコンピュータデバイスとして実装することができる例示的デバイス６００の様々なコンポーネントを示す。デバイス６００は、（例えば受信済みのデータ、受信中のデータ、放送用にスケジュールされたデータ、データのデータパケット等）デバイスデータ６０４の有線及び／又は無線通信を可能にする通信デバイス６０２を含む。デバイスデータ６０４又は他のデバイスコンテンツは、デバイスの構成設定、デバイス上に格納されたメディアコンテンツ及び／又はデバイスのユーザに関連付けられた情報を含むことができる。デバイス６００上に格納されるメディアコンテンツは、任意のタイプのオーディオ、ビデオ及び／又はイメージデータを含むことができる。デバイス６００は、１つ又は複数のデータ入力部６０６を含み、該１つ又は複数のデータ入力部６０６を介して、ユーザ選択可能な入力、メッセージ、音楽、テレビメディアコンテンツ、記録されたビデオコンテンツ並びに任意のコンテンツ及び／又はデータソースから受信される任意の他のタイプのオーディオ、ビデオ及び／又はイメージデータのような、任意のタイプのデータ、メディアコンテンツ及び／又は入力を受信することができる。
【００５４】
デバイス６００は、通信インタフェース６０８も含む。通信インタフェース６０８を、シリアル及び／又はパラレルインタフェース、無線インタフェース、任意のタイプのネットワークインタフェース、モデムのうちのいずれか１つ又は複数として、並びに任意の他のタイプの通信インタフェースとして実装することができる。通信インタフェース６０８は、デバイス６００と、他の電子、コンピューティング及び通信デバイスがデバイス６００と通信するための通信ネットワークとの間の接続リンク及び／又は通信リンクを提供する。
【００５５】
デバイス６００は、１つ又は複数のプロセッサ６１０（例えばマイクロプロセッサ、コントローラ等のいずれか）を含む。プロセッサ６１０は、様々なコンピュータ実行可能命令又は読取可能命令を実行して、デバイス６００の動作を制御し、上述の実施形態を実装する。あるいはまた、デバイス６００を、ハードウェア、ファームウェア又は一般に６１２で示される処理及び制御回路に関連して実装される固定の論理回路のうちのいずれか１つ又は組み合わせで実装することができる。図示されていないが、デバイス６００は、デバイス内の様々なコンポーネントを結合するシステムバス又はデータ伝送システムを含むことができる。システムバスは、メモリバス若しくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、及び／又は様々なバスアーキテクチャのいずれかを使用するプロセッサ若しくはローカルバスのような異なるバス構造のいずれか１つ又は組み合わせを含むことができる。
【００５６】
デバイス６００は、１つ又は複数のメモリコンポーネントのようなコンピュータ読取可能媒体６１４も含み、その例には、ランダムアクセスメモリ（ＲＡＭ）、非揮発性メモリ（例えば読取専用メモリ（ＲＯＭ）、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等のいずれか１つ又は複数）並びにディスク記憶デバイスが含まれる。ディスク記憶デバイスは、ハードディスクドライブ、記録可能及び／又は再書込可能なコンパクトディスク（ＣＤ）、任意のタイプのデジタル多用途ディスク（ＤＶＤ）等のような、任意のタイプの磁気又は光ストレージデバイスとして実装され得る。デバイス６００は、大容量記憶メディアデバイス６１６も含むことができる。
【００５７】
コンピュータ読取可能媒体６１５は、デバイスデータ６０４だけでなく、様々なデバイスアプリケーション６１８並びにデバイス６００の動作的態様に関係する他のタイプの情報及び／又はデータを記憶する、データ記憶機構を提供する。例えばオペレーティングシステム６２０を、コンピュータ読取媒体６１４によるコンピュータアプリケーションとして保持し、プロセッサ６１０として実行することができる。デバイスアプリケーション６１８は、デバイスマネージャ（例えば制御アプリケーション、ソフトウェアアプリケーション、信号処理及び制御モジュール、特定のデバイスにネイティブのコード、特定のデバイス用のハードウェア抽象化レイヤ等）だけでなく、ウェブブラウザ、イメージ処理アプリケーション、インスタントメッセージング・アプリケーションのような通信アプリケーション、ワード処理アプリケーション及び様々な他の異なるアプリケーションを含むことができる。デバイスアプリケーション６１８は、本明細書で説明される技術の実施形態を実装する任意のシステムコンポーネント又はモジュールも含む。この例において、デバイスアプリケーション６１８は、ソフトウェアモジュール及び／又はコンピュータアプリケーションとして示される、インタフェースアプリケーション６２２及びジェスチャ・キャプチャ・ドライバ６２４を含む。ジェスチャ・キャプチャ・ドライバ６２４は、タッチスクリーン、トラックパッド、カメラ等のような、ジェスチャをキャプチャするように構成されるデバイスとのインタフェースを提供するのに使用されるソフトウェアを表す。あるいはまた、インタフェースアプリケーション６２２及びジェスチャ・キャプチャ・ドライバ６２４６２４を、ハードウェア、ソフトウェア、ファームウェア又はこれらの任意の組み合わせとして実装することができる。加えて、コンピュータ読取可能媒体６１４は、上述のように機能する入力ポインタ遅滞モジュール６２５ａ及びジェスチャモジュール６２５ｂを含むことができる。
【００５８】
デバイス６００は、オーディオ及び／又はビデオ入出力システム６２６も含む。オーディオ及び／又はビデオ入出力システム６２６は、オーディオデータをオーディオシステム６２８に提供し、及び／又はビデオデータをディスプレイシステム６３０に提供する。オーディオシステム６２８及び／又はディスプレイシステム６３０は、オーディオ、ビデオ及びイメージデータを処理し、表示し、又は他の方法でレンダリングする任意のデバイスを含むことができる。ビデオ信号及びオーディオ信号を、デバイス６００からオーディオデバイス及び／又はディスプレイデバイスに、ＲＦ（無線周波数）リンク、Ｓ−ｖｉｄｅｏリンク、コンポジットビデオリンク、コンポーネントビデオリンク、ＤＶＩ（デジタルビデオインタフェース、アナログオーディオ接続又は他の同様の通信リンクを介して通信することができる。一実施形態において、オーディオシステム６２８及び／又はディスプレイシステム６３０は、デバイス６００の外部コンポーネントとして実装される。あるいは、オーディオシステム６２８及び／又はディスプレイシステム６３０は、例示デバイス６００の組み込みコンポーネントとして実装される。
【００５９】
＜結論＞
様々な実施形態は、ユーザ経験を向上させるように、複数の連続ジェスチャのような反復的ジェスチャを効果的に実装できるようにする。
【００６０】
少なくとも一部の実施形態において、オブジェクトに関連する第１のジェスチャが検出される。第１のジェスチャは第１のアクションに関連付けられる。第１のジェスチャを検出したことに応答して、第１のアクションに関連する前処理がバックグラウンドで実行される。所定の期間内に、オブジェクトに関連する第２のジェスチャが検出されたことに応答して、第２のジェスチャに関連するアクションが実行される。所定の期間内に第２のジェスチャが実行されなかったことに応答して、第１のアクションに関連する処理が完了する。
【００６１】
少なくとも一部の実施形態において、オブジェクトに関連する第１のタップが検出され、タイマが開始される。第１のタップを検出したことに応答して、あるタイプのオブジェクトの要素について定義されているスタイルが適用される。第２のタップが、タイマによって定義された期間内に検出されたことに応答して、第1及び第２のタップを備えるジェスチャに関連するアクションが実行される。タイマによって定義された期間内に第２のタップが検出されなかったことに応答して、第１のタップに関連するアクションが実行される。
【００６２】
実施形態を、構造的特徴及び／又は方法的動作に特有の言葉で説明してきたが、特許請求の範囲において定義される実施形態は、必ずしも説明された具体的な特徴及び動作に限定されないことを理解されたい。むしろ、これらの具体的な特徴及び動作は、特許請求に係る実施形態を実装する例示的な形式として開示される。
【図１】
2015503804.tif 000003
【図２】
2015503804.tif 000004
【図３】
2015503804.tif 000005
【図４】
2015503804.tif 000006
【図５】
2015503804.tif 000007
【図６】
2015503804.tif 000008
【国際調査報告】
2015503804.tif 000009
2015503804.tif 000010
2015503804.tif 000011