具有用于控制和修改手势识别的代表的手势识别器的制作方法

文档序号:6356108阅读:256来源:国知局
专利名称:具有用于控制和修改手势识别的代表的手势识别器的制作方法
技术领域
本申请主要涉及用户界面处理,包括但不限于用于识别手势(gesture)输入的装 置和方法。
背景技术
电子设备通常包括用来与计算设备交互的用户接口。该用户接口可包括显示器和 /或输入设备,例如用于与用户接口的各方面交互的键盘、鼠标和触摸敏感表面。在具有作 为输入设备的触摸敏感表面的某些设备中,在特定的情况下(例如在第一应用的特定模式 中),第一组基于触摸的手势(例如,以下的两个或更多个点击、双击、水平挥击(swipe)、 垂直挥击、收缩(pinch)、扩张(depinch)、两根手指的挥击)被识别为正确的输入,而在其 它情况(例如不同的应用和/或第一应用中的不同模式或情况)下,别的不同的组的基于 触摸的手势被识别为正确的输入。结果,识别和响应基于触摸的手势所需要的软件和逻辑 可能变得复杂,并且每当更新应用或向计算设备增加新的应用时,就可能需要修订。在使用 基于触摸的手势以外的输入源的用户接口中,上述及相似的问题也可能出现。因此,希望拥有用于识别基于触摸的手势和事件以及来自其它输入源的手势和事 件的全面架构或者机制,其能够容易地适用于计算设备上所有应用程序的几乎所有情况或 模式,并且当更新应用或向计算设备增加新的应用时只需很少的修订或者无需修订。

发明内容
为解决上述缺陷,根据某些实施例,在电子设备处执行一种方法,该电子设备具有 一个或多个事件传感器,并被配置为执行包括多个视图以及软件应用的应用状态的软件应 用。该方法包括显示该多个视图中的一个或多个视图。该一个或多个显示的视图中的相应 视图包括一个或多个手势识别器,且相应的手势识别器具有对应的代表(delegate)。该方 法包括检测一个或多个事件,并使用相应的手势识别器处理该一个或多个事件中的相应事 件。该相应事件的处理包括根据与相应的手势识别器对应的相应手势定义在该相应的手 势识别器中处理该相应事件,根据应用状态执行该相应的手势识别器的对应代表以确定一 个或多个值,并且根据该相应的手势识别器处理该相应事件的结果以及根据由对应的代表 决定的一个或多个值,有条件地发送与该相应事件对应的信息到软件应用。该方法进一步 还包括根据从该相应的手势识别器接收的与该相应事件对应的信息执行软件应用。根据某些实施例,一种电子设备包括用于检测事件的一个或多个事件传感器、一 个或多个处理器、存储器、以及存储在存储器中并被配置为由一个或多个处理器执行的一 个或多个程序。该一个或多个程序包括具有多个视图和应用状态的软件应用。该软件应用 包括用于显示该多个视图中的一个或多个视图的指令。该一个或多个显示的视图中的相应 视图包括一个或多个手势识别器,并且相应的手势识别器具有对应的代表。该软件应用还 包括用于检测一个或多个事件的指令以及用于使用相应的手势识别器处理检测到的事件 中的相应事件的指令。用于处理相应事件的指令包括用于以下操作的指令根据与相应的手势识别器对应的相应手势定义在该相应的手势识别器中处理该相应事件,根据应用状态 执行对应的代表以确定一个或多个值,并且根据该相应的手势识别器处理该相应事件的结 果以及根据由对应的代表确定的一个或多个值,有条件地发送与该相应事件对应的信息到 软件应用。该软件应用进一步包括用于根据从该相应的手势识别器接收的与该相应事件对 应的信息执行软件应用的指令。根据某些实施例,一种计算机可读存储介质存储由电子设备的一个或多个处理器 执行的一个或多个程序,该电子设备具有一个或多个用于检测事件的事件传感器。该一个 或多个程序包括软件应用,该软件应用包括多个视图以及该软件应用的应用状态。该软件 应用包括用于显示该多个视图中的一个或多个视图的指令。该一个或多个显示的视图中的 相应视图包括一个或多个相应的手势识别器,且相应的手势识别器具有对应的代表。该软 件应用还包括用于检测一个或多个事件的指令以及用于使用该相应的手势识别器处理检 测到的事件中的相应事件的指令。用于处理相应事件的指令包括用于以下操作的指令根 据与相应的手势识别器对应的相应手势定义在该相应的手势识别器中处理该相应事件,根 据应用状态执行对应的代表以确定一个或多个值,并且根据该相应的手势识别器处理该相 应事件的结果以及根据该对应的代表确定的一个或多个值,有条件地将与该相应事件对应 的信息发送到软件应用。该软件应用进一步包括用于根据从该相应的手势识别器接收的与 该相应事件对应的信息执行软件应用的指令。根据某些实施例,在具有触摸敏感表面并被配置为执行软件应用的电子设备处执 行一种方法,该软件应用包括多个视图以及该软件应用的应用状态。该方法包括显示该多 个视图中的一个或多个视图。该一个或多个显示的视图中的相应视图包括相应手势识别 器。该相应手势识别器具有对应的代表。该方法还包括检测触摸敏感表面上的一个或多个 触摸,每个触摸具有落入一个或多个显示的视图中的触摸位置。该方法进一步包括处理该 一个或多个触摸中的相应触摸。该相应触摸的处理包括根据应用状态执行与该相应手势 识别器对应的代表以获得接收触摸值,并且当该接收触摸值满足预定义的标准时,在该相 应手势识别器中处理该相应触摸。处理该相应触摸还包括有条件地向软件应用发送对应于 该相应触摸的信息。该方法进一步包括根据从该相应手势识别器接收的与该相应触摸对应 的信息执行软件应用。根据某些实施例,一种电子设备包括触摸敏感表面、一个或多个处理器、存储器、 以及存储在存储器中并被配置为由一个或多个处理器执行的一个或多个程序。该一个或多 个程序包括具有多个视图和软件应用的应用状态的软件应用。该软件应用包括用于显示该 多个视图中的一个或多个视图的指令。该一个或多个显示的视图中的相应视图包括一个或 多个相应手势识别器。相应手势识别器具有对应的代表。该软件应用还包括用于检测触摸 敏感表面上的一个或多个触摸的指令,每个触摸具有落入一个或多个显示的视图中的触摸 位置。该软件应用还包括用于处理该一个或多个触摸中的相应触摸的指令。用于处理该相 应触摸的指令包括用于以下操作的指令根据应用状态执行与相应手势识别器对应的代表 以获得接收触摸值,当该接收触摸值满足预定义的标准时,在该相应手势识别器中处理该 相应触摸。用于处理该相应触摸的指令还包括用于有条件地向软件应用发送对应于该相应 触摸的信息的指令。该软件应用进一步包括用于根据从该相应手势识别器接收的与该相应 触摸对应的信息执行软件应用的指令。
根据某些实施例,一种计算机可读存储介质存储一个或多个程序,该程序由具有 触摸敏感表面的电子设备的一个或多个处理器执行。该一个或多个程序包括软件应用,其 包括多个视图以及该软件应用的应用状态。该软件应用包括用于显示该多个视图中的一个 或多个视图的指令。该一个或多个显示的视图中的相应视图包括一个或多个相应手势识别 器。相应手势识别器具有对应的代表。该软件应用还包括用于检测触摸敏感表面上的一个 或多个触摸的指令,每个触摸具有落入一个或多个显示的视图中的触摸位置。该软件应用 进一步包括用于处理该一个或多个触摸中的相应触摸的指令。用于处理该相应触摸的指令 包括用于以下操作的指令根据应用状态执行与相应手势识别器对应的代表以获得接收触 摸值,以及当该接收触摸值满足预定义的标准时,在该相应手势识别器中处理该相应触摸。 用于处理该相应触摸的指令还包括用于有条件地向软件应用发送对应于该相应触摸的信 息的指令。该软件应用进一步包括用于根据从该相应手势识别器接收的与该相应触摸对应 的信息执行软件应用的指令。根据某些实施例,在具有触摸敏感表面并被配置为执行软件应用的电子设备处执 行一种方法。该方法包括显示软件应用的一个或多个视图。该一个或多个显示的视图包括 多个手势识别器。该多个手势识别器包括至少一个离散手势识别器以及至少一个连续手势 识别器。离散手势识别器被配置为响应于相应手势发送单个动作消息,而连续手势识别器 被配置为当根据相应的被识别手势的连续的被识别子事件发送动作消息。该方法还包括检 测一个或多个触摸,并且使用一个或多个手势识别器处理每个触摸。对相应触摸的处理包 括根据与相应手势识别器对应的相应手势定义在该相应手势识别器中处理该相应触摸; 以及根据在该相应手势识别器中处理该相应触摸的结果,有条件地发送一个或多个相应动 作消息至软件应用。该方法进一步包括根据从一个或多个手势识别器接收到的与一个或多 个触摸对应的一个或多个动作消息执行软件应用。根据某些实施例,一种电子设备包括触摸敏感表面、一个或多个处理器、存储器、 以及一个或多个存储在存储器中并被配置为由该一个或多个处理器执行的程序。该一个或 多个程序包括软件应用,该软件应用包括用于显示该软件应用的一个或多个视图的指令。 该一个或多个显示的视图包括多个手势识别器。该多个手势识别器包括至少一个离散手势 识别器以及至少一个连续手势识别器。离散手势识别器被配置为响应于相应手势发送单个 动作消息,而连续手势识别器被配置为根据相应的被识别手势的连续的被识别子事件发送 动作消息。软件应用还包括用于检测一个或多个触摸并使用一个或多个手势识别器处理每 个触摸的指令。用于处理相应触摸的指令包括用于以下操作的指令根据与相应手势识别 器对应的相应手势定义在该相应手势识别器中处理该相应触摸;以及根据在该相应手势识 别器中处理该相应触摸的结果,有条件地发送一个或多个相应动作消息至软件应用。该软 件应用进一步包括用于根据从一个或多个手势识别器中接收的与一个或多个触摸相对应 的一个或多个动作消息执行软件应用的指令。根据某些实施例,一种计算机可读存储介质存储一个或多个程序,该程序由具有 触摸敏感表面的电子设备的一个或多个处理器执行。该一个或多个程序包括软件应用,该 软件应用包括用于显示软件应用的一个或多个视图的指令。该一个或多个显示的视图包括 多个手势识别器。该多个手势识别器包括至少一个离散手势识别器以及至少一个连续手势 识别器。离散手势识别器被配置为响应于相应手势发送单个动作消息,而连续手势识别器被配置根据相应的被识别手势的连续的被识别子事件发送动作消息。该软件应用还包括用 于以下操作的指令检测一个或多个触摸,并且使用一个或多个手势识别器处理每个触摸。 用于处理相应触摸的指令包括用于以下操作的指令根据与相应手势识别器对应的相应手 势定义在该相应手势识别器中处理相应触摸;以及根据在该相应手势识别器中处理该相应 触摸的结果有条件地发送一个或多个相应动作消息至软件应用。该软件应用进一步包括用 于根据从一个或多个手势识别器接收的与一个或多个触摸相对应的一个或多个动作消息 执行软件应用的指令。根据某些实施例,一种电子设备包括一个或多个被配置为感测一个或多个事件的 事件感测单元,以及与该一个或多个事件感测单元耦合的处理单元。该处理单元被配置为 执行包括多个视图和软件应用的应用状态的软件应用,并启用该多个视图中的一个或多个 视图的显示。该一个或多个显示的视图中的相应视图包括一个或多个相应手势识别器,并 且相应手势识别器具有对应的代表。该处理单元被配置为检测由一个或多个事件感测单元 感测的一个或多个事件,并通过以下操作使用相应手势识别器处理该一个或多个事件中的 相应事件根据与相应手势识别器对应的相应手势定义在该相应手势识别器中处理该相应 事件;根据应用状态执行对应的代表以确定一个或多个值;根据该相应手势识别器处理该 相应事件的结果,以及根据由对应的代表确定的一个或多个值,有条件地将对应于该相应 事件的信息发送到软件应用。该处理单元被配置为根据从相应手势识别器接收的与该相应 事件对应的信息执行软件应用。根据某些实施例,一种电子设备包括被配置为接收一个或多个触摸的触摸敏感表 面单元,以及与该触摸敏感表面单元相耦合的处理单元。该处理单元被配置为执行软件 应用,该软件应用包括多个视图以及该软件应用的应用状态,并启用该多个视图中的一个 或多个视图的显示。该一个或多个显示的视图中的相应视图包括一个或多个相应手势识别 器,相应手势识别器具有对应的代表。该处理单元被配置为检测在该触摸敏感表面单元上 接收到的一个或多个触摸。该一个或多个触摸中的每一个具有落入一个或多个显示的视图 中的触摸位置。该处理单元被配置为通过以下操作处理该一个或多个触摸中的相应触摸 根据应用状态执行与相应手势识别器相对应的代表以获得接收触摸值,当该接收触摸值满 足预定义的标准时,在该相应手势识别器中处理该相应触摸,并有条件地发送与该相应触 摸对应的信息到软件应用。该处理单元被配置为根据从该相应手势识别器接收的与该相应 触摸对应的信息执行软件应用。根据某些实施例,一种电子设备包括被配置为接收一个或多个触摸的触摸敏感表 面单元,以及与该触摸敏感表面单元相耦合的处理单元。该处理单元被配置为执行软件应 用,并启用该软件应用中的一个或多个视图的显示。该一个或多个显示的视图包括多个手 势识别器,并且该多个手势识别器包括至少一个离散手势识别器和至少一个连续手势识 别器。离散手势识别器被配置为响应于相应手势发送单个动作消息,而连续手势识别器被 配置为根据相应的被识别手势的连续的被识别子事件发送动作消息。该处理单元被配置为 检测在触摸敏感表面单元上接收到的一个或多个触摸,并使用一个或多个手势识别器处理 各个触摸。该处理单元被配置为通过以下操作处理相应触摸根据与相应手势识别器对应 的相应手势定义在该相应手势识别器中处理该相应触摸,以及根据在该相应手势识别器中 处理该相应触摸的结果,有条件地发送一个或多个相应的动作消息到软件应用。该处理单元被配置为根据从一个或多个手势识别器接收的与一个或多个触摸对应的一个或多个动 作消息执行软件应用。


图IA和IB是示出根据某些实施例的电子设备的框图。图2为根据某些实施例的示例性电子设备的输入/输出处理栈的图。图3A示出根据某些实施例的示例性的视图层次结构(view hierarchy)。图;3B示出根据某些实施例的用于事件处理的示例性组件的框图。图3C示出根据某些实施例的手势识别器的示例性的类(class)和实例 (instance)的框图。图4A-4D示出根据某些实施例的示例性状态机的流程图。图5A示出根据某些实施例的事件信息流的框图。图5B和5C示出根据某些实施例的手势识别方法的高级流程图。图6A-6B是示出根据某些实施例,根据从代表获得的信息处理相应事件的示例性 方法的流程图。图7A-7B是示出根据某些实施例,根据从代表获得的接收触摸值处理相应触摸的 示例性方法的流程图。图8A-8B示出根据某些实施例,在包括离散手势识别器和连续手势识别器的软件 应用中处理相应触摸的示例性方法的流程图。图9是根据某些实施例的电子设备的功能框图。图10是根据某些实施例的电子设备的功能框图。图11是根据某些实施例的电子设备的功能框图。在所有附图中,类似的参考标志表示对应的部分。
具体实施例方式现在详细参考实施例,在附图中示出了这些实施例的例子。在下面的详细描述中, 提出了若干特定细节,以便提供对本发明的透彻理解。然而,本领域技术人员应当明了,可 以实现本发明而不使用这些特定细节。在其它情况下,公知的方法、程序、组件、电路和网络 未被详细描述,以免不必要地使得这些实施例的有关方面含混不清。还应当理解,虽然可以在此处使用术语第一、第二等描述各个元件,但是这些元件 应该不受这些术语的限制。这些术语仅被用于彼此区分元件。例如,第一接触可被称为第 二接触,并且类似地,第二接触可被称为第一接触,而不会脱离本发明的范围。第一接触和 第二接触都是接触,但是它们不是相同的接触。此处在本发明的描述中使用的术语仅仅是出于描述特定实施例的目的而不旨在 作为对本发明的限制。如在本发明的描述和所附权利要求书中使用的,除非上下文清楚地 指出例外情况,单数形式“一”、“一个”、“一种”、“该”(“a”、“an”和“the”)旨在也包括复数 形式。还应理解,此处使用的术语“和/或”指并且包括一个或多个相关联地列出的项目的 任何和所有可能组合。还应理解,当在本说明书中使用术语“包括”和“包含”(“include”、 “including”、“comprise”和/或“comprising”)时,它们指叙述的特征、整体、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其它特征、整体、步骤、操作、元件、组件和/ 或它们的组的存在或添加。如此处使用的,根据上下文,术语“如果”可被理解为意味着“当…时”或“一旦”或 “响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“如果确定…”或“如果 检测到(被说明的条件或事件)”可被理解为意味着“一旦确定”或“响应于确定”或“一旦 检测到(被说明的条件或事件)”或“响应于检测到(被说明的条件或事件)”。此处使用的术语“事件”意指由设备的一个或多个传感器检测到的输入。特别地, 术语“事件”包括在触摸敏感表面上的触摸。一个事件包含一个或多个子事件。子事件通 常指对事件的改变(例如,触摸向下,触摸移动,触摸的抬起可作为子事件)。在一个或多个 子事件的序列中的子事件可以包括多种形式,包括但不限于按键按压、按键按压保持、按 键按压释放、按钮按压、按钮按压保持、按钮按压释放、操作杆移动、鼠标移动、鼠标按钮按 压、鼠标按钮释放、触笔触摸、触笔移动、触笔释放、语音指令、检测到的眼球运动、生物测定 输入、以及检测到的用户生理变化,等等。由于事件可包括单个子事件(例如设备的短暂的 横向运动),此处使用的术语“子事件”也指事件。此处使用的术语“事件识别器”以及“手势识别器”可以互换使用,意指能够识别 手势或其它事件(例如设备的运动)的识别器。如以上提及的,在具有作为输入设备的触摸敏感表面的一些设备中,在特定情况 下(例如,在第一应用的特定模式中),第一组基于触摸的手势(如以下的两个或更多个: 点击、双击、水平挥击、垂直挥击)被识别为正确的输入,而在其它情况(如不同的应用和/ 或第一应用中的不同模式或情况)下,别的不同的组的基于触摸的手势被识别为正确的输 入。而且,两个或更多个正确的输入(或手势)可能相互干扰或冲突(例如,检测到单击后, 需要决定是否将该单击识别为一个完整的单击手势还是作为双击手势的一部分)。结果,识 别和响应基于触摸的手势所需要的软件和逻辑可能变得复杂,并且每当更新应用或向计算 设备增加新的应用时,就可能需要修订。当使用基于触摸的手势来控制运行在具有触摸敏感表面的设备中的应用时,触摸 既具有时间方面也具有空间方面。时间方面称为阶段,表示触摸何时开始,它是在移动还是 静止,以及它何时结束——即,手指何时从屏幕上抬起。触摸的空间方面是其中发生触摸的 视图或用户界面窗口的集合。在其中检测到触摸的视图或窗口可以对应于视图层次结构中 的编程层级(programmatic level)。例如,在其中检测到触摸的最低层级视图可以被称为 命中视图(hit view),并且可以至少部分地基于作为开始基于触摸的手势的初始触摸的命 中视图,来确定被识别为正确输入的事件集合。图IA和IB是示出根据某些实施例的电子设备102、104的不同实施例的框图。电 子设备102或104可以是任意的电子设备,包括但不限于台式计算机系统、膝上型计算机 系统、上网本计算机系统、移动电话、智能电话、个人数字助理、或导航系统。该电子设备还 可以是具有被配置为提供用户接口的触摸屏显示器(如触摸敏感显示器156,图1B)的便携 式电子设备,具有被配置为提供用户接口的触摸屏显示器的计算机,或者任何其它形式的 计算设备,包括但不限于消费类电子设备、移动电话、视频游戏系统、电子音乐播放器、平 板电脑、电子书阅读系统、电子书、PDA、电子管理器、电子邮件设备、膝上型电脑、上网本或 者其它计算机、信息亭计算机、自动售货机、智能设施等。电子设备102或104包括用户接Π 113。在某些实施方式中,电子设备104包括触摸屏显示器。这些实施例中,用户接口 113可包括屏幕上显示的键盘(图中未示出),用户使用它与电子设备102和104交互。可 替换地,键盘可以与电子设备104(或电子设备10 相分离和区别。例如,键盘可以是与电 子设备102或104耦合的有线或无线键盘。在某些实施例中,电子设备102包含显示器1 和一个或多个输入设备128(例如 键盘、鼠标、跟踪球、麦克风、物理按钮、触摸板等),它们耦合到电子设备102。这些实施例 中,一个或多个输入设备1 可以可选地与电子设备102相分离和区别。例如,一个或多个 输入设备可包括以下一个或多个键盘、鼠标、跟踪球和电子笔,其中任一个都可以可选地 与电子设备相分离。可选地,设备102或104可以包括一个或多个传感器130,例如一个或 多个加速度计、陀螺仪、GPS系统、扬声器、红外(IR)传感器、生物传感器、照相机等。需要 说明的是,上述关于诸如输入设备1 或传感器130的各种示例性设备的说明对此处描述 的实施例的操作没有重要意义,任何在此处描述为输入设备的输入或传感器设备可以被等 同描述为传感器,反之亦然。在某些实施例中,由一个或多个传感器130产生的信号被作为 用于检测事件的输入源。在某些实施例中,电子设备104包括触摸敏感显示器156(即,具有触摸敏感表面 的显示器)以及一个或多个输入设备128,它们耦合到电子设备104。在某些实施例中,触 摸敏感显示器156能够检测两个或更多个不同的、同时发生的(或部分同时发生的)触摸, 并且在这些实施例中,显示器156在这里有时被称为多触摸显示器或多触摸敏感显示器。这里讨论的电子设备102或104的某些实施例中,输入设备1 被布置在电子设 备102或104中。在其它的实施例中,一个或多个输入设备128与电子设备102或104相 分离和区别;例如,一个或多个输入设备1 可以通过电缆(如USB电缆)或无线连接(如 蓝牙连接)耦合到电子设备102或104。当使用输入设备128时,或者当在电子设备104的触摸敏感显示器156上执行基 于触摸的手势时,用户生成由电子设备102或104的一个或多个CPU 110处理的子事件序 列。在某些实施例中,电子设备102或104的一个或多个CPUllO处理该子事件序列以识别事件。电子设备102或104通常分别包括一个或多个单核或多核处理单元(“CPU”) 110, 以及一个或多个网络或其它通信接口 112。电子设备102或104分别包括存储器111和用 于互连这些组件的一个或多个通信总线115。通信总线115可以包括互连和控制系统组件 之间的通信的电路(有时称为芯片组)(此处未详述)。如以上简要论述的,电子设备102 或104包括用户接口 113,其包括显示器(例如显示器1 或触摸敏感显示器156)。进一 步地,电子设备102或104通常包括输入设备1 (例如键盘、鼠标、触摸敏感表面、小键盘 等)。在某些实施例中,输入设备1 包括屏幕输入设备(例如显示设备的触摸敏感表面)。 存储器111可以包括高速随机存取存储器,诸如DRAM、SRAM、DDRRAM或其它的随机存取固态 存储器设备;并可以包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、 闪速存储器设备、或其它非易失性固态存储设备。存储器111可以可选地包括一个或多个 远离CPU(—个或多个)110的存储设备。存储器111,或者可替换地在存储器111中的非 易失性存储器设备(一个或多个),包括计算机可读存储介质。在某些实施例中,(电子设备102或104的)存储器111或存储器111的计算机可读存储介质存储以下的程序、模块 和数据结构或它们的子集 操作系统118,包括用来处理各种基本系统服务和用于执行依赖硬件的任务的程 序;·通信模块120,用来通过它们的一个或多个相应的通信接口 112(有线或者无线 的)和一个或多个通信网络,诸如因特网、其它广域网、局域网、城域网等,分别将电子设备 102或104连接到其它设备; 用户接口模块122,用于在显示器1 或触摸敏感显示器156上显示包括用户界 面对象的用户界面;·控制应用124,用于控制进程(如命中视图的确定、线程管理和/或事件监控 等);在某些实施例中,控制应用1 包括运行时应用(run-time application);在其它实 施例中,运行时应用包括控制应用124 ; 事件传递系统130,其可以在操作系统118中或应用软件132中以各种可替换地 实施方式来实现;但在某些实施例中,事件传递系统130的一些方面可以在操作系统118中 实现,而其它方面(例如至少是事件处理器的子集)可以在应用软件132中实现; 应用软件132,其可以包括一个或多个软件应用(例如电子邮件应用、Web浏览器 应用、文本消息应用等);各软件应用通常具有(至少在执行时具有)应用状态,其指示软 件应用及其组件(例如手势识别器和代表)的状态;参见以下描述的应用内部状态317(图 3B);以及 设备/全局内部状态134,包括以下一个或多个应用状态,指示软件应用及其组 件(例如手势识别器和代表)的状态;显示状态,指示何种应用、视图或其它信息占据了触 摸敏感显示器156或显示器126的各个区域;传感器状态,包括从设备的各个传感器130、 输入设备1 和/或触摸敏感显示器156获得的信息;以及关于设备的位置和/或姿态的
位置信息。上面标出的内容中每一项可被存储于一个或多个前面提到的存储设备中,并对应 于用于执行此处描述的功能的指令集。该指令集可被一个或多个处理器(例如一个或多个 CPU 110)执行。上面标出的模块或程序(即,指令集)不需要被实现为单独的软件程序、过 程或者模块,因而这些模块的各个子集可被组合或被重新安排在不同的实施例中。在某些 实施例中,存储器111可存储上面标出的模块和数据结构的子集。此外,存储器111还可存 储上面没有描述的另外的模块和数据结构。图2为根据本发明某些实施例的示例性电子设备或装置(例如设备102或104) 的输入/输出处理栈200的示意图。设备的硬件(例如电子电路)212处于该输入/输出 处理栈200的底层(base level)。硬件212可包括各种硬件接口组件,例如图IA和/或 IB所示的组件。硬件212还可以包括一个或多个上面提及的传感器130。输入/输出处理 栈200的所有其它元件(132,204-210)为软件程序,或软件程序的一部分,它们处理从硬件 212接收的输入并生成通过硬件用户接口(例如显示器、扬声器、设备振动致动器中的一个 或多个)呈现的各种输出。驱动程序或一组驱动程序210与硬件212通信。驱动程序210可以接收和处理从 硬件212接收的输入数据。核心操作系统(“OS”) 208可以与驱动程序(一个或多个)210通信。核心OS 208可以处理从驱动程序210接收的原始输入数据。在某些实施例中,驱动 程序210可被认为是核心OS 208的一部分。一组OS应用编程接口( “OS API”)206是与核心OS 208通信的软件程序。在某 些实施例中,API 206被包括在设备的操作系统中,但位于核心OS 208之上的层。API 206 被设计为由运行在此处讨论的电子设备或装置上的应用使用。用户接口(UI)API204可利 用OSAPI 206。运行在设备上的应用软件(“应用”)132可以利用UIAPI 204以便与用户 通信。UIAPI 204又可以与下层的元件通信,最终与各个用户接口硬件(例如多触摸显示器 156)通信。尽管输入/输出处理栈200的每一层可以利用它下面的层,但这并非总是必要的。 例如,在某些实施例中,应用132可以偶尔与0SAPI206通信。一般,位于OSAPI层206或位 于其上的层不可以直接访问核心OS 208、驱动程序210、或硬件212,因为这些层被认为是 隐蔽的(private)。层132中的应用和UIAPI204通常直接调用OSAPI 206,OSAPI 206又 访问核心OS 208、驱动程序210和硬件212这些层。以另一方式叙述,电子设备102或104的一个或多个硬件元件212以及运行在设 备上的软件(诸如,举例来说,驱动程序210(如图2所示)、核心OS(操作系统)208(如图 2所示)、操作系统API软件206 (如图2所示)、以及应用和用户接口 API软件204 (如图2 所示))检测在一个或多个输入设备1 和/或触摸敏感显示器156处的输入事件(其可 能对应于手势中的子事件),并生成或更新各个数据结构(存储在设备102或104的存储器 中),所述数据结构由一组当前活动的事件识别器使用以确定是否以及何时该输入事件对 应于要传递给应用132的事件。以下将更加详细地描述事件识别方法、装置和计算机程序 产品的实施例。图3A描绘了示例性的视图层次结构300,在该示例中是在最外层(outermost)视 图302中显示的搜索程序。最外层视图302 —般包含用户可以直接与之交互的完整用户界 面,并且包括次级(subordinate)视图,例如·搜索结果面板304,其将搜索结果集合在一起并可以纵向卷动;·搜索区域306,其接收文本输入;以及·主行(home row) 310,其将应用集合在一起以便快速访问。该示例中,每个次级视图包括下层的次级视图。在其它的示例中,层次结构300中 的视图层级的数量在层次结构的不同分支中可以不相同,其中一个或多个次级视图具有下 层的次级视图,而一个或多个别的次级视图不具有任何这样的下层次级视图。继续如图3A 所示的例子,检索结果面板304包含用于各个搜索结果的单独的次级视图305 (从属于面板 304)。这里,该示例在称为地图视图305的次级视图中显示了一个搜索结果。搜索区域306 包括在这里被称为清空内容图标视图307的次级视图,当用户在视图307的清空内容图标 上执行特定动作(如单个触摸或点击手势)时,其清空搜索区域的内容。主行310包括次 级视图310-1、310-2、310-3和310-4,其分别对应于联系人应用、电子邮件应用、web浏览器 和iPod音乐界面。触摸子事件301-1被表示在最外层视图302中。假设触摸子事件301_1的位置在 搜索结果面板304和地图视图305 二者上,则该触摸子事件301-1也被表示在这些视图上, 分别是301-2和301-3。该触摸子事件的有效涉及视图(actively involved view)包括搜索结果面板304视图、地图视图305和最外层视图302。以下参照图和3C提供关于子事 件传递和有效涉及视图的进一步信息。视图(以及相应的编程层级)可以嵌套。也就是说,视图可以包括其它视图。因 此,与第一视图相关联的软件元件(一个或多个)(例如事件识别器)可包括或被链接到与 该第一视图内的视图相关联的一个或多个软件元件。一些视图可以与应用相关联,而其它 视图可以与高层OS元件(例如图形用户界面,窗口管理器等)相关联。图;3B是示出根据某些实施例的用于事件处理的示例性组件(如事件处理组件 390)的框图。在某些实施例中,存储器111(图IA和IB中)包括事件识别器全局方法 311 (例如在操作系统118中)和单独的应用132-1。在某些实施例中,事件识别器全局方法311包括事件监视器312、命中视图确定模 块313、活动事件识别器确定模块314和事件分派器(dispatcher)模块315。在某些实施 例中,事件识别器全局方法311位于事件传递系统130中。在某些实施例中,事件识别器全 局方法311被实现在操作系统118中。可替换地,事件识别器全局方法311被实现在应用 132-1中。而在其它实施例中,事件识别器全局方法311被实现为独立的模块,或作为存储 在存储器111中的另一模块(例如接触/运动模块(未绘出))的一部分。事件监视器312从传感器130、触摸敏感显示器156和/或输入设备128接收事件 信息。事件信息包括关于事件(例如触摸敏感显示器156上的用户触摸,作为多触摸手势的 一部分,或设备102或104的运动)和/或子事件(例如划过触摸敏感显示器156的触摸 的运动)的信息。例如,触摸事件的事件信息包括以下一个或多个触摸的位置和时间戳。 类似地,挥击事件的事件信息包括以下两个或更多个位置、时间戳、方向和挥击的速度。传 感器130、触摸敏感显示器156和输入设备1 把事件信息和子事件信息直接地或通过外围 接口发送到事件监视器312,事件监视器检索和存储事件信息。传感器130包括以下一个 或多个接近传感器(proximity sensor)、加速度计(一个或多个)、陀螺仪、麦克风和摄像 头。在某些实施例中,传感器130还包括输入设备1 和/或触摸敏感显示器156。在某些实施例中,事件监视器312以预定的时间间隔向传感器130和/或外围接 口发送请求。作为响应,传感器130和/或外围接口发送事件信息。在其它实施例中,只有 发生重要事件(例如,接收到超过预定噪声阈值和/或长于预定持续时间的输入)时,传感 器130和外围接口才发送事件信息。事件监视器312接收事件信息并确定要向其传递事件信息的应用132-1和应用 132-1的应用视图316-2。在某些实施例中,事件识别器全局方法311还包括命中视图确定模块313和/或 活动事件识别器确定模块314。命中视图确定模块313提供用于在触摸敏感显示器156显示多于一个视图时,确 定事件或子事件在一个或多个视图中发生的位置的软件程序。视图由用户在显示器上可见 的控件和其它元件组成。与应用132-1相关联的用户界面的另一方面是一组视图316,有时在这里被称为 应用视图或用户界面窗口,在其中显示信息并且发生基于触摸的手势。在其中检测到触摸 的(相应应用的)应用视图可以对应于该应用的视图层次结构中的特定视图。例如,在其 中检测到触摸的最低层级视图可被称为命中视图,并且可以至少部分地基于开始某个基于触摸的手势的初始触摸的命中视图,来确定被识别为正确输入的事件集合。命中视图确定模块313接收与事件和/或子事件有关的信息。当应用具有以层次 结构组织的多个视图时,命中视图确定模块313将该层次结构中应当处理该事件或子事件 的最低层视图确立为命中视图。在大部分情况下,命中视图是其中发生了发起事件或子事 件(即,形成手势的事件和/或子事件序列中的第一个事件或子事件)的最低层级的视图。 一旦命中视图确定模块确立了命中视图,该命中视图通常接收与使其被确立为命中视图的 相同触摸或输入源有关的所有事件和/或子事件。活动事件识别器确定模块314确定视图层次结构中的哪个视图或哪些视图应当 接收特定序列的事件和/或子事件。在某些应用情况下,活动事件识别器确定模块314确定 只有命中视图应当接收特定序列的事件和/或子事件。在其它一些应用情况下,活动事件 识别器确定模块314确定所有包括事件和/或子事件的物理位置的视图是有效涉及视图, 并且因此确定所有有效涉及视图应当接收特定序列的事件和/或子事件。在其它一些应用 情况下,即使触摸事件和/或子事件被完全限制到与一个特定视图相关联的区域,层次结 构中更高的视图将仍然保持作为有效涉及视图。事件分派器模块315将事件信息分派到事件识别器(这里也称为“手势识别器”) (例如,事件识别器320-1)。在包括活动事件识别器确定模块314的实施例中,事件分派器 模块315将事件信息传递到由活动事件识别器确定模块314确定的事件识别器。在某些实 施例中,事件分派器模块315将事件信息存储在事件队列中,由相应的事件识别器320(或 相应的事件识别器320中的事件接收器331)检索该事件信息。在某些实施例中,应用132-1包括应用内部状态317,其在应用是活动的或在执行 时指示显示在触摸敏感显示器156上的当前应用视图(一个或多个)。在某些实施例中,设 备/全局内部状态134由事件识别器全局方法311使用以确定哪个(哪些)应用当前是活 动的,而应用内部状态317由事件识别器全局方法311使用以确定要向其传递事件信息的 应用视图316。在某些实施例中,应用内部状态317包括附加信息(例如344,图3C),诸如以下一 个或多个当应用132-1恢复执行时要使用的恢复信息、指示应用132-1正在显示的或准备 显示的信息的用户界面状态信息、使用户能够回到应用132-1的前一状态或视图的状态队 列、以及用户执行的先前动作的重做/撤销队列。在某些实施例中,应用内部状态317进一 步包括上下文信息/文本和元数据318。在某些实施例中,应用132-1包括一个或多个应用视图316,它们中的每一个包括 用于处理发生在该应用的用户界面的相应视图内的触摸事件的指令。应用132-1的至少一 个应用视图316包括一个或多个事件识别器320以及一个或多个事件处理器322。通常,一 个应用视图316包括多个事件识别器320和多个事件处理器322。在其它一些实施例中,一 个或多个事件识别器320是单独模块的一部分,所述单独模块诸如用户界面工具箱(未示 出)或应用132-1从中继承方法和其它属性的更高层对象。在某些实施例中,事件处理器 190还包括下列一个或多个数据更新器、对象更新器、GUI更新器、和/或接收到的事件数 据。事件识别器320-1从事件分派器模块315接收事件信息,并基于事件信息确立事 件。事件识别器320-1包括事件接收器331和事件比较器332。
事件信息包括关于事件(例如触摸)或子事件(例如触摸移动)的信息。取决于 事件或子事件,事件信息还包括附加信息,诸如事件或子事件的位置。当事件或子事件涉及 触摸的移动时,事件信息还可以包括子事件的速度和方向。在某些实施例中,事件包括设备 从一个定向到另一个定向的旋转(例如,从纵向到横向,或反过来),并且事件信息包括关 于设备的当前定向(也被称为设备姿态)的对应信息。事件比较器332将事件信息与预定义的手势定义(这里也称为“事件定义”)进行 比较,并且基于该比较,确定事件或子事件,或者确定或更新事件或子事件的状态。在某些 实施例中,事件比较器332包括一个或多个手势定义333 (如上所述的,这里也称为“事件定 义”)。手势定义333包含手势(例如,预定的事件和/或子事件序列)的定义,例如,手势 1(334-1)、手势2 (334-2),等等。在某些实施例中,事件定义333中的子事件包括,例如,触 摸开始、触摸结束、触摸移动、触摸取消和多触摸。在一个例子中,手势1(334-1)的定义是 在显示对象上的双击。该双击例如包括手势的预定阶段的在显示对象上的第一触摸(触摸 开始)、手势的下一预定阶段的第一抬起(触摸结束)、手势的随后的预定阶段的在显示对 象上的第二触摸(触摸开始)、和手势的最终的预定阶段的第二抬起(触摸结束)。在另一 个例子中,手势2 (334- 的定义是在显示对象上的拖动。该拖动例如包括在显示对象上的 触摸(或接触)、该触摸在触摸敏感显示器156上的移动、和触摸的抬起(触摸结束)。在某些实施例中,事件识别器320-1还包括用于事件传递335的信息。用于事件 传递335的信息包括对相对应的事件处理器322的引用。可选地,用于事件传递335的信 息包括动作-目标对(一个或多个)。在某些实施例中,响应于识别出手势(或手势的一 部分),事件信息(例如动作消息(一个或多个))被发送到由动作-目标对确立的一个或 多个目标。在其它实施例中,响应于识别出手势(或手势的一部分),该动作-目标对被激 活。在某些实施例中,手势定义333包括针对用户界面对象的手势的定义。在某些实 施例中,事件比较器332执行命中测试,以便确定哪个用户界面对象与子事件相关联。例 如,在三个用户界面对象被显示在触摸敏感显示器156上的应用视图中,当在触摸敏感显 示器156上检测到触摸时,事件比较器332执行命中测试,以便确定三个用户界面对象中的 哪一个(如果有的话)与该触摸(事件)相关联。如果每个显示对象与一个相应的事件处 理器322相关联,则事件比较器332使用命中测试的结果来确定应当激活哪个事件处理器 322。例如,事件比较器332选择与触发命中测试的事件和对象相关联的事件处理器322。在某些实施例中,手势333的定义还包括延迟动作,延迟动作延迟事件信息的传 递,直到已经确定事件和/或子事件序列是否与事件识别器的事件类型相对应。当事件识别器320-1确定事件和/或子事件序列不与手势定义333中的任何事件 匹配时,该相应的事件识别器320-1进入事件失败状态,此后该相应的事件识别器320-1忽 视后续的基于触摸的手势的事件和/或子事件。在该情况下,对于命中视图保持为活动的 其它事件识别器(如果有的话)继续跟踪和处理进行中的基于触摸的手势的事件和/或子 事件。在某些实施例中,事件识别器320-1包括事件识别器状态336。事件识别器状态 336包括该相应的事件识别器320-1的状态。以下参照图4A-4D更详细地描述事件识别器 状态的例子。
18
在某些实施例中,事件识别器336包括识别器元数据和属性337-1。在某些实施例 中,识别器元数据和属性337-1包括以下一个或多个A)可配置的属性、标志、和/或列表, 其指示事件传递系统应当如何执行事件和/或子事件到有效涉及的(actively involved) 事件识别器的传递;B)可配置的属性、标志和/或列表,其指示事件识别器如何彼此交互; C)可配置的属性、标志和/或列表,其指示事件识别器如何接收事件信息;D)可配置的属 性、标志和/或列表,其指示事件识别器可以如何识别手势;E)可配置的属性、标志和/或 列表,其指示事件和/或子事件是否被传递到视图层次结构中的不同层级;以及F)到对应 的事件处理器322的引用。在某些实施例中,事件识别器状态336包括事件/触摸元数据337-2。事件/触摸 元数据337-2包括关于被检测到的并且与手势定义333相对应的相应事件/触摸的事件/ 触摸信息。该事件/触摸信息包括以下一个或多个该相应事件/触摸的位置、时间戳、速 度、方向、距离、比例(或比例变化)、以及角度(或角度变化)。在某些实施例中,相应的应用视图包括一个或多个代表321。相应的代表321被分 配给相应的事件识别器320。可替换地,相应的事件识别器320具有对应的代表321,但是 该代表321并不一定在运行时被分配给相应的识别器320,反而是,事件识别器的代表可以 在执行该应用之前被建立(例如,事件识别器的代表可以由应用视图的代表属性来指示, 在对应的应用视图316初始化时建立)。在某些实施例中,一些事件识别器不具有分配的 (或对应的)代表。缺少对应代表的事件识别器根据默认规则来执行,默认规则诸如管理事 件识别独占性(exclusivity)的默认规则。在某些实施例中,有些事件识别器具有多个分 配的(或对应的)代表。代表修改对应的事件识别器的行为,还可以用于协调多个事件识 别器的行为。在下面描述的某些实施例中,当被分配给了相应的事件识别器时,代表修改该 相应事件识别器行为的多个方面。在某些实施例中,当手势的一个或多个特定事件和/或子事件被识别时,相应事 件识别器320激活与该相应事件识别器320相关联的事件处理器322。在某些实施例中,相 应的事件识别器320传递与事件相关联的事件信息到事件处理器322。事件处理器322在被激活时,执行以下一个或多个创建和/或更新数据、创建和 更新对象、以及准备显示信息并将其发送以显示在显示器126或触摸敏感显示器156上。在某些实施例中,应用视图316-2包括视图元数据323。视图元数据323包括关于 视图的数据。可选地,视图元数据包括以下属性,其影响事件和/或子事件到事件识别器的 传递·停止属性324-1,当为视图设置了该属性时,阻止事件和/或子事件被传递给与 该视图及其在视图层次结构中的先辈(ancestor)相关联的事件识别器;·跳过属性324-2,当为视图设置了该属性时,阻止事件和/或子事件被传递给与 该视图相关联的事件识别器,但允许事件和/或子事件被传递给其在视图层次结构中的先 辈;·非命中跳过属性324-3,当为视图设置了该属性时,阻止事件和/或子事件被传 递给与该视图相关联的事件识别器,除非该视图是命中视图;如前面讨论的,命中视图确定模块313将层次结构中最低层的视图确立为命中视 图,其应当处理该子事件;以及
·其它视图元数据324-4。在某些实施例中,视图层次结构中的第一有效涉及视图可以被配置为阻止相应的 子事件被传递到与该第一有效涉及视图相关联的事件识别器。这种行为可实现跳过属性 324-2。当为应用视图设置了跳过属性时,仍然为与视图层次结构中其它的有效涉及视图相 关联的事件识别器执行该相应子事件的传递。可替换地,视图层次结构中的第一有效涉及视图可被配置为阻止相应的子事件被 传递到与该第一有效涉及视图相关联的事件识别器,除非该第一有效涉及视图是命中视 图。这种行为可实现有条件地非命中跳过属性324-3。在某些实施例中,视图层次结构中的第二有效涉及视图被配置为阻止相应的子事 件被传递到与该第二有效涉及视图相关联的事件识别器和与该第二有效涉及视图的先辈 相关联的事件识别器。这种行为可实现停止属性324-1。应当理解,前面关于触摸敏感显示器上的用户触摸的事件处理的讨论也适用于操 作具有输入设备的电子设备102或104的其它形式的用户输入,其中不是所有用户输入 都是在触摸屏上发起的,例如,与或不与单个或多个键盘按压或保持相配合的鼠标移动和 鼠标按钮按压,触控板上的用户移动、敲击、拖动、卷动等,触笔输入,设备的移动(例如旋 转),口头指令,检测到的眼睛运动,生物测定输入,和/或它们的任何组合,都可用作与定 义要被识别的手势的事件和/或子事件相对应的输入。图3C是示出了根据本发明某些实施例的手势识别器(如事件处理组件390)的示 例性的类和实例的框图。软件应用(例如应用132-1)具有一个或多个事件识别器340。在某些实施例中, 某个事件识别器(例如:340- 是事件识别器类。该事件识别器(例如340- 包括事件识 别器特定代码341 (例如,定义事件识别器的操作的指令集)和状态机342。在某些实施例中,软件应用(例如应用132-1)的应用状态317包括事件识别器的 实例。事件识别器的每一实例是一个具有状态(例如事件识别器状态336)的对象。通过 执行对应的事件识别器特定代码(例如341)并更新或者维持事件识别器实例343的状态 336,实现相应的事件识别器实例的“执行”。事件识别器实例343的状态336包括事件识别 器实例的状态机;342的状态338。在某些实施例中,应用状态317包括多个事件识别器实例343,每个实例对应于一 个已被绑定到(也称为“附着到”)应用视图的事件识别器。在某些实施例中,应用状态317 包括某个事件识别器(例如340-2)的多个实例(例如343-1至343-L)。在某些实施例中, 应用状态317包括多个事件识别器(例如340-1至340-R)的实例343。在某些实施例中,手势识别器的一个实例343-2包括事件识别器状态336。如上 面讨论的,事件识别器状态336包括识别器元数据和属性337-1以及事件/触摸元数据 337-2。事件识别器状态336还包括(一个或多个)视图层次结构引用337-3,指示手势识 别器的该相应的实例343-2附着到哪个视图。在某些实施例中,识别器元数据和属性337-1包括以下项目或其子集或超集·独占标志339,当为事件识别器设置了该标志时,指示一旦事件识别器识别出手 势,事件传递系统将停止传递事件和/或子事件到有效涉及视图的任何其它事件识别器 (除了在例外清单353中列出的任何其它事件识别器);当接收事件和/或子事件导致特定的事件识别器进入该独占状态,如它的对应的独占标志339所指示的,那么随后的事件和/ 或子事件只被传递到该处于独占状态的事件识别器(以及在例外清单353中列出的任何其 它事件识别器);·独占例外清单353 ;当被包括在相应事件识别器的事件识别器状态336中时,该 清单353表示这样一组事件识别器(如果有的话),其即使在所述相应事件识别器进入独 占状态后,也将继续接收事件和/或子事件;例如,如果单击事件的事件识别器进入独占状 态,且当前涉及的视图包括双击事件的事件识别器,则清单353会列出双击事件识别器,因 而,即使在检测到单击事件之后双击事件也可以被识别。因此,该独占例外清单353允许事 件识别器识别共享共同的事件和/或子事件序列的不同手势,例如单击手势的识别不排除 其它事件识别器对双击或三击手势的后续识别。·等待清单351 ;当被包括在相应事件识别器的事件识别器状态336中时,该清单 351指示这样一组事件识别器(如果有的话),其在所述相应事件识别器可识别出相应事件 之前,必须进入事件失败或事件取消状态;实际上,列出的事件识别器比具有等待清单351的事件识别器拥有更高的识别事 件的优先级。·延迟触摸开始标志352,当为事件识别器设置了该标志时,导致该事件识别器延 迟发送事件和/或子事件(包括触摸开始或手指放下子事件,和随后的事件)到事件识别 器的相应命中视图,直到已确定事件和/或子事件序列与该事件识别器的手势类型不相对 应之后;在该手势已被识别的情况下,该标志可被用于防止命中视图看到任何的事件和/ 或子事件;当该事件识别器识别手势失败时,该触摸开始子事件(和随后的触摸结束子事 件)可被传递至命中视图;在一个例子中,传递这样的子事件到命中视图使得用户界面简 单地突出显示对象,而不调用与该对象相关联的动作;·延迟触摸结束标志363,当为事件识别器设置了该标志时,导致事件识别器延迟 发送子事件(例如触摸结束子事件)到事件识别器的相应命中视图或层级,直到已确定子 事件序列与该事件识别器的事件类型不相对应;在该手势被识别晚了的情况下,这可被用 于防止命中视图根据触摸结束子事件而行动;只要该触摸结束子事件没被发送,触摸取消 可以被发送至命中视图或层级;如果事件已被识别,则应用的对应动作被执行,并且该触摸 结束子事件被传递到命中视图或层级;以及·触摸取消标志364,当为事件识别器设置了该标志时,导致在已确定事件和/或 子事件序列与事件识别器的手势类型不相对应时,事件识别器发送触摸或者输入取消至事 件识别器的相应命中视图;发送到命中视图的触摸或输入取消表明一在先的事件和/或子 事件(例如触摸开始子事件)已经被取消;触摸或者输入取消可使得事件识别器的状态进 入事件取消状态418 (在图4B中)。在某些实施例中,一个或多个事件识别器可适合于延迟传递子事件序列中的一个 或多个子事件,直到事件识别器识别该事件之后。这种行为反映延迟的事件。例如,考虑在 能够进行多击手势的视图中的单击手势。在这种情况下,点击事件变为“点击+延迟”识别 器。本质上,当事件识别器实施这种行为时,事件识别器将延迟事件识别,直到确定子事件 序列实际上确实与其事件定义相对应。当接收方视图不能适当地响应取消的事件时,这种 行为可能是适当的。在某些实施例中,事件识别器将延迟将其事件识别器状态更新为其相应的有效涉及视图,直到事件识别器确定子事件序列与事件定义不相对应。延迟触摸开始 标志352、延迟触摸结束标志363和触摸取消标志364被提供以根据特定的需要而调整子事 件传递技术以及事件识别器和视图状态信息更新。在某些实施例中,识别器元数据和属性337-1包括以下项目或其子集或超集·状态机状态/阶段338,其表明相应的事件识别器实例(例如343- 的状态机 (例如34 的状态;状态机状态/阶段338可具有各种状态值,例如“事件可能”、“事件被 识别”、“事件失败”和其它,如下面描述的;可替换地或者作为附加,状态机状态/阶段338 可以具有各种阶段值,例如,“触摸阶段开始”,可表示触摸数据结构定义了没有被之前的触 摸数据结构引用过的新触摸;“触摸阶段移动”值,可表示被定义的触摸已经从前一位置移 动;“触摸阶段静止”值,可表示该触摸已停留在相同位置;“触摸阶段结束”值,可表示触摸 已结束(例如,用户已经从多触摸显示器表面上抬起起他/她的手指);“触摸阶段取消” 值,可表示触摸已经被设备取消;被取消的触摸可以是不一定由用户结束的触摸,而是设备 已决定将其忽略的触摸;例如,设备可以确定触摸不是有意生成的(例如,作为将具有便携 式多触摸功能的设备放在口袋中的结果)并且出于该原因忽略该触摸;状态机状态/阶段 338的每个值可以为整数(此处称为“手势识别器状态值”); 动作-目标对(一个或多个)345,每一对确立一个目标,响应于将事件或触摸识 别作为手势或手势的一部分,相应的事件识别器实例发送所确立的动作消息给该目标;·代表346,当代表被分配给相应的事件识别器实例时,该代表346是到对应代表 的引用;当代表没有被分配给相应的事件识别器实例时,代表346包含空值;以及·启用属性347,表示相应的事件识别器实例是否被启用(enabled);在某些实施 例中,当相应的事件识别器实例没有被启用(例如,被禁用(disabled))时,该相应的事件 识别器实例不处理事件或触摸。在某些实施例中,例外清单353也可由非独占的事件识别器使用。特别地,当非独 占的事件识别器识别出事件或者子事件时,随后的事件和/或子事件不被传递到与当前活 动视图相关联的独占性事件识别器,除了列在所述识别出事件或子事件的事件识别器的例 外清单353中的那些独占性事件识别器。在某些实施例中,事件识别器可被配置为利用触摸取消标志364结合延迟触摸结 束标志363来阻止不需要的事件和/或子事件被传递到命中视图。例如,单击手势的定义 与双击手势前半部分是相同的。一旦单击事件识别器成功地识别单击,不希望的动作可能 发生。如果设置了延迟触摸结束标志,则阻止单击事件识别器发送子事件到命中视图,直到 单击事件被识别。此外,该单击事件识别器的等待清单可以标识出双击事件识别器,从而阻 止单击事件识别器识别单击,直到双击事件识别器进入了事件不可能状态。使用等待清单 避免了当进行双击手势时与单击相关联的动作被执行。代替地,响应于识别出双击事件,将 只执行与双击相关联的动作。特别地,转向在触摸敏感表面上的用户触摸的形式,如前面指出的,触摸和用户手 势可以包括无需是瞬时的动作,例如,触摸可以包括在显示器上移动或保持手指一段时间 的动作。然而,触摸数据结构定义在特定时间的触摸的状态(或者,更普遍的,任意输入源 的状态)。因此,存储在触摸数据结构中的值可能在单个触摸过程中变化,使得单个触摸在 不同时间点的状态被传送到应用。
每个触摸数据结构可包括各种条目。在某些实施例中,触摸数据结构可包括至少 与事件/触摸元数据337-2中的特定于触摸的条目相对应的数据,例如如下项目或其子集 或超集 “视图的第一触摸”条目348,指示触摸数据结构是否定义了该特定视图(自该视 图实例化(instantiate)后)的第一触摸; “每个触摸的信息”条目349,包括“时间戳”信息,其指示与该触摸数据结构有关 的特定时间(例如,触摸的时间);可选的,“每个触摸的信息”条目349包括其它信息,诸如 对应触摸的位置;以及 可选的“点击计数”条目350,指示在初始触摸的位置已连续执行了多少次点击; 一次点击可定义为手指在触摸敏感面板的特定位置的快速按压和抬起;如果手指在面板的 相同位置迅速连续地再次按压和释放手指,可以发生多次连续点击;事件传递系统130可 以计算点击数并通过“点击计数”条目350向应用转发该信息;在相同位置的多次点击有时 被认为对于记住用于能够触摸的界面的命令是有用且容易的;这样,通过计算点击数,事件 传递系统130再次减轻了应用的一些数据处理。因此,每个触摸数据结构可以定义相应触摸(或其它输入源)在特定时间发生了 什么(例如,触摸是否静止、移动等等),以及其它与该触摸相关联的信息(例如位置)。于 是,每个触摸数据结构可定义特定触摸在特定时刻的状态。参照同一时间的一个或多个触 摸数据结构可以被添加到触摸事件数据结构中,该触摸事件数据结构可以定义特定视图在 某时刻接收的所有触摸的状态(如前面提及的,一些触摸数据结构还可以引用已经结束且 不再被接收的触摸)。为了向软件提供描述视图中正在发生的触摸的连续信息,随时间的推 移,多个触摸事件数据结构可被发送到实施视图的软件中。处理复杂的基于触摸的手势(可选地包括多触摸手势)的能力可能向各种软件应 用增加复杂度。在某些情况下,这种增加的复杂度是实施高级的所希望的界面特征所必需 的。例如,由于游戏常需要在同一时间按压多个按钮,或将加速度数据与触摸敏感表面上的 触摸相结合,游戏可能需要处理在不同视图中发生的多个同时触摸的能力。然而,一些较简 单的应用和/或视图不需要高级的界面特征。例如,简单的软按钮(即,显示在触摸敏感 显示器上的按钮)可以用单个触摸得到令人满意的操作,而不需多触摸功能。在这些情况 中,底层OS可能发送不必要或过度的触摸数据(例如,多触摸数据)到与仅打算通过单触 摸(例如,在软按钮上的单个触摸或点击)来操作的视图相关联的软件组件。由于该软件 组件可能需要处理该数据,其可能需要具有处理多触摸的软件应用的全部复杂度的特征, 即使它与只涉及单触摸的视图相关联。这可能增加开发设备软件的成本,因为在鼠标接口 环境中(即,各种按钮等)传统上容易编程的软件组件在多触摸环境中可能复杂得多。为了减小识别复杂的基于触摸的手势的复杂度,按照某些实施例,可以使用代表 来控制事件识别器的行为。如以下描述的,代表可以确定例如对应的事件识别器(或手势 识别器)是否可以接收事件(例如触摸)信息;对应的事件识别器(或手势识别器)是否 可以从状态机的初始状态(例如,事件可能状态)转换到另一状态;和/或对应的事件识别 器(或手势识别器)是否可以将事件(例如,触摸)识别为对应的手势,而同时不阻止其它 事件识别器(或手势识别器)识别该事件或者被其它事件识别器(或手势识别器)阻止识 别该事件。
然而,应当理解的是,上述关于评估和处理在触摸敏感表面上的用户触摸的复杂 度的讨论也适用于操作电子设备102或104的所有形式的用户输入,其中不是所有用户输 入都是在触摸屏上发起的,例如,与或不与单个或多个键盘按压或保持相配合的鼠标移动 和鼠标按钮按压,设备旋转或其他运动,触控板上的用户移动(诸如点击、拖动、卷动等), 触笔输入,口头指令,检测到的眼睛运动,生物测定输入,检测到的用户生理变化,和/或它 们的任何组合,都可用作与定义要被识别的手势的事件和/或子事件相对应的输入。图4A-4D是根据某些实施例的用于示例性的状态机的流程图。手势识别器可以包 括离散手势识别器和连续手势识别器。离散手势识别器通常在识别在预定时间周期内发生 的简短手势(如点击或挥击手势)时是有用的,但更基础的是用于识别这样的手势在识别 该手势后只有一个动作消息或一组动作消息需要被传递给应用。连续手势识别器在识别包 括触摸移动(因此需要跟踪触摸的位置)的手势(如平移(pan)、收缩、或旋转手势)中是 有用的,但更基础的是用于识别这样的手势在该手势的过程中一连串的动作消息需要被 传递给应用。在某些实施例中,离散事件识别器状态机400和连续事件识别器状态机402 具有不同的状态。图4A描绘了根据某些实施例的包含三个状态的离散事件识别器状态机400。通过 基于接收到的事件和/或子事件管理事件识别器状态机342中的状态转换,事件识别器有 效地表示出事件定义。例如,点击手势可被有效地定义为两个或可选的三个子事件的序列。 首先,触摸应当被检测,这是子事件1。例如,该触摸子事件可以是用户手指在包括具有事件 识别器状态机342的事件识别器的视图中触摸触摸敏感表面。第二,在触摸在任何给定的 方向上都基本上没有移动(例如,触摸位置的任何移动小于预定义的阈值,其可以以距离 (例如,5毫米)或者显示器上的象素数目(例如,5象素)来衡量)的情况下,可选的测量 的延迟将作为子事件2,其中该延迟足够短。最后,触摸的终止(例如,从触摸敏感表面上抬 起用户的手指)将作为子事件3。通过将事件识别器状态机342编程为基于接收这些子事 件而在状态之间转换,该事件识别器状态机342有效地表示出点击手势事件定义。离散事 件识别器状态机400是上述的被配置为识别点击手势的事件状态机342的示例性的实现。不论事件是什么类型,事件识别器状态机342(包括被实现为离散事件识别器状 态机400的事件识别器状态机)开始于事件可能状态410,其指示事件识别器状态机的初始 状态。依据接收到什么样的事件和/或子事件,事件识别器状态机342可进行到任何余下 的状态。从事件可能状态410开始,如果接收到不是手势定义中的第一事件或子事件的事 件或者子事件,离散事件识别器状态机400将转换到事件失败状态430。从事件可能状态410开始,如果接收到其本身包含手势的手势定义的事件或者子 事件,离散事件识别器状态机400转换到事件被识别状态420。然而,即使接收到的事件或 者子事件包含手势的手势定义,离散事件识别器状态机400仍然可以根据对应的事件识别 器的元数据(例如,属性)、由对应的代表确定的一个或多个值、和/或应用状态,而转换到 事件失败状态430。在某些实施例中,在转换到事件被识别状态420后,对应的事件识别器检查(441) 延迟标志(例如,延迟触摸结束标志363)。如果该延迟标志被设置(441-是),则该对应的 事件识别器延迟(44 传递事件信息,直到该延迟标志被取消。
在某些实施例中,对应的事件识别器包括等待清单351,并且该对应的事件识别器 等待该等待清单351中列出的事件识别器达到某个状态。例如,当视图包括单击手势识别 器和双击手势识别器时,单击手势识别器可以被配置为等待双击手势识别器失败。实际上, 单击手势识别器到事件被识别状态420的转换需要(或者条件是)双击手势识别器识别该 手势失败。结果,当有点击事件时,只要该点击事件不是多点击手势的一部分,单击手势识 别器就识别该点击事件。延迟和等待(44 (如果有的话)之后,对应的手势识别器传递事件至应用(443)。 在某些实施例中,事件以动作消息的形式被传递。在某些实施例中,动作消息按照动作-目 标对345来传递。在某些实施例中,对应的手势识别器激活动作-目标对345。图4B描绘了根据某些实施例的包含6个状态的连续事件识别器状态机402。根据上面讨论的,连续事件识别器状态机402开始于事件可能状态410。从事件可能状态410开始,如果接收到不是手势定义中的事件和/或子事件的开 始序列的一部分的事件(一个或多个)或子事件(一个或多个),连续事件识别器状态机 402转换到事件失败状态430。从事件可能状态410开始,如果接收到是给定手势定义的事件和/或子事件的开 始序列的一部分的事件或者子事件,连续事件识别器状态机402转换到事件开始状态412。 与离散手势识别器400相似,即使接收到的事件或者子事件包含手势定义中的事件和/或 子事件的开始序列的一部分,连续事件识别器状态机402也可以根据对应的事件识别器的 元数据(例如,属性)、由对应的代表确定的一个或多个值、和/或应用状态,而转换到事件 失败状态430。从事件开始状态412,如果接收的下一事件或子事件是中间事件或子事件,而不是 给定手势定义中的最终事件或子事件,则连续事件识别器状态机402将转换到并维持在事 件改变状态414。连续事件识别器状态机402可以维持在事件改变状态414,只要接收的事 件和/或子事件序列继续是该手势定义的一部分。在任何时间,如果连续事件识别器状态 机402处于事件改变状态414,并且事件识别器状态机402接收到不是手势定义的一部分的 事件或子事件,则它将转换到事件失败状态430,从而确定当前的事件(如果有的话)不是 与这个事件识别器(即,对应于连续事件识别器状态机402的事件识别器)相对应的事件 类型。另一方面,如果连续事件识别器状态机402处于事件开始状态412或事件改变状态 414,并且连续事件识别器状态机402接收到手势定义中的最后一个事件或子事件,则它将 转换到事件结束状态416,从而完成了成功的事件识别。在某些实施例中,每个手势识别器状态具有一个手势识别器状态值。在某些实施 例中,事件被识别状态420 (对于离散事件识别器状态机400而言)和事件结束状态416 (对 于连续事件识别器状态机402而言)具有相同的手势识别器状态值,从而,被配置为响应一 种类型的手势识别器的手势识别的软件组件也能响应其它类型的手势识别器。在处于事件开始状态412或者事件改变状态414时,当预定义的中断事件(例如, 操作系统118或者控制应用IM中预定义的,例如进入的电话呼叫)发生,连续事件识别器 状态机402转换到事件取消状态418。不论手势识别器是什么类型,每个手势识别器(例如,34 可被重置,以使得对应 的事件识别器状态机(例如,342)回到事件可能状态410。
图4C和4D描绘了根据某些实施例,代表在状态转换中的作用。在图4C和4D中, 一个或多个代表进行的动作(或作出的决定)被表示为阴影框(例如,450-456)。图4C描绘了根据某些实施例,对于离散事件识别器状态机400,代表在状态转换 中的作用。在下面讨论的例子中,状态机400对应于具有对应的代表的特定离散事件识别
ο开始于事件可能状态410,如果检测到事件或子事件,与事件识别器相对应的代表 决定事件识别器是否应接收(450)该事件或子事件。如果代表返回阻止对应的事件识别器 接收该事件或子事件的值,则对应的事件识别器不接收该事件或子事件(或者忽略该事件 或子事件)。结果是,对应的事件识别器维持在事件可能状态410。如果没有代表阻止对应 的事件识别器接收该事件或子事件,则对应的事件识别器的默认行为是接收该事件或子事 件。应当注意,一组事件识别器的代表进行的“应当接收”操作450可被用于确定哪些 事件识别器接收在触摸敏感显示器或表面上的哪些触摸。例如,在允许用户使用两个触摸 以便分别且同时重新定位(reposition)两个对象或者以便选择两个不同对象的视图中, 两个事件识别器的代表可被配置为允许一个事件识别器只接收这两个触摸中的第一个,以 及允许第二事件识别器只接收这两个触摸中的第二个。关于这两个触摸中每一个的全部信 息因此只针对由其对应的代表允许接收该触摸的事件识别器。通过使用多个事件识别器和 对应的确定由哪些事件识别器处理那些触摸的代表,更多复杂的多触摸输入也可以被识别 和处理。如果事件识别器被允许接收事件或子事件,与该事件识别器相对应的代表(或控 制应用IM或操作系统118)决定该事件识别器对事件或子事件的识别是否被已经识别出 该事件的另一个事件识别器阻止G51)。这种初级水平的阻止基于默认的独占规则,且可被 代表推翻(override)。如果事件或子事件的识别被阻止,对应的代表(或操作系统118或 控制应用124)还根据由该代表确定的一个或多个值,决定是否允许该事件识别器同时识 别该事件052)。例如,如果该事件识别器位于最初识别该事件的事件识别器的独占例外清 单353上,则该代表允许两个事件识别器同时识别。在另一个例子中,如果该事件识别器的 独占标志339没有设置,则该代表允许两个事件识别器同时识别。如果同时识别不被允许, 则该事件识别器转换到事件失败状态430。如果对应的事件识别器未被阻止051-否)识别事件或子事件,或者如果同时的 识别是被允许的(452-是),则对应的事件识别器确定该事件或子事件是否与对应的手势 定义匹配053)。如果该事件或子事件与该对应的手势定义不匹配(453-不),则该对应的 手势识别器转换到事件失败状态430。如果事件或子事件与对应的手势定义相匹配(453-是),则对应的代表(或操作 系统118或控制应用124)根据由该代表确定的一个或多个值,决定是否可以转换离开事 件可能状态410( “应当开始”4M)。如果事件识别器没被代表允许转换离开事件可能状态 410 (454-不),则对应的事件识别器被设置为事件失败状态430。如果事件识别器被允许转 换离开事件可能状态410 (454-是),则对应的数据识别器转换到事件被识别状态420。当对应的数据识别器转换到事件被识别状态420时,对应的事件识别器(或操 作系统118或控制应用124)还决定是否允许其它的事件识别器识别该事件或子事件(455)。在某些实施例中,默认是阻止所有其它事件识别器识别该相同事件,除非至少一个 事件识别器的代表(或应用)设置了允许同时识别的属性。如果与已识别出该事件或子 事件的事件识别器相对应的代表确定该代表将允许其它事件识别器识别该事件或子事件 (455-是),则该代表(或操作系统118或控制应用124)设置其它事件识别器的属性(456) 以使得它们可以同时识别该事件或子事件。如果该代表不允许其它事件识别器识别该事件 或子事件,则其它事件识别器被阻止识别该事件或子事件。在某些实施例中,在阻止某个事件识别器识别事件或子事件之前,该事件识别器 的代表还被调用(见45 以观察它是否会允许该事件或子事件的同时识别。在这些实施 例中,同时识别可以由第一事件识别器的代表或者第二事件识别器的代表启用以识别该事 件。如图4C中的452和455所示,在这些实施例中,只有当事件至少一个事件识别器的事 件定义匹配时,才进行关于是否允许同时识别的决定。上面描述的代表操作,当在应用视图(或一组同时显示的视图)所使用的一组事 件识别器的代表中实施时,可被用于定制(customize)事件识别器间的交互。这些代表可 以实施默认的独占规则的例外,否则,基于相同的接收的事件(一个或多个),该规则只允 许一个事件识别器识别手势。使用代表来实施默认的独占规则的例外并从而允许符合的事 件识别器同时进行事件识别,促进了软件应用中许多有用功能的实现。使用代表来修改和 控制事件识别器的行为,考虑到了复杂关系的紧凑表示和实施,所述复杂关系诸如是相互 排斥的多组彼此相容的手势。图4D描绘了根据某些实施例,对于连续事件识别器状态机402,代表在状态转换 中的作用。在下面讨论的例子中,状态机402对应于具有对应的代表的特定的连续事件识 别器。图4C中示出的以及以上参照图4C讨论的所有代表操作同样适用于具有对应的代表 的连续事件识别器,因此图4D中示出的代表操作与图4C具有相同的标号。唯一的不同是 状态机中一个状态的名称改变了,从状态机400中的“事件被识别” 420变为状态机402中 的“事件开始” 412。开始于事件开始状态412,如上所述的,对应的事件识别器转换到其它状态。为简 单起见,不描述从事件改变状态414到事件失败状态416的转换。以下表格用表格形式给出与上述事件识别器的状态有关的示例性的子事件序列 (例如,单击)的处理。在该例子中,子事件序列包括单击,并且视图具有两个点击手势识别 器单击手势识别器和双击手势识别器。并且在该例子中,两个手势识别器都被配置为同时 接收和识别该子事件序列。可以由分配给单击手势识别器的代表或者分配给第二点击手势 识别器的代表来允许同时的识别。
权利要求
1.一种方法,包括在具有触摸敏感表面并被配置为执行包括多个视图和软件应用的应用状态的软件应 用的电子设备处显示所述多个视图中的一个或多个视图,其中所显示的所述一个或多个视图中的相应 视图包括一个或多个相应的手势识别器,相应的手势识别器具有对应的代表;在触摸敏感表面上检测一个或多个触摸,每个触摸具有落入一个或多个显示的视图中 的触摸位置;处理所述一个或多个触摸中的相应触摸,包括 根据应用状态执行与相应的手势识别器对应的代表以获得接收触摸值; 当所述接收触摸值满足预定义的标准时,在所述相应的手势识别器中处理所述相应触 摸;以及有条件地发送与所述相应触摸对应的信息到所述软件应用;以及根据从所述相应的手 势识别器接收的与所述相应触摸对应的信息,执行所述软件应用。
2.根据权利要求1所述的方法,其中所述多个视图包括多个手势识别器;所述方法包括至少向所述多个手势识别器的一个子集分配不同的代表;并且 其中处理所述一个或多个触摸中的相应触摸包括 在所述多个手势识别器中确立一组候选手势识别器;对于每个具有所分配的代表的候选手势识别器,根据应用状态执行所分配的代表以获 得接收触摸值;根据所获得的接收触摸值,确立一个或多个接收手势识别器,所述一个或多个接收手 势识别器包括所述候选手势识别器的一个子集;以及在所述一个或多个接收手势识别器中的每个手势识别器中处理所述相应触摸。
3.根据权利要求2所述的方法,其中在所述一个或多个接收手势识别器中的每个手势 识别器中处理所述相应触摸包括在已经分配了代表的相应的接收手势识别器中,根据与 该相应的手势识别器对应的相应手势定义,处理所述相应触摸;根据应用状态执行所分配 的代表以确定一个或多个值;以及根据所述相应的手势识别器处理所述相应触摸的结果并 根据由所分配的代表确定的所述一个或多个值,有条件地发送与所述相应触摸对应的信息 到所述软件应用;以及所述方法包括根据从一个或多个所述接收手势识别器接收的与一个或多个触摸对应 的信息,执行所述软件应用。
4.根据权利要求3所述的方法,其中在相应的接收手势识别器中处理所述相应触摸包 括当检测到的触摸与相应手势定义一致时,在所分配的代表启用了对应的状态转换时在 所述相应的手势识别器中启用该对应的状态转换。
5.根据权利要求3所述的方法,其中在相应的接收手势识别器中处理所述相应触摸包 括当检测到的触摸与相应手势定义一致时,在所分配的代表启用了对应的状态转换时在 所述相应的手势识别器中有条件地启用该对应的状态转换。
6.根据权利要求3-5中任一权利要求所述的方法,其中在相应的接收手势识别器中处 理所述相应触摸包括根据分配给第二手势识别器的代表所确定的一个或多个值,在第二手势识别器中同时处理所述相应触摸。
7.根据权利要求3-5中任一权利要求所述的方法,其中在相应的接收手势识别器中处 理所述相应触摸包括根据分配给该相应的手势识别器的代表所确定的一个或多个值,在 第二手势识别器中同时处理所述相应触摸。
8.一种电子设备,包括 触摸敏感表面;用于执行软件应用的装置,所述软件应用包括多个视图和所述软件应用的应用状态; 用于显示所述多个视图中的一个或多个视图的装置,其中所显示的所述一个或多个视 图中的相应视图包括一个或多个相应的手势识别器,相应的手势识别器具有对应的代表;用于在触摸敏感表面上检测一个或多个触摸的装置,每个触摸具有落入一个或多个显 示的视图中的触摸位置;用于处理所述一个或多个触摸中的相应触摸的装置,包括 用于根据应用状态执行与相应的手势识别器对应的代表以获得接收触摸值的装置; 用于当所述接收触摸值满足预定义的标准时被启用以便在所述相应的手势识别器中 处理所述相应触摸的装置;以及用于有条件地发送与所述相应触摸对应的信息到所述软件应用的装置; 以及用于根据从所述相应的手势识别器接收的与所述相应触摸对应的信息,执行所述软件 应用的装置。
9.根据权利要求8所述的设备,其中 所述多个视图包括多个手势识别器;所述软件应用包括用于至少向所述多个手势识别器的一个子集分配不同的代表的指 令;以及用于处理所述一个或多个触摸中的相应触摸的装置包括 用于在所述多个手势识别器中确立一组候选手势识别器的装置; 用于对于每个具有所分配的代表的候选手势识别器,根据应用状态执行所分配的代表 以获得接收触摸值的装置;用于根据所获得的接收触摸值,确立一个或多个接收手势识别器的装置,所述一个或 多个接收手势识别器包括所述候选手势识别器的一个子集;以及用于在所述一个或多个接收手势识别器中的每个手势识别器中处理所述相应触摸的直ο
10.根据权利要求9所述的设备,其中用于在所述一个或多个接收手势识别器中的每个手势识别器中处理所述相应触摸的 装置包括用于在已经分配了代表的相应的接收手势识别器中,根据与该相应的手势识别器对应 的相应手势定义,处理所述相应触摸的装置,用于根据应用状态执行所分配的代表以确定一个或多个值的装置,以及 用于根据所述相应的手势识别器处理所述相应触摸的结果并根据由所分配的代表确 定的所述一个或多个值,有条件地发送与所述相应触摸对应的信息到所述软件应用的装置;以及所述软件应用被配置为根据从一个或多个所述接收手势识别器接收的与一个或多个 触摸对应的信息来执行。
11.根据权利要求10所述的设备,其中用于在相应的接收手势识别器中处理所述相应 触摸的装置包括用于当检测到的触摸与相应手势定义一致时被启用,以便在所分配的代 表启用了对应的状态转换时在所述相应的手势识别器中启用该对应的状态转换的装置。
12.根据权利要求10所述的设备,其中用于在相应的接收手势识别器中处理所述相应 触摸的装置包括用于当检测到的触摸与相应手势定义一致时被启用,以便在所分配的代 表启用了对应的状态转换时在所述相应的手势识别器中有条件地启用该对应的状态转换 的装置。
13.根据权利要求10-12中任一权利要求所述的设备,其中用于在相应的接收手势识 别器中处理所述相应触摸的装置包括用于根据分配给第二手势识别器的代表所确定的一 个或多个值,在第二手势识别器中同时处理所述相应触摸的装置。
14.根据权利要求10-12中任一权利要求所述的设备,其中用于在相应的接收手势识 别器中处理所述相应触摸的装置包括用于根据分配给该相应的手势识别器的代表所确定 的一个或多个值,在第二手势识别器中同时处理所述相应触摸的装置。
15.一种电子设备,包括触摸敏感表面单元,被配置为接收一个或多个触摸;以及 处理单元,耦合到所述触摸敏感表面单元,所述处理单元被配置为 执行软件应用,所述软件应用包括多个视图和所述软件应用的应用状态; 启用所述多个视图中的一个或多个视图的显示,其中所显示的所述一个或多个视图中 的相应视图包括一个或多个相应的手势识别器,相应的手势识别器具有对应的代表;检测在所述触摸敏感表面单元上接收到的一个或多个触摸,每个触摸具有落入一个或 多个显示的视图中的触摸位置;处理所述一个或多个触摸中的相应触摸,其中对于所述相应触摸,所述处理单元被配 置为根据应用状态执行与相应的手势识别器对应的代表以获得接收触摸值; 当所述接收触摸值满足预定义的标准时,在所述相应的手势识别器中处理所述相应触 摸;以及有条件地发送与所述相应触摸对应的信息到所述软件应用;以及根据从所述相应的手势识别器接收的与所述相应触摸对应的信息,执行所述软件应用。
16.根据权利要求15所述的设备,其中 所述多个视图包括多个手势识别器;所述处理单元被配置为至少向所述多个手势识别器的一个子集分配不同的代表;以及 通过以下步骤处理所述一个或多个触摸中的相应触摸 在所述多个手势识别器中确立一组候选手势识别器;对于每个具有所分配的代表的候选手势识别器,根据应用状态执行所分配的代表以获得接收触摸值;根据所获得的接收触摸值,确立一个或多个接收手势识别器,所述一个或多个接收手 势识别器包括所述候选手势识别器的一个子集;以及在所述一个或多个接收手势识别器中 的每个手势识别器中处理所述相应触摸。
17.根据权利要求16所述的设备,其中 所述处理单元被配置为通过以下步骤在所述一个或多个接收手势识别器中的每个手势识别器中处理所述相 应触摸在已经分配了代表的相应的接收手势识别器中,根据与该相应的手势识别器对应的相 应手势定义,处理所述相应触摸;根据应用状态执行所分配的代表以确定一个或多个值;以及根据所述相应的手势识别 器处理所述相应触摸的结果并根据由所分配的代表确定的所述一个或多个值,有条件地发 送与所述相应触摸对应的信息到所述软件应用;以及根据从一个或多个所述接收手势识别器接收的与一个或多个触摸对应的信息,执行所 述软件应用。
18.根据权利要求17所述的设备,其中所述处理单元被配置为通过以下步骤在相应的 接收手势识别器中处理所述相应触摸当检测到的触摸与相应手势定义一致时,在所分配 的代表启用了对应的状态转换时在所述相应的手势识别器中有条件地启用该对应的状态 转换。
19.根据权利要求17-18中任一权利要求所述的设备,其中所述处理单元被配置为通 过以下步骤在相应的接收手势识别器中处理所述相应触摸根据分配给第二手势识别器的 代表所确定的一个或多个值,在第二手势识别器中同时处理所述相应触摸。
20.根据权利要求17-18中任一权利要求所述的设备,其中所述处理单元被配置为通 过以下步骤在相应的接收手势识别器中处理所述相应触摸根据分配给该相应的手势识别 器的代表所确定的一个或多个值,在第二手势识别器中同时处理所述相应触摸。
21.一种设备,包括用于在具有触摸敏感表面并被配置为执行包括多个视图和软件应用的应用状态的软 件应用的电子设备处,显示所述多个视图中的一个或多个视图的装置,其中所显示的所述 一个或多个视图中的相应视图包括一个或多个相应的手势识别器,相应的手势识别器具有 对应的代表;用于在触摸敏感表面上检测一个或多个触摸,每个触摸具有落入一个或多个显示的视 图中的触摸位置的装置;用于处理所述一个或多个触摸中的相应触摸的装置,包括 用于根据应用状态执行与相应的手势识别器对应的代表以获得接收触摸值的装置; 用于当所述接收触摸值满足预定义的标准时,在所述相应的手势识别器中处理所述相 应触摸的装置;以及用于有条件地发送与所述相应触摸对应的信息到所述软件应用的装置; 以及用于根据从所述相应的手势识别器接收的与所述相应触摸对应的信息,执行所述软件应用的装置。
22.根据权利要求21所述的设备,其中所述多个视图包括多个手势识别器;所述设备包括用于至少向所述多个手势识别器的一个子集分配不同的代表的装置;并且其中用于处理所述一个或多个触摸中的相应触摸的装置包括用于在所述多个手势识别器中确立一组候选手势识别器的装置;用于对于每个具有所分配的代表的候选手势识别器,根据应用状态执行所分配的代表 以获得接收触摸值的装置;用于根据所获得的接收触摸值,确立一个或多个接收手势识别器,所述一个或多个接 收手势识别器包括所述候选手势识别器的一个子集的装置;以及用于在所述一个或多个接收手势识别器中的每个手势识别器中处理所述相应触摸的直ο
23.根据权利要求22所述的设备,其中用于在所述一个或多个接收手势识别器中的每个手势识别器中处理所述相应触 摸的装置包括用于在已经分配了代表的相应的接收手势识别器中,根据与该相应的手势识别器对应 的相应手势定义,处理所述相应触摸的装置;用于根据应用状态执行所分配的代表以确定一个或多个值的装置;以及用于根据所述 相应的手势识别器处理所述相应触摸的结果并根据由所分配的代表确定的所述一个或多 个值,有条件地发送与所述相应触摸对应的信息到所述软件应用的装置;以及所述设备包括用于根据从一个或多个所述接收手势识别器接收的与一个或多个触摸 对应的信息,执行所述软件应用的装置。
24.根据权利要求23所述的设备,其中用于在相应的接收手势识别器中处理所述相应 触摸的装置包括用于当检测到的触摸与相应手势定义一致时,在所分配的代表启用了对 应的状态转换时在所述相应的手势识别器中启用该对应的状态转换的装置。
25.根据权利要求23所述的设备,其中用于在相应的接收手势识别器中处理所述相应 触摸的装置包括用于当检测到的触摸与相应手势定义一致时,在所分配的代表启用了对 应的状态转换时在所述相应的手势识别器中有条件地启用该对应的状态转换的装置。
26.根据权利要求23-25中任一权利要求所述的设备,其中用于在相应的接收手势识 别器中处理所述相应触摸的装置包括用于根据分配给第二手势识别器的代表所确定的一 个或多个值,在第二手势识别器中同时处理所述相应触摸的装置。
27.根据权利要求23-25中任一权利要求所述的设备,其中用于在相应的接收手势识 别器中处理所述相应触摸的装置包括用于根据分配给该相应的手势识别器的代表所确定 的一个或多个值,在第二手势识别器中同时处理所述相应触摸的装置。
全文摘要
软件应用包括多个视图和应用状态。本方法包括显示一个或多个视图,其中相应视图包括相应的手势识别器,其具有与该相应的手势识别器相对应的代表。本方法包括检测一个或多个事件以及使用相应的手势识别器处理该一个或多个事件中的相应事件。处理该相应事件包括根据与该相应的手势识别器对应的相应手势定义在该相应的手势识别器中处理该相应事件,执行对应的代表以确定一个或多个值,以及根据由该代表确定的一个或多个值,有条件地发送与该相应事件对应的信息到该软件应用。该方法包括根据从该相应的手势识别器接收的信息执行该软件应用。
文档编号G06F3/041GK102135858SQ20111006318
公开日2011年7月27日 申请日期2011年1月26日 优先权日2010年1月26日
发明者B·A·摩尔, J·C·比弗, J·H·沙法尔 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1