《可实例化的手势对象.pdf》由会员分享,可在线阅读,更多相关《可实例化的手势对象.pdf(21页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104246659 A (43)申请公布日 2014.12.24 CN 104246659 A (21)申请号 201380018255.4 (22)申请日 2013.03.15 13/436,877 2012.03.31 US G06F 3/01(2006.01) G06F 3/03(2006.01) G06F 9/44(2006.01) (71)申请人 微软公司 地址 美国华盛顿州 (72)发明人 J. S. 罗西 J. E. 罗杰斯 M. A. 拉科夫 R. 拉马纳桑 S. H. 赖特 C. 钱迪拉姆 (74)专利代理机构 中国专利代理(香港)有限公 司 720。
2、01 代理人 李舒 汪扬 (54) 发明名称 可实例化的手势对象 (57) 摘要 可实例化的手势对象技术被描述, 在所述可 实例化的手势对象技术中本机手势功能性使用基 于脚本的识别接口被抽象 (abstract) 给应用。手 势对象可以在使用动态脚本语言所编程的应用的 指示下针对不同的交互上下文被实例化。手势对 象能够被配置成对手势识别和对应识别的手势适 用于的内容的目标元素指定要考虑的特定触摸接 触和/或其它输入。 在创建之后, 手势对象代表应 用管理手势处理操作, 包括 : 用本机手势系统来 创建识别器 ; 馈送输入数据以用于处理 ; 以及将 原始手势数据变换成适于应用和 / 或目标元素的。
3、 格式。 因此, 基于脚本的应用可以使用手势对象来 卸下与手势识别相关联的处理任务并且利用本机 手势功能性。 (30)优先权数据 (85)PCT国际申请进入国家阶段日 2014.09.30 (86)PCT国际申请的申请数据 PCT/US2013/031809 2013.03.15 (87)PCT国际申请的公布数据 WO2013/148293 EN 2013.10.03 (51)Int.Cl. 权利要求书 1 页 说明书 13 页 附图 6 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书13页 附图6页 (10)申请公布号 CN 104246659 A C。
4、N 104246659 A 1/1 页 2 1. 一种方法, 包括 : 针对应用实例化手势对象以便通过由计算设备提供的本机手势功能性来操纵针对应 用的手势识别 ; 使手势对象与由应用规定的交互输入和目标元素相关联 ; 代表应用创建识别器以便通过由计算设备提供的本机手势功能性来便利于手势识 别 ; 将针对交互输入的交互输入数据馈送给识别器以便使能基于交互输入数据对手势的 识别 ; 从识别器获得指示所识别的手势的手势事件消息 ; 代表应用处理由手势事件消息描述的原始手势数据 ; 以及 依照针对应用的内容模型将具有处理过的手势数据的手势事件激发到所关联的目标 元素。 2. 如权利要求 1 中所描述的。
5、方法, 其中手势对象是由计算设备提供的底层本机手势 功能性的基于脚本的抽象。 3. 如权利要求 1 中所描述的方法, 其中应用使用动态脚本语言被编程。 4. 如权利要求 1 中所描述的方法, 其中所述方法经由再现引擎所暴露的接口而被执 行, 所述再现引擎被应用采用来为应用再现内容。 5. 如权利要求 1 中所描述的方法, 其中交互输入包括被应用于与计算设备相关联的 触摸屏的触摸接触。 6. 如权利要求 1 中所描述的方法, 其中处理包括将原始手势数据变换为由应用规定 的坐标空间。 7. 如权利要求 1 中所描述的方法, 其中识别器被配置成跟踪由手势对象指定的交互 输入并且将交互输入映射到受支持。
6、的手势的库以便识别特定手势何时发生。 8. 如权利要求 1 中所描述的方法, 其中手势对象被配置成在由识别器所使用的系统 格式与可被应用理解的基于脚本的格式之间转化针对所识别的手势的数据。 9. 如权利要求 1 中所描述的方法, 其中交互输入被配置为对手势对象的钉扎引用, 只 要交互输入保持活动, 所述钉扎引用就阻止手势对象收集它本身。 10. 如权利要求 1 中所描述的方法, 其中激发到目标元素的手势事件包含标识手势对 象的信息以便在对手势对象的引用丢失时使得能够继续访问手势对象。 权 利 要 求 书 CN 104246659 A 2 1/13 页 3 可实例化的手势对象 背景技术 0001。
7、 作为用户与内容交互的方式被计算设备支持的手势的数目和类型日益增加。 用户 可能期望受支持的手势在用户体验中自始至终可用于各种不同的应用和内容交互。然而, 传统上, 受本机支持的手势功能性可能需要复杂的配置, 这使对于一些开发者来说将手势 并入他们的应用变得困难或成本高昂。附加地, 现有系统中的本机手势功能性可能是有限 的或者完全地不可用于采用动态脚本语言 (诸如 JavaScript 和 HTML) 的 “现代” 应用和 / 或 内容。 发明内容 0002 可实例化的手势对象技术被描述, 在所述可实例化的手势对象技术中本机手势功 能性使用基于脚本的识别接口被抽象给应用。 手势对象可以在使用动。
8、态脚本语言所编程的 应用的指示下针对不同的交互上下文被实例化。 手势对象能够被配置成对手势识别和对应 识别的手势适用于的内容的目标元素指定要考虑的特定触摸接触和 / 或其它输入。在创建 之后, 手势对象代表应用管理手势处理操作, 包括 : 用本机手势系统来创建识别器 ; 馈送输 入数据以用于处理 ; 以及将原始手势数据变换成适于应用和/或目标元素的格式。 因此, 基 于脚本的应用可以使用手势对象来卸下与手势识别相关联的处理任务并且利用本机手势 功能性。 0003 本发明内容被提供来以简化的形式引入在下面在具体实施方式中被进一步描述 的构思的选择。本发明内容不旨在识别所要求保护的主题的关键特征或。
9、必要特征, 它也不 旨在被用来帮助确定所要求保护的主题的范围。 附图说明 0004 参考附图对具体描述进行描述。在图中, 附图标记的最左边的 (一个或多个) 数字 标识附图标记首次出现在其中的图。 相同的附图标记在本描述和图中的不同实例中的使用 可以指示类似的或相同的项。 0005 图 1 是可操作来采用本文中所描述的可实例化的手势对象技术的示例性环境的 图示。 0006 图 2 描绘了场景, 所述场景描绘了依照一个或多个实施例的示例性手势对象的细 节。 0007 图 3 描绘了其中多个手势对象被用于手势识别的示例性场景。 0008 图 4 是描绘了依照一个或多个实施例的实例化手势对象的示例性。
10、过程的流程图。 0009 图 5 是描绘了依照一个或多个实施例的在其中应用注册手势识别的另一示例性 过程的流程图。 0010 图 6 图示了能够在一个或多个实施例中被采用来实施本文中所描述的技术的方 面的示例性系统的各种构件。 说 明 书 CN 104246659 A 3 2/13 页 4 具体实施方式 0011 概述 传统上, 由平台提供的受本机支持的手势功能性可能需要复杂的配置, 这使对于一些 开发者来说将手势并入他们的应用变得困难或成本高昂。附加地, 现有平台中的本机手势 功能性可能不可用于采用动态脚本语言 (诸如 JavaScript 和 HTML) 的应用。 0012 可实例化的手势。
11、对象技术被描述, 在所述可实例化的手势对象技术中本机手势功 能性使用基于脚本的识别接口被抽象给应用。 手势对象可以在使用动态脚本语言所编程的 应用的指示下针对不同的交互上下文被实例化。 手势对象能够被配置成对手势识别和对应 识别的手势适用于的内容的目标元素指定要考虑的特定触摸接触和 / 或其它输入。在创建 之后, 手势对象代表应用管理手势处理操作, 包括 : 用本机手势系统来创建识别器 ; 馈送输 入数据以用于处理 ; 以及将原始手势数据变换成适于应用和/或目标元素的格式。 因此, 基 于脚本的应用可以使用手势对象来卸下与手势识别相关联的处理任务并且利用本机手势 功能性。 0013 在以下讨论。
12、中, 示例性环境首先被描述, 所述示例性环境可操作来采用本文中所 描述的可实例化的手势对象技术。 然后, 示例性场景和过程被描述, 所述示例性场景和过程 可以在示例性环境中以及在其它环境中被采用。因此, 示例性场景和过程不限于示例性环 境, 并且示例性环境可以并入除本文中所描述的例子之外的场景和过程。 最后, 示例性计算 系统被描述, 所述示例性计算系统能够在一个或多个实施例中被采用来实施可实例化的手 势对象技术。 0014 操作环境 图 1 是可操作来采用本文中所描述的技术的示例性实施方案中的环境 100 的图示。所 图示的环境 100 包括经由网络 106 被通信地耦合的计算设备 102 。
13、和 web 服务 104。计算设 备 102 和 web 服务 104 每个都可以通过各式各样的计算设备被实施。 0015 例如, 计算设备102可以被配置为能够通过网络106进行通信的计算机, 诸如台式 计算机、 移动站、 娱乐器具、 平板电脑或平板设备、 表面计算设备、 被通信地耦合到显示设备 的机顶盒、 移动通信设备 (例如, 无线电话) 、 游戏控制台等等。计算设备 102 可以被配置为 采用各种处理系统的任何适合的计算系统和 / 或设备, 其的一些附加的例子关于图 6 的示 例性系统被讨论。 0016 计算设备102被进一步图示为包括操作系统108。 一般地说, 操作系统108被配置。
14、 成将计算设备102的底层功能性抽象给可在计算设备102上执行的应用110。 例如, 操作系 统 108 可以抽象计算设备 102 的处理、 存储器、 网络和 / 或显示功能性, 使得应用 110 可以 在不用知道这个底层功能性 “如何” 被实施的情况下被编写。应用 110 例如可以将要被显 示设备再现和显示的数据提供给操作系统108, 而不用理解这个再现将如何被执行。 操作系 统 108 可以提供应用 110 可以调用其来利用系统特征的各种服务、 接口以及功能性。用来 将各式各样的功能性提供给计算设备 102 的各种应用 110 被设想到, 其包括但不限于例如 用来访问和再现网页和 / 或其。
15、它内容的浏览器、 办公生产力应用、 电子邮件客户端、 游戏、 多媒体管理程序、 设备管理软件以及社交联网应用。 0017 操作系统 108 可以进一步为不同种类的应用提供服务、 接口以及功能性, 所述不 同种类的应用包括可以使用静态地编译的语言 (诸如 C+、 C#) 编写的 “旧” 应用和可以使 说 明 书 CN 104246659 A 4 3/13 页 5 用可以在运行时被动态地编译的动态脚本语言编写的 “现代” 应用, 所述动态脚本语言诸如 JavaScript、 超文本标记语言修订版 5 和 / 或级联样式表 (HTML5/CSS) 以及可扩展应用标 记语言 (XAML) 。现代应用可。
16、以通过由操作系统 108 支持的一个或多个运行时平台来操作, 所述运行时平台被配置成为对应的应用提供相应的执行环境。 运行时平台为兼容应用提供 共同的一组特征、 例行程序以及功能, 从而从应用开发卸下共同任务的编码。因此, 运行时 平台能够便利于在对用于应用的动态脚本的很少或没有改变的情况下和 / 或在没有重新 编译的情况下应用到不同种类的系统的可移植性。运行时平台的例子包括例如 JAVATM运 行时环境 (JRE) 、 AdobeTM FlashTM、 MicrosoftTM .NET 框架、 Microsoft SilverlightTM以及 WinRTTM。 0018 在所描绘的例子中,。
17、 计算设备 102 包括或者利用显示设备 112, 所述显示设备 112 可以被配置成包括触摸屏 / 触摸数字转换器以便使能触摸屏和手势功能性。计算设备 102 可以因此包括显示驱动器、 手势模块 114 和 / 或可操作来提供通过显示设备 112 的触摸能 力所使能的触摸屏和手势功能性的其它模块。因此, 计算设备可以被配置成识别使对应的 操作被执行的输入和手势。 0019 例如, 手势模块 114 可以被实施为如图 1 中所描绘的操作系统 108 的构件。手势 模块114表示用于手势的支持和识别的本机功能性 (例如, 本机手势系统) , 其可以被使得经 由操作系统 108 可被应用 110 。
18、访问。例如, 操作系统 108 可以提供可操作来调用手势识别 功能性的一个或多个应用编程接口 (API) 。 特别地, 手势模块114可以被配置成识别触摸输 入, 诸如用户的手的如在使用触摸屏功能性的计算设备 102 的显示设备 112 上或者接近于 使用触摸屏功能性的计算设备 102 的显示设备 112 的手指。各种不同类型的手势可以被计 算设备识别, 所述手势通过例子而非限制包括, 根据单个类型的输入 (例如, 触摸手势) 被识 别的手势以及牵涉多个类型的输入的手势。例如, 其能够被利用来识别单手指手势和边框 手势、 多手指 / 同手手势与边框手势、 和 / 或多手指 / 不同手手势与边框。
19、手势。进一步地, 手势模块 114 可以被配置成检测和区分手势、 触摸输入、 基于相机的输入、 触针输入以及其 它不同类型的输入。 而且, 从不同的源获得的各种种类的输入 (包括通过设备 (例如, 输入设 备) 的触摸屏、 鼠标、 触摸板、 相机、 软件或硬件键盘和 / 或硬件键所获得的输入) 可以被相 结合地使用来引起对应的设备操作。 0020 计算设备102被进一步描绘为包括再现引擎116。 再现引擎116表示计算设备102 的可操作来操纵针对内容的显示的各种内容再现操作的构件。例如, 再现引擎 116 可以处 理对应的标记语言内容并且输出格式化的内容以用于显示在显示设备 112 上。在至。
20、少一些 实施例中, 再现引擎116被配置为浏览器的便利于网页和其它资源118的再现的构件, 所述 网页和其它资源 118 可以通过网络 106 从 web 服务 104 获得。资源 118 能够包括典型地由 一个或多个服务提供商通过网络提供的内容和 / 或服务的任何适合的组合。再现引擎 116 还可以被实施为独立应用或操作系统构件。计算设备的浏览器和其它应用 110 可以调用再 现引擎 116 来操纵针对应用的对应的内容项的再现。例如, 采用动态脚本语言的各种种类 的 “现代” 应用可以使用再现引擎 116 的功能性以用于处理和显示对应的页面、 文档、 媒体、 图像、 表单、 用户界面和 / 。
21、或其它类型的应用内容。 0021 为了实施可实例化的手势对象技术, 再现引擎 116 可以被配置成包括或者否则利 用识别接口 120。识别接口 120 表示可以经由再现引擎 116 而被暴露给应用 110 以便使能 说 明 书 CN 104246659 A 5 4/13 页 6 与用于手势的支持和识别的本机功能性交互的功能性, 所述本机功能性由手势模块 114 表 示。传统上, 手势经由手势模块 114 的直接配置可能是复杂的和资源密集的。而且, 现有系 统中的本机手势功能性可能是有限的或者完全地不可用于采用动态脚本语言的 “现代” 应 用。因此, 为了产生利用本机手势功能性的应用, 应用开发。
22、者在传统上维持经由手势模块 114 提供的复杂配置管理选项的具体知识和 / 或可能不得不执行复杂的和 / 或静态的编程 以便直接地从应用代码调用功能性。如在本文中详细地描述的, 识别接口 120 可以通过代 表应用执行各种手势配置、 处理以及处理操作来简化应用开发。因此, 识别接口 120 从应用 卸下针对手势识别的各种处理和处理操作, 这使应用开发者从不得不为这些操作编写代码 和 / 或具有手势配置选项的具体知识中解脱。 0022 在一个方法中, 应用 110 可以调用识别接口 120 来实例化用于各种交互的手势对 象 122。手势对象 122 然后代表应用经由手势模块 114 自动地操纵手。
23、势识别操作。例如, 手 势对象122可以被配置成代表应用与手势模块114进行通信以便为不同的交互创建适当的 识别器 124 并且被配置成将输入数据馈送给识别器 124 以用于手势处理。手势对象 122 一 般地说是底层识别器和本机手势功能性的基于脚本的表示以及用于底层识别器和本机手 势功能性的操控的接口。手势对象 122 和对应的识别器 124 可以针对每个特定交互上下文 被创建。如本文中所使用的交互上下文指的是被手势模块 114 跟踪以用于手势识别的特定 输入或一组输入 (例如, 触摸接触、 触针输入、 指针输入、 相机输入等) 。 0023 识别器 124 是为本机手势系统创建的构件 / 。
24、对象, 其被配置成跟踪针对不同的交 互上下文的输入, 将输入映射到受支持的手势的库, 检测特定手势何时发生, 并且针对手势 识别激发 (fi re) 适当的事件。因此, 识别器 124 表示在系统级操纵针对在不同的上下文中 的手势识别的处理的功能性。识别器 124 理解如何针对一组输入使用指定的系统格式和协 议来调用本机手势功能性。识别器 124 可以被配置成检测各种受支持的手势, 所述受支持 的手势的例子包括但不限于轻叩、 保持、 旋转、 定标 (scale) 、 缩放、 摇摄以及转化手势。 0024 手势对象 122 代表应用便利了对由识别器 124 所生成的原始手势事件的处理。手 势对象。
25、 122 可以便利于信息在由识别器使用的系统格式与可由使用动态脚本语言所编程 的应用理解的基于脚本的格式之间的转化。这可以包括检测由识别器激发的事件、 格式化 针对特定应用的手势信息 / 事件、 将原始手势数据变换成与交互上下文 / 手势对象相关联 的应用和 / 或元素的坐标空间等等, 其细节能够在以下讨论中被找到。 0025 已经描述了示例性操作环境, 现在考虑在一个或多个实施例中讨论有关可实例化 的手势对象的一些示例性实施方案细节。 0026 可实例化的手势对象细节 为了进一步地图示, 现考虑图 2, 其在 200 处一般地描绘了示例性场景, 其中识别接口 120 被调用来实例化手势对象 。
26、122 以便代表应用 110 操纵手势识别。通过再现引擎 116 (或 者以其它方式) 针对应用所被再现的内容可以根据对应的内容模型 202 被表示。内容模型 202 是文档、 页面或其它应用内容的结构的层次表示。内容模型使得消费内容的应用能够 引用并且操控被包含在该内容中的各种元素 204。元素 204 可以包括例如与内容一起被包 括的图像、 控件、 文本、 菜单、 图形等等。在一个特定例子中, 文档对象模型 (DOM) 可以被应 用采用。DOM 是用于表示针对浏览器 (或其它应用) 的页面中的元素并且与其交互的标准约 定。页面的 DOM 能够被浏览器构建并且用来引用、 修改、 应用效果, 。
27、和 / 或否则操控被包含 说 明 书 CN 104246659 A 6 5/13 页 7 在网页中的元素204。 针对其它应用的内容也可以依照DOM被配置成表示对应的页面、 文件 和 / 或文档的元素 204。其它种类的内容模型 202 也可以在一个或多个实施例中被采用。 0027 如图 2 中所表示的, 应用可以与识别接口 120 交互以便指示识别接口 120 为一个 或多个交互上下文创建手势对象 122。手势对象 122 然后操作来创建并且包装与计算设备 102 的本机手势功能性相关联的对应的识别器 124。手势对象将输入数据馈送给经包装的 识别器并且接收基于经由识别器和/或手势模块114。
28、所执行的处理从识别器返回的原始手 势识别数据 / 事件。手势对象 122 还可以基于所对应的内容模型 202 被映射到特定元素 204。以这种方式, 应用能够显式地规定针对手势对象的手势处理的结果将适用于的元素。 而且, 出于手势应用的目的, 应用可能能将不同项的合集规定为元素。这与传统技术不同, 在所述传统技术中对单独的项使用点击测试或其它类似的选择技术被启发式地推理手势 适用于的元素。 0028 手势对象 特别地, 手势对象 122 在图 2 中被图示为包括交互输入 206、 目标元素 208 以及定制属 性 210, 其可以被应用设置来为给定交互上下文生成对象。交互输入 206 (还被称。
29、为指针) 是 诸如触摸接触、 指针定位 / 移动、 触针输入、 鼠标输入和 / 或针对交互上下文被跟踪的其它 输入这样的输入。手势对象 122 可以被配置成包括一个或多个单独的输入 / 接触, 例如, 指 针。手势对象可以包括来自同一输入源的相同类型的多个指针和 / 或来自不同输入源的不 同类型的指针的组合。将输入 / 接触包括在手势对象 122 中使这些输入 / 接触被考虑用于 手势检测。目标元素 208 表示在手势对象 122 被映射到的、 内容模型 202 内的元素。例如, 在内容的 DOM 表示中的元素可以被规定为针对手势对象的目标。单独的元素可以被定义为 包含正被再现的用户界面、 页。
30、面或文档的一个或多个单独的构件/项。 为手势对象122指定 目标元素 208 使关于手势对象 122 被生成的手势事件被显式地导向所指定的元素。可以为 手势对象指定单个目标元素或多个目标元素以便使能各种不同的交互场景 / 手势。而且, 因为一个或多个元素预先是已知的, 所以经由手势模块 114 和 / 或识别器 124 获得的原始 手势数据能够针对特定元素被格式化。因此, 手势对象可以将格式化的手势数据供应给在 应用级处具有很少或没有附加的处理的情况下可以被应用于对应的元素的应用。附加地, 定制属性 210 可以被提供来使能手势对象行为的扩展和定制并且便利于生存期管理, 其细 节稍后在这个文档。
31、中被讨论。 0029 在至少一些实施例中, 手势对象 122 被用基于脚本的编程语言 (诸如 JavaScript) 实施为开发者可得到的内置对象类型。手势对象 122 包括交互输入 206 和目标元素 208 以 作为对象的属性。开发者可以对对象使用方法来设置属性并且使识别接口 120 为给定交互 上下文来实例化适当的对象。这些方法使得开发者 / 应用能够将触摸接触和 / 或其它输入 添加到对象并且能够在 DOM 或另一内容模型中规定目标元素。开发者还可以经由暴露的方 法以类似的方式设置定制属性210。 在一个方法中, 识别接口120可以被配置为应用编程接 口, 所述应用编程接口暴露了用来为。
32、手势识别定义和创建手势对象 122 的方法。 0030 通过例子而非限制, 以下伪代码表示适合于所描述的技术的方法和手势对象的仅 一个基于脚本的实施方案 : var g = new Gesture() / 创建手势对象 g.target = element / 规定接收手势事件的元素 说 明 书 CN 104246659 A 7 6/13 页 8 g.addPointer(pointerld) / 将接触 / 输入添加到对象 / 识别器 g.removePointer(pointerId) / 移除接触 / 输入 g.stop() / 终止手势处理 按照前文, 手势对象可以使用被识别接口 12。
33、0 支持的内置对象类型而被创建。元素和 交互输入 (例如, 接触 / 输入) 可以被规定为所创建的对象的属性。接触 / 输入可以通过移 除方法而被移除, 使得接触 / 输入不再被认为是手势处理的一部分。停止方法使能按需终 止处理。停止方法从对象移除接触 / 输入, 终止处理, 激发针对手势的结束事件, 并且重置 对象 / 识别器以便为另一手势做准备。否则, 对象可以持续并且依照在下面所描述的生存 期管理技术自动地自身清理它。 0031 因此, 为了针对给定交互上下文启动手势事件, 应用可以调用识别接口 120 并且 规定目标元素和一个或多个交互输入。这通过识别接口 120 引起对应的手势对象 。
34、122 的创 建。针对手势识别的大量处理然后经由手势对象 122 代表应用被操纵, 所述针对手势识别 的大量处理包括将输入数据供应给识别器、 处理手势事件消息、 变换原始手势数据等等。 实 际上, 应用向识别接口 120 注册以得到关于相对于选择的目标元素的特定输入 / 接触的手 势更新 (例如, 交互上下文) , 并且然后可以仅仅等待识别接口120返回针对交互上下文的相 干信息。例如, 识别接口 120 可以为元素供应手势事件 / 数据, 所述手势事件 / 数据已经相 对于对应的元素被变换为针对应用内容的 DOM 中的 DOM 事件, 或者变换为适于由应用所采 用的另一内容模型的类似的事件。。
35、 0032 考虑例子, 其中用户用他们的食指的接触来选择图像并且跨越显示器拖曳图像。 在初始选择图像时, 应用可以操作来通过识别接口 120 在图像作为目标元素 208 并且食指 触摸作为交互输入206的情况下形成对应的手势对象122。 现在, 应用本身不再需要监控手 指位置中的改变 (例如, 拖曳) 或者不再需要将这样的信息供应给识别系统。替代地, 在这个 场景中实例化的手势对象122代表应用自动地跟踪交互输入206并且将有关接触位置中的 改变的信息馈送给识别器 124, 所述识别器 124 可以检测所对应的拖曳手势。进一步地, 手 势对象 122 和 / 或识别接口 120 同样处理由识别。
36、器 124 生成的手势事件消息, 并且可以依 照由应用所采用的内容模型将这些事件消息供应给应用。 0033 坐标变换 如上面简要地讨论的, 手势处理的结果可以被预处理以便针对目标元素具体地变换结 果。为手势对象 122 指定目标元素 208 有效地使系统元素知晓。这样, 识别接口 120 被配 置成将手势检测结果变换成与手势所针对的元素相关联的坐标空间。典型地, 手势结果可 以被表达为先前的状态与新的状态之间的增量或者表达为相对于初始状态的累计值。 如果 针对手势的原始增量或累积数据被供应给应用, 则应用必须做针对特定元素对原始增量进 行变换的工作。 例如, 如果元素先前已被旋转, 则应用必须。
37、确定如何相对于预先存在的旋转 来应用手势。在不是元素知晓的传统系统中, 开发者除了在他们的应用代码中操纵这些情 形别无选择, 这使开发复杂化。另一方面, 按照本文中所描述的技术来为手势对象 122 显式 地定义目标元素 208 使得识别接口 120 能够跟踪元素的状态。元素状态可以基于应用的手 势而被更新, 并且经更新的状态被用来在为该元素定义的坐标空间中计算针对后续识别的 手势 (或手势改变) 的增量。因此, 每当手势被检测到时, 可以代表应用将由手势模块 114 提 供的原始增量信息变换成适当的坐标空间。 应用因此可能能在很少或没有附加的处理的情 说 明 书 CN 104246659 A 。
38、8 7/13 页 9 况下直接地对所对应的元素应用结果。 0034 在至少一些实施例中, 应用还可以显式地规定手势数据被变换到的特定坐标空 间。为了这样做, 应用可以设置目标元素以及还设置被配置成规定坐标空间的手势对象的 另一指定的和 / 或定制的属性, 所述坐标空间可以或者可以不对应于目标元素。这使得应 用能够选择坐标空间, 所述坐标空间可以不同于手势事件所被激发至的目标元素的坐标空 间。例如, 手势数据可以被变换成页面 / 文档的全局坐标空间, 而不是目标元素的坐标空 间。 更进一步地, 应用能够为手势对象定义任意或全局坐标空间变换, 使得对应的手势数据 像在由应用选择的已定义坐标空间中那。
39、样被变换和报告。 0035 生存期管理 识别接口 120 和手势对象 122 可以被进一步配置成实施受管理生存期方案, 所述受管 理生存期方案使能对象的再使用、 保持访问/引用具有活动交互输入206的对象的能力、 以 及控制自动收集在适当的时间清除对象。一般地说, JavaScript 和其它基于脚本的对象被 创建为具有范围 (例如, 功能的或全局的) 并且可以持续长达所关联的范围的持续时间。范 围可以涉及特定功能 / 模块或者达页面或应用实例的生存期。对象然后可以识别它何时不 再被使用并且自动地收集它本身 (例如, 移除它本身和/或以其它方式允许它本身被删除) 。 0036 为了防止仍然具有。
40、活动交互输入 206(例如, 接触 / 输入) 的手势对象 122 自动地 收集 / 移除它们本身, 针对对象的交互输入 206 可以被配置为钉扎 (pinning) 引用。只要 交互输入 206 保持活动, 钉扎引用就使对象保持活跃。即使对象的范围不再是有效的 (例 如, 定义对象的范围的功能/模块已终止) , 情况也可以是这样的。 针对对象的目标元素208 同样可以充当使相应的对象保持活跃直到目标元素被清除为止的钉扎引用。因此, 只要驱 动手势的交互输入206持续, 手势对象122就可以持续, 并且手势事件可以继续经由手势对 象 122 被供应。当交互输入206 被移除 (例如, 用户从显。
41、示器移除他们的手指) 时, 手势对象 122 可以继续识别到它们不再在使用中并且自动地收集它本身。这在应用不必管理代表它 本身所被创建的手势对象 122 的情况下发生。 0037 为了使能在生存期期间对手势对象 122 的继续访问, 由识别接口供应的手势事件 可以包括标识并且提供对对应的手势对象的访问的信息。 因此, 即使对对象的引用丢失了, 标识被包含在事件中的属性的对象也可以被用来访问对应的手势对象。附加地, 定制属性 210可以被设置成携带定制信息以及甚至功能。 例如, 每当事件被对象激发时调用的特定功 能可以经由定制属性 210 被规定。在另一例子中, 属性可以被配置成将当前与给定对象。
42、相 关联的接触 / 输入的列表传达给应用。各种其它例子也被设想到。 0038 如所提到的那样, 手势对象 122 也可以被再使用。一旦对象被创建并且与交互输 入206和目标元素208相关联, 对象就可以像上面所讨论的那样持续。 当与对象相关联的交 互输入 206 是活动的时, 目标元素 208 保持不变。附加的交互输入 206 可以被添加到对象。 交互输入 206 还可以在驱动手势的接触 / 输入完成 (例如, 手指被抬起) 时被显式地 (使用移 除方法) 或自动地移除。因此, 为手势对象 122 考虑的特定接触 / 输入可以在对象的生存期 期间改变。一旦所有交互输入 206 被移除, 对象就。
43、可以自动地重置。对象还可以响应于如 上面所描述的显式停止而重置。随后, 被应用于相同的元素的不同的交互输入 206 可以被 添加到手势对象 122 以便再使用该对象。手势对象 122 还能够被与不同的元素相关联, 只 要该对象不被积极地用于不同的元素 (例如, 手势在进行中) 。 说 明 书 CN 104246659 A 9 8/13 页 10 0039 手势对象的另一特征是应用无缝地操纵惯性处理的能力。 惯性处理被用来模拟当 用户界面元素通过手势被操控时的惯性以便在用户抬起他们的手指或者以其它方式结束 驱动手势的输入之后提供自然的交互效果。 因此, 对于在用户交互结束之后的时间段, 操控 的。
44、元素可以自然逐渐停止, 从边界弹回, 继续滚动等等。 惯性可以取决于触发手势的用户交 互的速率 (例如, 用户摇摄、 缩放或者旋转有多快或多慢) 。惯性处理基于该速率继续持续一 段时间并且然后可以逐渐停止。惯性处理可以通过在用于交互的最后接触 / 输入结束时设 置定时器来实现。当定时器正在运行时, 通过惯性处理所生成的手势事件可以继续被供应 给应用, 好像事件是通过直接交互生成的。通过惯性处理所生成的手势事件可以与通过直 接交互所生成的手势事件被以相同的方式导向应用和 / 或目标元素。 0040 应用可以被配置成检测从直接交互到惯性处理的模式改变何时发生。例如, 模式 标识符可以被包括在手势事。
45、件中和 / 或通知消息可以在针对手势的接触结束时被发送。因 此, 应用可以选择性地使用或者忽视通过惯性处理所被生成的手势事件。 例如, 应用可以简 单地忽视与惯性处理相关联的事件, 使得当直接用户操控结束时元素停止移动 / 反应。此 外或替换地, 应用能够调用上面所描述的停止方法 “g.stop()” 来重置手势, 这切断了惯性 处理以及手势事件到应用的递送。 0041 图 3 在 300 处一般地描绘了示例性交互场景, 所述示例性交互场景图示了本文中 所描述的可实例化的手势对象技术的附加方面。 特别地, 图3的场景描绘了在计算设备102 的用户界面中显示的第一元素 302 和第二元素 304。
46、 的操控。在这个例子中, 元素是不同车 辆的图像。使用相应的字母 A 至 D 标记的多个交互输入 306 也被图示。在这个例子中, 交 互输入 306 对应于用户的手与显示设备 112 的触摸接触。对于这个场景, 不同的交互上下 文可以针对与用户手的每一个的交互被定义。因此, 不同的手势对象 122 可以针对手的每 一个以先前所描述的方式被实例化。 0042 如图 3 中所描绘的, 与用户的左手相对应的手势对象 122 被配置成跟踪接触 A 和 B, 并且被与作为目标元素的第一元素 302 相关联。与用户的右手相对应的另一手势对象 122 被配置成跟踪接触 C 和 D, 并且被与作为目标元素的。
47、第二元素 304 相关联。不同的手势 对象 122 是同时活动的并且可以独立于彼此被管理 / 处理。例如, 接触 A 和 B 的捏可以被 识别为对第一元素 302 引起放大的缩放手势, 而同时接触 D 被识别为应用于第二元素 304 的选择和保持手势。在这个例子中, 接触 C 可以连同第二元素 304 一起被考虑, 但是可以不 对所识别的选择和保持手势做出贡献。 0043 使用多个不同的手势对象 122 来控制不同的交互同时使能各种不同的多触摸输 入和多手势场景。通过对应的手势对象 122 跟踪到的各种不同的上下文 / 手势可以是同时 活动的。每个对象可以被用来跟踪一个或多个单独的接触 / 输。
48、入。附加地, 单独的接触可 以被同时添加到多个手势对象, 并且因此可以被同时考虑用于多个手势的检测。 0044 尽管与不同的元素相关联的对象在图 3 中被描绘, 但是跟踪不同的手势的多个不 同的手势对象 122 可以同时被与相同的元素相关联。例如, 考虑图 3 中所描绘的双手在其 中被应用于第一元素 302 的例子。不同的手势对象 122 仍然可以在这个例子中被产生。然 而, 在这里针对不同的对象的目标元素可以是相同的元素。不同的手势对象 122 可以被配 置成在相同的元素上驱动不同动作。 例如, 左手可以执行缩放手势, 而右手对相同的元素执 行旋转手势。 说 明 书 CN 104246659。
49、 A 10 9/13 页 11 0045 在另一例子中, 左手可以被配置成粗略地使元素旋转, 而右手执行元素的精细旋 转。这些不同的手势可以经由相应的手势对象 122 而被检测到并且同时被应用于第一元素 302。通过使用一个或多个手势对象 122 所使能的多触摸和多手势场景的各种其它例子也 被设想到, 包括其中不同的输入源 (例如, 触摸、 触针、 相机、 鼠标等) 和 / 或多个输入源的组 合 (例如, 触摸和鼠标、 触针和相机、 触摸和相机等) 被采用的场景。 0046 已经描述了有关可实例化的手势对象的一些细节, 现考虑依照一个或多个实施例 的一些示例性过程。 0047 示例性过程 以下讨论描述了可以利用先前描述的系统和设备来实施的可实例化的手势对象技术。 诸过程中的每一个的方面可以用硬件、 固件、 软件或其组合来加以实施。 过程被示出为一组 块, 其规定由一个或多个设备执行的操作并且未必限于由相应的块示出的用于执行操作的 次序。在以下讨论的部分中, 可以分别对操作环境 100 以及图 2 和 3 的示例性场景 200 和 300 做出参考。。