CN106575192B - 跨多个内容的交互的计算机化动态拆分 - Google Patents

跨多个内容的交互的计算机化动态拆分 Download PDF

Info

Publication number
CN106575192B
CN106575192B CN201580046524.7A CN201580046524A CN106575192B CN 106575192 B CN106575192 B CN 106575192B CN 201580046524 A CN201580046524 A CN 201580046524A CN 106575192 B CN106575192 B CN 106575192B
Authority
CN
China
Prior art keywords
content
content item
interactive
input
manipulation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201580046524.7A
Other languages
English (en)
Other versions
CN106575192A (zh
Inventor
N.波罗克
L.库巴西克
P.B.弗雷林
N.布伦
K.梅农
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106575192A publication Critical patent/CN106575192A/zh
Application granted granted Critical
Publication of CN106575192B publication Critical patent/CN106575192B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

用户接口(UI)操纵可以通过消除与不同应用相关联或由其生成的可注意到的过程边界来执行。本文中的技术描述跨多个内容片段动态拆分操纵而不考虑用户接口操纵的各种类型和/或状态和/或不考虑多个内容片段是否与不同的各个过程相关联。在至少一个示例中,本文所描述的技术使得能够实现具有UI上的内容的复杂配置和/或具有与多于一个应用相关联的多个内容片段的快速、响应性且无缝的UI操纵。此外,本文所描述的技术还使得UI上的内容能够“粘附”到用户输入操纵或随用户输入操纵移动,使得内容看起来保持与用户输入操纵直接接触。

Description

跨多个内容的交互的计算机化动态拆分
背景技术
手势和其它用户接口操纵准许用户操纵用户接口内的内容。这样的操纵包括平移通过文章、图像的放大或缩小、旋转内容片段等。当前技术使得能够实现处理操纵的专用线程中的用户接口上的内容的处理操纵,而不考虑由生成内容的应用运行的过程。然而,这样的处置典型地受限于涉及由单个过程生成或与单个应用相关联的内容的用户接口操纵。作为结果,当前技术导致欠佳的用户体验。
发明内容
描述了用于跨多个内容片段拆分交互的技术。在至少一个示例中,用户接口交互可以通过消除与不同应用相关联或由其生成的可注意到的过程边界来执行。在各种示例中,本文中的技术描述跨多个内容片段动态拆分操纵而不考虑用户接口操纵的各种类型和/或状态和/或不考虑多个内容片段是否与不同的各个过程相关联。
在至少一个示例中,本文中的技术描述收集关于可用于用户接口(UI)上的操纵的内容的信息以存储在交互式内容储存中。响应于在用户接口上接收到用户输入,可以标识接收到其上的用户输入的各个内容片段。在至少一个示例中,本文中的技术描述标识交互式内容储存中的各个内容片段以确定可用于各个内容片段的操纵。UI上的各个内容片段的操纵可以至少部分地基于可用于各个内容片段的操纵而执行。
此外,在至少一个示例中,本文中所描述的技术包括接收涉及操纵与至少一个应用相关联的视觉内容的两个或更多片段的用户输入并且至少部分地基于用户输入和交互式内容的收集而确定可以在用户接口上操纵的视觉内容的片段。另外,本文所描述的技术可以包括至少部分地基于交互式内容的收集而确定视觉内容的哪些片段能够执行操纵并且在UI上呈现视觉内容的两个或更多片段的操纵结果。
本文中的技术还描述了用于实现以上描述的方法的系统。在至少一个示例中,系统可以包括交互式内容模块,其用于存储和定义与一个或多个应用相关联的内容片段之间的交互式关系,以及手势瞄准模块,其配置用于确定针对由与多个内容片段相关联的用户输入导致的处置运动的内容的特定片段。
提供该概述来以简化的形式引入以下在具体实施方式中进一步描述的概念的选择。该概述不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在用于限制所要求保护的主题的范围。
附图说明
参照附图来描述具体实施方式。在附图中,参考标号的(一个或多个)最左数位标识参考标号首次出现在的附图。不同图中的相同参考标号指示类似或相同的项。
图1图示了其中可以体现用于跨多个片段内容的操纵的动态拆分的异步处置的技术的示例环境。
图2图示了示例操作环境,其包括可以实现在各种环境中以用于跨多个内容片段的操纵的动态拆分的异步处置的各种设备和组件。
图3图示了用于跨多个内容片段的操纵的动态拆分的异步处置的示例操作环境。
图4图示了用于操纵用户接口(UI)上的内容的片段的过程。
图5图示了用于呈现UI上的操纵的结果的过程。
图6图示了用于遍历交互式内容的全局树的过程。
图7图示了用于遍历交互式内容的全局树的过程。
具体实施方式
本文描述了用于优化涉及呈现在UI中的内容的用户接口(UI)操纵的技术。手势和其它UI操纵(例如键盘敲击、使用鼠标作为用户输入进行选择等)准许用户操纵应用接口内的内容。这样的操纵包括平移通过文章、图像的放大或缩小、旋转内容片段等。当前技术使得能够实现从执行以其他方式与应用相关联的过程的线程分离的专用线程中的UI操纵的执行。然而,这样的执行典型地受限于涉及单个过程中的内容的UI操纵。当前技术导致欠佳的用户体验,特别是在UI操纵涉及以复杂配置呈现或由不同过程生成的内容时。例如,如果用户希望与由不同应用生成的用户接口上的内容的两个或更多片段交互,用户可能受限于与内容片段之一相关联的单个交互。作为结果,用户可能不能够同时移动两个内容片段。本文所描述的技术通过消除与不同应用相关联或由其生成的可注意到的过程边界来改进UI操纵。
本文中的技术描述跨多个内容片段动态拆分操纵而不考虑UI操纵的各种类型和/或不考虑多个内容片段是否与不同过程相关联。在至少一个示例中,本文所描述的技术使得能够实现具有UI上的内容的复杂配置和/或具有与多于一个应用相关联的多个内容片段的快速、响应性且无缝的UI操纵。此外,本文所描述的技术还使得UI上的内容能够粘附到用户输入操纵或随用户输入操纵移动,使得内容看起来保持与用户输入操纵直接接触。换言之,用户可以在设备的显示器上移动或布置内容并且本文所描述的技术使得内容能够在显示器上看起来就像其粘附到用户的手指和/或其它用户输入设备。
用户操纵可以包括众多用户输入和用于与用户设备的UI上的内容片段交互的输入设备。例如,用户可以使用鼠标在可选控件上点击和/或做出基于鼠标的手势。作为附加示例,用户可以使用一只或两只手上的一个或多个手指以通过触摸屏显示器做出手势。诸如触笔或笔之类的可替换的或附加的输入设备可以用于在触摸屏显示器上或通过触摸屏显示器做出手势。语音激活可以是用于提供用户操纵的附加或可替换的手段。用户操纵的另一示例可以包括由一个或多个相机或其它图像捕获设备捕获到的三个维度中的物体和/或个体的移动或运动。出于该讨论的目的,手势通常被用作指向UI操纵的示例用户输入;然而,同样或替代性地可以使用非手势用户输入并且其包括在用户操纵的范围内。
在一些示例中,用户输入和/或输入设备的组合可以用于操纵设备UI上的内容片段。例如,用户可以通过将两个手指放置在UI上并且使用笔设备在UI上绘画而同时两个手指仍旧在UI上来与UI交互。附加组合,诸如触摸输入和语音激活的组合,也包括在用户操纵的范围内。此外,用户输入和/或输入设备可以跨多个用户设备与多个UI交互。
内容,如本文所描述的,可以包括呈现在UI上的交互式内容。交互式内容可以包括内容片段,其可以呈现在UI上并且可以经由UI上的用户输入来选择和/或交互。交互式内容可以由用于运行各种功能的应用生成。在至少一个示例中,交互式内容可以作为视觉内容来呈现。例如,内容可以包括文本文档、地图、游戏片段、图像数据、视频数据等。每一个内容片段可以具有边界,其在确定响应于UI操纵的内容中的位置方面是有用的。边界可以包括内容的总体大小、内容的当前分辨率、能够被显示的内容的分辨率、文档中的页数、每一页的大小、总地图大小等。
如以上所讨论的,当前技术使得能够实现从执行以其他方式与应用相关联的过程的线程分离的专用线程中的UI操纵的执行。本文所描述的技术还移动在从运行与应用相关联的其它过程的线程分离的线程上的内容。然而,不同于当前技术,本文所描述的技术可以移动由从运行与多个应用相关联的其它过程的线程分离的线程上的多个应用生成的内容。这样的异步处理通过提供跨可以由多个应用生成的视觉内容片段的快速、响应性且无缝的UI操纵来优化与UI操纵相关联的用户操纵。
说明性环境
以下描述的环境包括仅一个示例并且不旨在将以下描述的系统的应用限制到任何一个特定操作环境。可以在不脱离所要求保护的主题的精神和范围的情况下,使用其它环境。本文所描述的各种类型的处理可以实现在任何数目的环境中,包括但不限于,独立计算系统、网络环境(例如局域网或广域网)、对等网络环境、分布式计算(例如云计算)环境等。
图1图示了其中可以体现用于跨多个内容片段的操纵的动态拆分的异步处置的技术的示例环境100。在至少一些示例中,处置可以是指执行操纵、运行操纵、接收操纵和/或处理操纵。环境100包括计算设备102。在至少一个示例中,计算设备102可以包括(一个或多个)处理单元104和计算可读介质106。计算机可读介质106可以包括促进与用户设备102的交互的组件。例如,计算机可读介质106可以至少包括操纵器模块108,其可以经由至少一个处理单元104实现为计算机可读指令、各种数据结构等等以将设备配置成运行指令并且执行用于处置跨多个内容片段的操纵的动态拆分的操作。执行这些操作的功能可以包括在多个设备或单个设备中。此外,计算机可读介质106可以包括与各种操作相关联的(一个或多个)应用110。(一个或多个)应用110可以在与计算设备102相关联的UI上再现与各种操作相关联的内容。
计算设备102在触摸屏UI 118上呈现一个或多个应用接口116A和116B。触摸屏UI118可以配置用于接收经由诸如用户120的一个或多个手指和/或配置用于提供触摸输入的笔或其它触笔之类的用户输入的用户操纵。在触笔的情况下,触笔可以是有源和/或无源的。如以上所描述的,用户操纵可以包括各种其它类型的用户输入和输入设备。用户输入可以指向触摸屏UI 118上的应用110(例如与应用接口116A和116B相关联的应用)的UI操纵。在至少一个示例中,如示例环境100中所示,用户输入通过箭头122示出并且指向操纵应用接口116A和116B。用户输入120/122被示出为涉及通过快速平移通过显示在应用接口116A和/或应用接口116B中的内容来操纵UI接口的上划、单手指手势。
在至少一个示例中,环境100可以包括(一个或多个)服务器和/或其它机器112和(一个或多个)有线和/或无线通信网络114,其使得能够实现计算设备102与一个或多个服务器和/或(一个或多个)其它机器112之间的通信。在一些示例中,(一个或多个)服务器和/或其它机器112可以包括一个或多个计算设备,其操作在集群或其它分组配置中以共享资源、平衡负载、增加性能、提供失效备援支持或冗余性,或用于其它目的,其使得能够实现计算设备102与一个或多个服务器和/或其它机器112之间的通信。(一个或多个)通信网络114可以是本领域中已知的任何类型的网络(诸如因特网并且如以下所描述的)。
图2图示了示例操作环境200,其包括可以实现在各种环境中的用于跨多个内容片段的操纵的动态拆分的异步处置的各种设备和组件。在至少一个示例中,本文所描述的技术可以远程执行(例如由服务器、云等执行)。在一些示例中,本文所描述的技术可以在用户设备(诸如计算设备102)上本地执行。
示例操作环境200可以包括服务提供商202、一个或多个网络204、一个或多个用户206和与一个或多个用户206相关联的一个或多个用户设备208。如所示,服务提供商202可以包括一个或多个服务器和/或其它机器210,其中的任何一个可以包括一个或多个处理单元212和计算机可读介质214。(一个或多个)服务器和/或其它机器210可以是与图1中所示的相同的一个或多个服务器和/或其它机器112。在各种基于web服务或云的实施例中,服务提供商202可以异步地执行跨显示在用户设备(诸如用户设备208或计算设备102中的任何一个)上的多个内容片段的操纵的动态拆分。
在一些实施例中,(一个或多个)网络204可以是本领域中已知的任何类型的网络(诸如因特网)。(一个或多个)网络204可以与如图1中所示的(一个或多个)网络114相同。而且,用户设备208可以以任何方式通信耦合到(一个或多个)网络204,诸如通过全局或局部有线或无线连接(例如局域网(LAN)、内联网等)。(一个或多个)网络204可以促进(一个或多个)服务器和/或其它机器210和与用户206相关联的用户设备208之间的通信。
在一些实施例中,用户206可以操作对应用户设备208以执行与用户设备208相关联的各种功能,用户设备可以包括一个或多个处理单元、计算机可读存储介质和显示器。另外,用户206可以利用用户设备208来经由一个或多个网络204与其他用户206通信。
(一个或多个)用户设备208可以表示多种多样的设备类型并且不限于任何特定类型的设备。(一个或多个)用户设备208的示例可以包括但不限于静止计算机、移动计算机、嵌入式计算机或其组合。示例静止计算机可以包括台式计算机、网络站、个人计算机、瘦客户端、终端、游戏控制台、个人视频记录器(PVR)、机顶盒等。示例移动计算机可以包括膝上型计算机、平板计算机、可穿戴计算机、植入计算设备、电信设备、汽车计算机、个人数据助理(PDA)、便携式游戏设备、媒体播放器、相机等。示例嵌入式计算机可以包括网络使能电视、用于包括在计算设备中的集成组件、器具、微控制器、数字信号处理器或任何其它种类的处理设备等。计算设备102可以是以上描述的(一个或多个)用户设备208中的任何一个。
服务提供商202可以是任何实体、(一个或多个)服务器、平台等,服务提供商可以利用来自通信平台(包括在线通信平台)的特征的集合,以测量通信平台的用户之间的交互动态性。而且,并且如所示,服务提供商202可以包括一个或多个服务器和/或其它机器210,其他机器可以包括一个或多个处理单元212和计算机可读介质214(诸如存储器)。一个或多个服务器和/或其它机器210可以包括设备。
示例支持场景,其中可以包括在一个或多个服务器和/或其它机器210中的(一个或多个)设备可以包括操作在集群或其它分组配置中以共享资源、平衡负载、增加性能、提供失效备援支持或冗余性或用于其它目的的一个或多个计算设备。包括在一个或多个服务器和/或其它机器210中的(一个或多个)设备可以属于各种种类或类别的设备,诸如传统服务器类型设备、台式计算机类型设备、移动设备、专用类型设备、嵌入式类型设备和/或可穿戴类型设备。因此,尽管被图示为服务器计算机,但是(一个或多个)设备可以包括多种多样的设备类型并且不限于特定类型的设备。包括在一个或多个服务器和/或其它机器210中的(一个或多个)设备可以表示但不限于,台式计算机、服务器计算机、web服务器计算机、个人计算机、移动计算机、膝上型计算机、平板计算机、可穿戴计算机、植入计算设备、电信设备、汽车计算机、网络使能电视、瘦客户端、终端、个人数据助理(PDA)、游戏控制台、游戏设备、工作站、媒体播放器、个人视频记录器(PVR)、机顶盒、相机、用于包括在计算设备中的集成组件、器具或任何其它种类的计算设备。
可以包括在一个或多个服务器和/或其它机器210中的(一个或多个)设备可以包括任何类型的计算设备,其具有可操作连接到(诸如经由总线)计算机可读介质214的一个或多个处理单元212,总线在一些实例中可以包括以下中的一个或多个:系统总线、数据总线、地址总线、PCI总线、Mini-PCI总线和任何种类的局部、外围和/或独立总线。存储在计算机可读介质214上的可执行指令可以包括例如操纵器模块216和其它模块、程序或应用,其由(一个或多个)处理单元212可加载和可执行。可替换地或此外,本文所描述的功能可以至少部分地由一个或多个硬件逻辑组件或加速器执行。例如并且没有限制,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统的系统(SOC)、复杂可编程逻辑器件(CPLD)等。例如,加速器可以表示混合设备,诸如来自包括嵌入在PFGA构造中的CPU进程的ZYLEX或ALTERA的一个。
可以包括在一个或多个服务器和/或其它机器210中的(一个或多个)设备还可以包括耦合到总线的一个或多个输入/输出(I/O)接口以允许(一个或多个)设备与诸如用户输入外围设备(例如键盘、鼠标、笔、游戏控制器、语音输入设备、触摸输入设备、手势输入设备等)和/或输出外围设备(例如显示器、打印机、音频扬声器、触感输出等)之类的其它设备通信。可以包括在一个或多个服务器和/或其它机器210中的设备还可以包括耦合到总线的一个或多个网络接口以使得能够实现计算设备与诸如(一个或多个)用户设备208之类的其它联网设备之间的通信。这样的(一个或多个)网络接口可以包括一个或多个网络接口控制器(NIC)或其它类型的收发器设备以通过网络发送和接收通信。为了简化,从所图示的设备省略一些组件。
(一个或多个)处理单元212可以表示例如CPU类型处理单元、GPU类型处理单元、现场可编程门阵列(FPGA)、另一类数字信号处理器(DSP)或其它硬件逻辑组件(其在一些实例中可以由CPU驱动)。例如并且没有限制,可以使用的说明性类型的硬件逻辑组件包括专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统的系统(SOC)、复杂可编程逻辑器件(CPLD)等。在各种实施例中,(一个或多个)处理单元212可以运行一个或多个模块和/或过程以使(一个或多个)服务器和/或其它机器210执行如以上所阐述的和在以下公开中进一步详细解释的各种功能。此外,(一个或多个)处理单元212中的每一个可以拥有其自身的本地存储器,其还可以存储程序模块、程序数据和/或一个或多个操作系统。
在至少一个配置中,(一个或多个)服务器和/或其它机器210的计算机可读介质214可以包括促进服务提供商202与用户206之间的交互。例如,计算机可读介质214可以至少包括操纵器模块304,其可以经由至少一个处理单元212而实现为计算机可读指令、各种数据结构等以将设备配置成运行指令和执行操作以用于处置跨多个内容片段的操纵的动态划分。执行这些操作的功能可以包括在多个设备或单个设备中。
此外计算机可读介质214可以包括与各种操作相关联的(一个或多个)应用218。(一个或多个)应用218可以在与(一个或多个)用户设备208相关联的UI上再现与各种操作相关联的内容。内容可以包括视觉内容,并且在至少一些示例中,用户206可以经由用户设备208上的UI操纵与内容交互。
取决于一个或多个服务器和/或其它机器210的确切配置和类型,计算机可读介质(例如计算机可读介质106和计算机可读介质214)可以包括计算机存储介质和/或通信介质。计算机存储介质可以包括易失性存储器、非易失性存储器和/或其它持久和/或辅助计算机存储介质、可移除和非可移除计算机存储介质,其以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的任何方法或技术来实现。计算机存储器是计算机存储介质的示例。因此,计算机存储介质包括有形和/或物理形式的介质,其包括在设备和/或作为设备的部分或在设备外部的硬件组件中,包括但不限于随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、相变存储器(PRAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、致密盘只读存储器(CD-ROM)、数字多功能盘(DVD)、光卡或其它光学存储介质、微型硬盘驱动器、存储器卡、磁盒、磁带、磁盘储存、磁卡或其它磁性存储设备或介质、固态存储器设备、存储阵列、网络附连储存、存储区域网络、托管的计算机储存或任何其它储存存储器、存储设备和/或可以用于存储和维护信息以供计算设备访问的存储介质。
相比之下,通信介质包括计算机可读指令、数据结构、程序模块或经调制的数据信号中的其它数据(诸如载波或其它传输机制)。如本文所定义的,计算机存储介质不包括通信介质。
图3图示了用于跨多个内容片段的操纵的动态拆分异步处置的示例操作环境300。示例操作环境300示出计算机可读介质300,其可以更加详细地表示图1的计算机可读介质106和/或图2的计算机可读介质214。在至少一个示例中,如上所述,计算机可读介质300可以包括操纵器模块304(例如操纵器模块108和/或操纵器模块216)和一个或多个应用306(例如一个或多个应用110和/或一个或多个应用218)。在至少一个示例中,操纵器模块304包括用于跨多个内容片段异步处置UI操纵的各种模块和组件。在至少一个示例中,操纵器模块304包括可以存储交互式内容的全局树310的交互式内容模块308、手势瞄准模块312、行为处置模块314和结果模块316。
交互式内容模块308可以存储关于UI及其元件的信息。例如,交互式内容模块308可以存储关于可用于用户操纵的内容和与在UI上呈现的特定内容片段相关联的交互式性质的信息。在一些示例中,交互式内容模块308可以存储关于可用于用户操纵的内容和与呈现在多个UI上的特定内容片段相关联的交互式性质的信息。在至少一个示例中,交互式内容模块308可以在由节点构成的树中存储交互式内容。树的根节点可以表示UI窗口,并且树的子节点可以表示UI窗口内的应用窗口。在至少一个示例中,表示应用(例如(一个或多个)应用218)的子节点可以被视为父代节点。每一个父代节点可以包含表示与应用(例如(一个或多个)应用218)相关联的视觉内容片段的子节点。在至少一个示例中,与父代节点相关联的子节点可以被视为子代节点。
交互式内容模块308还可以存储存在于系统(例如200,300)内的视觉内容(visual)。在至少一个示例中,视觉内容可以存储在视觉内容树中。在一些示例中,维护在交互式内容树中的交互式内容和视觉内容树可以集成为交互式内容的全局树310。作为集成的结果,交互式内容的全局树310可以将每一个操纵关联(tie)到视觉内容中的一个或多个,从而允许交互式内容模块308理解视觉内容中的每一个到其它视觉内容之间的关系和/或父代和子代关系。交互式内容的全局树310可以用于确定每一个内容片段可以如何与彼此交互。交互式内容的全局树310可以存储在交互式内容模块308中。交互式内容的全局树310可以用于确定哪些内容片段包括在给定操纵中,减少接收用户输入与实行操纵之间的响应时间和/或跨过程边界的适应运动。
在至少一个示例中,交互式内容的全局树310可以允许与给定操纵相关联的内容片段基于内容的集体(collective)配置来确定。在至少一些示例中,交互式内容的全局树310包括运行在用户设备208上的所有过程中的应用中的每一个。交互式内容的全局树310将交互式性质关联到如在UI上所看到的各个内容片段,而不考虑哪个过程生成每一个内容片段。相应地,UI操纵可以在由不同过程生成的内容片段之间转移。这使得能够实现UI上的内容的平滑、不间断的UI操纵,使得与UI交互的用户206不意识到各种内容片段由不同的过程生成。
交互式内容模块308可以使用视觉内容树,以用于在接收到指向UI操纵的用户输入之后执行初始命中测试。基于初始命中测试,操纵器模块可以确定几何形状或点值是否落在内容片段的经再现的内容内以实行期望的UI操纵。命中测试可以对照非UI元件(诸如视觉内容或图形对象)和/或多个对象(诸如重叠对象)而执行。交互式内容模块308可以基于命中测试的结果而确定交互式内容链。在至少一个示例中,如果存在多个用户输入,各个交互式内容链可以结合在一起以建立代表牵涉在多个用户输入操纵中的交互式内容的树。交互式内容模块308可以比较作为结果得到的(resulting)交互式内容树与交互式内容的全局树310,以标识潜在地可以基于用户输入来操纵的各个内容片段。当用户206与内容片段交互时,所维护的交互式内容的全局树310可以标识各个内容片段可以如何被操纵或可以如何移动。维护内容片段可以如何交互减少之前在在先系统中经历的决定作出延迟。
在至少一个示例中,用户206可以提供指向新的和/或不同的UI操纵的附加输入。在一些示例中,用户206可以在进行中的UI操纵期间提供附加输入。通过维护交互式内容的全局树310,当用户206一提供附加输入,交互式内容模块308就可以实行UI操纵。在至少一个示例中,交互式内容模块308可以使用视觉内容树(visual tree)以执行附加命中测试,以标识哪些几何形状或点值落在视觉内容的经再现的内容内以实行期望的UI操纵。在执行命中测试之后,交互式内容模块308可以实行由用户输入所期望的UI操纵。
手势瞄准模块312存储用于确定哪个内容片段可以接收和/或执行由影响多个内容片段的UI操纵创建的特定运动的手势瞄准逻辑。为了确定哪个内容片段接收和/或执行运动,手势瞄准模块312考虑由特定内容片段支持的运动、内容的变换和/或其它内容片段的运动。此外,手势瞄准逻辑包括针对内容片段如何执行链接反应或者当子代内容片段到达边界并且作为结果可以操纵父代内容片段时,父代内容片段与子代内容片段之间的交互的算法和策略规则。
在至少一个示例中,手势瞄准模块312遍历存储在交互式内容模块308中的交互式内容的全局树310。手势瞄准模块312遍历交互式内容的全局树310,在与特定内容片段相关联的父代节点处开始并且继续到与特定内容片段相关联的子代节点以确定可能用于特定内容片段的操纵类型。此外,手势瞄准模块312可以标识父代节点在相关联的子代节点上设置的约束或子代节点在相关联的父代节点上设置的约束。
然后,手势瞄准模块312在相反方向上遍历交互式内容的全局树310,在子代节点处开始并且继续到父代节点。每一个子代节点标识子代节点或其父代节点可以执行的操纵,并且取决于子代节点是否支持操纵,子代节点可以向由内容片段支持的坐标空间投射操纵。如果从子代节点禁止操纵,手势瞄准模块312可以继续到将操纵投射到由内容片段支持的坐标空间。然而,如果操纵由子代节点准许,手势瞄准模块312可以从投射到坐标空间的过程过滤这样的操纵。任何不受支持(或不被执行)的操纵可以被投射到所支持的操纵的坐标空间中。如果作为结果得到的UI操纵牵涉由该内容支持的操纵并且操纵基于父代节点和子代节点限制而未被禁止,则内容执行运动并且在继续遍历树的其余部分之前将操纵标记为被执行。以上描述的反向遍历使得子代节点能够在父代节点之前处理操纵并且还允许不同节点执行不同操纵。
在至少一个示例中,手势瞄准模块312可以确定当用户206经由多个用户输入和/或用户设备与父代内容片段和子代内容片段交互时可以如何分配用户输入。手势瞄准模块312可以确定父代内容片段和子代内容片段如何共享各个用户输入。在至少一个示例中,父代内容片段可以执行所有操纵。在其它示例中,父代内容片段可以准许子代内容片段执行操纵。在一些示例中,父代内容片段可以准许子代内容片段过滤对其它内容片段的操纵以执行操纵。手势瞄准模块312可以确定当用户206经由多个用户输入和/或用户设备基于手势瞄准模块312遍历交互式内容的全局树310而与父代内容片段和子代内容片段交互时可以如何分配用户输入。
在至少一个示例中,用户206可以输入指向两个内容片段的对角线手势。在至少一个示例中,与一个内容片段相关联的一个子代节点可能限于竖直移动并且与另一内容片段相关联的另一子代节点可能限于水平移动。作为交互式内容的全局树310的反向遍历的结果,与限于竖直移动的内容片段相关联的子代节点可以执行竖直运动并且可以将水平运动投射到由内容片段支持的坐标空间。与限于水平移动的另一内容片段相关联的另一子代节点可以执行水平移动。作为结果,两个内容片段可以在其相应方向上移动使得内容看起来粘附到用户输入。
手势瞄准模块312可以一起移动多个内容片段,而不管多个用户输入存在于内容还是内容的不同旋转上。在至少一个示例中,如果用户206经由触摸输入与用户设备208交互并且单个手指在子代内容片段上并且单个手指在父代内容片段上,手势瞄准模块312可以移动子代和父代二者以保持内容处于用户206的手指下方。如果父代内容片段内部的子代内容片段的一个旋转,手势瞄准模块312可以生成父代内容片段上的附加运动以保持子代内容片段在用户206的手指正下方。
行为处置模块314可以利用多个准则来配置要在内容上执行的操作。在至少一个示例中,行为处置模块314可以考虑手势类型、当前用户输入状态(例如有源或无源)和/或由其它内容片段执行的运动。手势类型可以包括诸如拍击、保持、平移和/或缩放之类的手势。平移和缩放手势的方向可以单独配置。例如,内容片段可以配置成接受向右平移,但是可能被禁止向左平移。行为处置模块314还可以考虑当前用户输入状态,或者跨任何类型的输入模态(诸如触摸、笔、鼠标、移动等)的用户输入状态。在至少一个示例中,如果用户206经由触摸输入与用户设备208交互,行为处置模块314可以基于与屏幕接触的手指数目来提供不同的手势配置。在另一示例中,如果用户206经由笔输入与用户设备208交互,行为处置模块314可以基于圆管按钮的状态或笔的取向而将输入路由至不同内容片段。
行为处置模块314还可以考虑由其它内容片段执行的运动。例如,父代内容片段可以基于父代内容片段正在执行的操纵而禁止子代内容片段执行操纵。例如,如果用户206正在读取用户设备208上的长文档,与长文档相关联的内容可以禁止其它内容片段在除了竖直之外的任何方向上平移。此外,父代内容片段可以基于由子代内容片段正在执行的操纵而禁止自身执行操纵。在至少一个示例中,如果用户206正在与为用户206提供多个拼图片段的应用交互,并且用户206将他或她的手指放置在UI上以移动两个或更多拼图片段,父代内容片段可以被禁止缩放操纵,其否则将由用户206提供与父代内容片段相关联的多个用户输入而引起。在另一示例中,应用(例如用于混合音乐的唱片骑师应用)可以向用户206提供多个滑块控件。为了与滑块控件交互,用户206可以同时平移多个滑块。一般地,多个用户输入将导致缩放功能。然而,父代内容片段可以禁止缩放操纵并且替代性地准许子代内容片段同时平移而不实行缩放功能。
行为处置模块314还允许在UI操纵期间对可交互内容的配置的动态改变。在至少一个实施例中,行为处置模块314在接收到用户输入之前声明用于内容的配置并且配置可以至少部分地基于交互式内容的全局树310。动态改变使得行为处置模块314能够在UI操纵期间修改运动或操纵的方向。例如,如果内容片段移动直到其到达边界,行为处置模块314可以基于交互式内容的全局树310而决定如何重配置内容。
在至少一个示例中,内容可以积累其在单个操纵期间已经执行的任何运动。作为结果得到的运动可以影响与父代内容片段和子代内容片段相关联的链接交互。如以上所描述的,链接描述当子代内容片段到达边界并且作为结果,父代内容片段可以移动时,父代内容片段与子代内容片段之间的交互。在至少一个示例中,用户206可以通过在特定方向上平移子代内容片段来与子代内容片段交互。当子代内容片段到达边界时,子代内容片段可以被约束在UI上任何进一步的移动,并且父代内容片段可以继续移动。与父代内容片段移动在的方向相反的方向上的任何平移可以被约束,直到父代内容片段返回到其原始位置。也就是说,子代内容片段可以不在相反方向上移动,直到其积累在相反方向上返回的运动。
一旦手势瞄准模块312和行为处置模块314确定了用于执行用户操纵的内容片段以及将如何操纵内容片段,结果模块316可以向目标目的地递送结果以操纵UI上的各个内容片段。目标目的地可以是应用或内容片段。在至少一个示例中,手势瞄准模块312和行为处置模块314可以处理特定用户输入,并且结果模块316可以返回目标目的地或者可以推迟目标决定,直到经过预定时间段。在至少一个示例中,结果模块316可以包括操纵管理模块318和用于解释决定并且将输入路由至目标目的地的较低级输入栈。目标目的地可以是任何通用的输入接收方(例如Win32 HWND或ALPC端点)。如果手势瞄准模块312和行为处置模块314不标识针对特定用户输入的目标,结果模块316可以缓冲输入,直到在稍后时间由新的输入或流逝的时间段决定目标。当手势瞄准模块312和行为处置模块314确定目标内容片段时,可以以时间顺序向目标目的地重新指派针对用户输入的任何之前缓冲的输入。
在至少一个示例中,用户206可以提供多于一个输入。例如,用户206可以同时或接近同时在触摸屏上使用两个手指。在至少一个示例中,结果模块316可以延迟返回针对第一输入的目标,直到已经决定针对随后输入的目标。在至少一个示例中,操纵管理模块318可以缓冲输入,直到已经决定针对随后输入的目标。决定可以基于接收到新的用户输入或流逝的时间段。缓冲可以允许结果模块316确定是否应当向相同的目标内容片段发送第一输入和第二输入,以及第一输入或第二输入是否与作为其它内容的子代内容的内容片段相关联。
在一些示例中,用户206可以向特定内容片段引导其输入并且然后将输入重定向到相同用户输入中的不同内容片段。在这样的示例中,结果模块316可以在输入递送中向每一个内容片段通知改变,使得初始内容片段知晓不预期任何附加输入并且随后内容片段知晓其将开始接收输入。为了完成这样的通知,结果模块316可以向每一个内容片段发送通知。遗失捕获通知可以通知作为用户输入的原始目标的内容片段其将不再接收附加输入。也就是说,响应于用户输入离开或从内容片段转移,结果模块316可以通知内容片段其将不再接收输入。获取到捕获通知可以通知作为新目标的内容片段其现在将接收输入。也就是说,响应于用户输入在新的内容片段上开始和/或转移到内容片段,结果模块316可以通知内容片段其将接收向前的用户输入。结束捕获通知可以通知所有内容片段用户已经操纵脱离用户设备208。
以上所描述的通知对于从具有操纵结束效应(例如快动点)的子代内容片段链接到父代内容片段可以是有用的。例如,用户206可以平移以便使子代内容片段到达其边界。当到达边界时,结果模块316可以提供捕获遗失通知以通知子代内容片段其将不再接收输入,并且某个其它内容片段将接收针对相同用户操纵的输入。作为结果,子代内容片段可以推迟任何操纵结束效应。此外,作为子代内容片段到达其边界和接收到遗失捕获通知的结果,父代内容片段可以接收获取到捕获通知,该通知指示其是用户输入的目标。获取到捕获通知可以允许父代内容片段区分用户输入从子代内容片段到父代内容片段的转移与新的用户操纵。当用户206脱离用户输入208时,可以向所有内容片段提供结束捕获通知,使得每一个可以实行其自身的操纵结束效应(例如快动点)。
如以上所描述的,结果模块316可以利用手势瞄准逻辑以用于计算可以应用于每一个内容片段的任何运动的变换。手势瞄准逻辑可以用于直接向内容片段应用变换而不要求来自应用的任何工作。除了直接应用变换之外,每一个变换可以作为用于每一个内容片段的操纵的结构而向应用暴露(expose)。例如,手势瞄准逻辑可以确定的平移和缩放运动可以由每一个内容片段针对给定输入帧而执行。在至少一些实施例中,多个内容片段可以同时或基本上同时地执行运动。
图4图示了用于操纵UI(诸如UI 118)上的内容片段的过程400。
块402图示了交互式内容模块308,其收集和在交互式内容储存中存储信息。如以上所描述的,交互式内容模块308可以存储关于UI及其元件的信息。例如,交互式内容模块308可以存储关于可用于用户操纵的内容和与呈现在UI上的特定内容片段相关联的交互式性质的信息。交互式内容模块308还可以存储呈现在系统(例如200,300)内的视觉内容。在至少一个示例中,视觉内容可以存储在视觉内容树中。在一些示例中,维护在交互式内容树和视觉内容树中的交互式内容可以集成在交互式内容的全局树310中。
块404图示了接收UI上的用户输入。如以上所描述的,用户206可以经由众多类型的用户输入和输入设备与UI交互。此外,用户206可以与多个UI交互。
块406图示了标识各个内容片段的交互式内容模块308。如以上所描述的,交互式内容模块308可以使用视觉内容树以用于在接收到指向UI操纵的用户输入之后执行初始命中测试。基于初始命中测试,操纵器模块304可以确定几何形状或点值是否落在内容片段的经再现的内容内以实行期望的UI操纵。在一些示例中,交互式内容模块308可以基于命中测试的结果而确定交互式内容链。
块408图示了交互式内容模块308确定可用于各个内容片段的操纵。如以上所描述的,交互式内容模块308可以比较命中测试的结果与交互式内容的全局树310,以基于当前用户输入来标识可以潜在地被操纵的各个内容片段。当用户206与内容片段交互时,所维护的交互式内容的全局树310可以标识各个内容片段可以如何移动或以其它方式被操纵。
块410图示了结果模块316导致UI上的各个内容片段的操纵。在至少一个示例中,结果模块316可以直接修改UI上的各个内容片段的呈现。在其它示例中,结果模块316可以向一个或多个应用306发送输入以操纵各个内容片段,而不是直接操纵UI上的各个内容片段。
图5图示了用于在UI(诸如UI 118)上呈现视觉内容片段的过程500。
块502图示了在UI上接收用户输入。如以上所描述的,用户206可以经由众多用户输入和输入设备与一个或多个UI交互。
块504图示了手势瞄准模块312,其确定可以在UI上操纵的视觉内容片段。如以上所描述的,为了确定哪个内容片段执行操纵,手势瞄准模块312采用手势瞄准逻辑,该逻辑考虑由特定内容片段支持的操纵、内容的变换和/或其它内容片段的操纵。
块506图示了行为处置模块314,其确定视觉内容片段以执行在UI上操纵视觉内容片段。行为处置模块314可以利用多个准则来配置要在内容上执行的操作。如以上所描述的,行为处置模块314可以考虑手势类型、当前用户输入状态和/或由其它内容片段执行的运动。
块508图示了结果模块316,其在UI上呈现两个或更多视觉内容片段的操纵的结果。
图6图示了用于交互式内容的全局树310的前向遍历的过程600。块602图示了手势瞄准模块312遍历交互式内容的全局树310。手势瞄准模块312遍历交互式内容的全局树310,在与特定内容片段相关联的父代节点处开始并且继续到与特定内容片段相关联的子代节点,以确定可能用于特定内容片段的操纵类型。块604图示了手势瞄准模块312至少部分地基于存储在交互式内容的全局树310中的交互而确定视觉内容片段能够执行的操纵。块606图示了手势瞄准模块312确定父代节点禁止。如以上所描述的,在至少一个示例中,父代节点可以在子代节点可以执行什么操纵上施加限制。作为结果,手势瞄准模块312基于父代节点约束而确定一个或多个子代节点不被准许执行的操纵。
图7图示了用于交互式内容的全局树310的反向遍历的过程700。块702图示了手势瞄准模块312在反向方向上遍历交互式内容的全局树310,在子代节点处开始并且继续到父代节点。
块704图示了手势瞄准模块312在子代节点处执行每一个子代节点可以执行的操纵。如以上所描述的,每一个子代节点标识子代节点或其父代节点可以执行的操纵,并且子代节点将操纵投射到由内容片段支持的坐标空间。如果操纵被子代节点禁止,手势瞄准模块312可以继续将操纵投射到由内容片段支持的坐标空间。如果操纵被子代节点准许,手势瞄准模块312可以从投射到坐标空间的过程过滤这样的操纵。
块706图示了向交互式内容的全局树310的其它节点传递任何其余操纵以供处理。任何不受支持(或未被处理)的操纵可以被投射到所支持的操纵的坐标空间中。
结论
最后,尽管已经以特定于结构特征和/或方法动作的语言描述了各种实施例,但是要理解的是,在随附代表物中限定的主题不一定限于所描述的特定特征或动作。而是,特定特征和动作作为实现所要求保护的主题的示例形式而公开。
示例条款
A. 一种计算机实现的方法,包括:在交互式内容储存中收集关于可用于用户接口(UI)上的操纵的内容的信息;经由UI接收用户输入;响应于接收到用户输入,标识用户输入所关于的至少一个内容片段;在交互式内容储存中标识至少一个内容片段以确定可用于至少一个内容片段的操纵;以及响应于确定可用于至少一个内容片段的操纵,至少部分地基于可用于至少一个内容片段的操纵而导致UI上的至少一个内容片段的操纵。
B. 如段落A所叙述的计算机实现的方法,其中标识至少一个内容片段包括标识两个或更多内容片段,并且两个或更多内容片段中的至少一些由不同的应用生成。
C. 如段落A或B所叙述的计算机实现的方法,其中交互式内容储存包括交互式内容树,其包括:关于可用于各个内容片段的交互的信息;以及关于可用于操纵的内容的信息,以标识可用于操纵的内容之间的交互式关系。
D. 如段落C所叙述的计算机实现的方法,用户输入包括触摸输入并且触摸输入包括两个或更多接触点;并且方法还包括基于至少一个内容片段和两个或更多接触点而确定交互式内容链。
E. 如段落D所叙述的计算机实现的方法,还包括标识交互式内容树中的交互式内容链以确定可用于至少一个内容片段的操纵。
F. 如段落C所叙述的计算机实现的方法,还包括经由UI接收新的用户输入;以及至少部分地基于交互式内容树而导致UI上的各个内容片段的操纵。
G. 一种系统,包括至少存储操纵器模块和一个或多个应用的计算机可读介质;可操作耦合到计算机可读介质的处理单元,处理单元适配成至少运行操纵器模块和一个或多个应用,操纵器模块包括:配置成存储和定义与一个或多个应用相关联的内容片段之间的交互式关系的交互式内容模块;以及配置成确定用于执行与多个内容片段相关联的用户输入所导致的操纵的特定内容片段的手势瞄准模块。
H. 如段落G所叙述的系统,配置成基于以下中的至少一个来确定要在多个内容片段上执行的操作的行为处置模块:手势类型、当前用户输入状态或由多个内容片段中的各个片段执行的操纵。
H. 如段落G或H所叙述的系统,还包括,配置成向一个或多个应用递送结果或直接递送由特定内容片段执行的操纵的结果模块。
I. 如段落G-I中的任何一个所叙述的系统,内容片段之间的交互式关系存储和定义在交互式内容树中;并且手势瞄准模块还配置成遍历交互式内容树,在与一个或多个应用相关联的父代节点处开始并且继续到与内容片段相关联的子代节点,以确定可准许用于内容片段的操纵类型。
K. 如段落J所叙述的系统,其中父代节点约束子代节点的操纵,或子代节点约束父代节点的操纵。
L. 如段落J所叙述的系统,其中响应于遍历交互式内容树,在父代节点开始并且继续到子代节点,手势瞄准模块还配置成遍历交互式内容树,在子代节点处开始并且继续到父代节点,以标识各个子代节点可以执行的操纵。
M. 如段落G-I、K或L所叙述的系统,其中结果模块还配置成响应于接收到用户输入或在稍后时间递送结果。
N. 如段落M所叙述的系统,其中在稍后时间递送结果包括当接收到新的用户输入时或在预定时间段流逝之后递送结果。
O. 如段落G-I、K、L或N所叙述的系统,其中结果模块还配置成向多个内容片段中的各个片段提供通知,提供通知包括:响应于用户输入离开各个内容片段,向各个片段提供遗失捕获通知;响应于用户输入转移到新的内容片段,提供获取到的捕获通知;以及响应于终止用户输入,提供捕获结束通知。
P. 如段落G-I、K、L、N或O所叙述的系统,其中结果模块还配置成在多个内容片段上执行变换,而不要求来自一个或多个应用的任何处理。
Q. 一个或多个编码有指令的计算机可读介质,指令在由处理器运行时,将计算机配置成执行包括以下的动作:接收涉及操纵与至少一个应用相关联的两个或更多视觉内容片段的用户输入,两个或更多视觉内容片段呈现在用户接口(UI)上;至少部分地基于用户输入和交互式内容的集合而确定可以经由UI操纵的至少两个视觉内容片段;至少部分地基于交互式内容的集合而确定执行操纵的至少两个视觉内容片段中的各个片段;以及在UI上呈现两个或更多视觉内容片段的操纵结果。
R. 如段落Q的一个或多个计算机可读介质,其中交互式内容的集合包括交互式内容树,并且确定执行操纵的至少两个视觉内容片段中的各个片段包括:遍历交互式内容树,在与至少一个应用相关联的父代节点处开始并且继续到与父代节点相关联的一个或多个子代节点;确定至少两个视觉内容片段能够执行的操纵;以及基于来自父代节点的约束而确定一个或多个子代节点不被准许执行的被禁止操纵。
S. 如段落R所叙述的一个或多个计算机可读介质,其中确定执行操纵的至少两个视觉内容片段中的各个片段还包括:以反向次序遍历交互式内容树,在一个或多个子代节点处开始并且继续到父代节点;基于确定每一个子代节点可以执行的操纵,在子代节点处执行每一个子代节点可以执行的操纵;以及向交互式内容树的其它节点传递任何其余操纵以供处理。
T. 如段落Q或S中的任何一个所叙述的一个或多个计算机可读介质,其中两个或更多视觉内容片段中的每一个与不同应用相关联。

Claims (19)

1.一种计算机实现的方法,包括:
在包括交互式内容树的交互式内容储存中经由图形用户接口收集关于可用于操纵的内容的信息;
经由所述图形用户接口接收输入,所述输入针对所述交互式内容树的经由所述图形用户接口被呈现的至少两个内容项,所述至少两个内容项包括:
所述至少两个内容项中的与在第一过程中运行的第一应用相关联的第一内容项;以及
所述至少两个内容项中的与在第二过程中运行的第二应用相关联的第二内容项;
基于初始命中测试过程,在所述交互式内容储存中标识所述第一内容项和所述第二内容项,所述初始命中测试过程包括确定所述输入的几何形状或点值中的至少一个是否落在所述第一内容项和所述第二内容项中的每个内容项的经再现的内容内;
至少部分地基于在所述交互式内容储存中标识所述第一内容项和所述第二内容项,确定可用于所述第一内容项和所述第二内容项的操纵,其中确定可用的所述操纵包括:
基于所述初始命中测试过程来确定交互式内容链;以及
在所述交互式内容树中标识所述交互式内容链,以确定所述第一内容项和所述第二内容项如何被操纵;以及
至少部分地基于所述输入和可用于所述第一内容项和所述第二内容项的所述操纵,导致所述第一内容项和所述第二内容项基本上同时地在所述图形用户接口上被操纵。
2.根据权利要求1的计算机实现的方法,其中所述交互式内容树包括:
关于可用于所述可用于操纵的内容的各个内容项的交互的信息;以及
关于所述各个内容项之间的交互式关系的信息。
3.根据权利要求2的计算机实现的方法,其中:
所述输入包括触摸输入并且触摸输入包括两个或更多接触点。
4.根据权利要求2的计算机实现的方法,还包括:
经由所述图形用户接口接收新的输入;以及
至少部分地基于所述新的输入和所述交互式内容树而导致对应的内容项的操纵。
5.根据权利要求1的计算机实现的方法,其中所述输入包括同时或者在阈值时间量内经由所述图形用户接口的两个输入。
6.一种用于跨多个内容的交互的系统,包括:
图形用户接口;
包括交互式内容树的交互式内容储存,所述交互式内容树对应于与可用于经由所述图形用户接口操纵的多个内容项相关联的信息;
一个或多个处理器;以及
至少存储操纵器模块和两个或更多应用的计算机可读介质,所述两个或更多应用由所述一个或多个处理器可执行以导致所述系统执行操作,所述操作包括:
经由所述图形用户接口接收输入,所述输入针对所述交互式内容树的经由所述图形用户接口被呈现的至少两个内容项,所述至少两个内容项包括:
所述至少两个内容项中的与在第一过程中运行的第一应用相关联的第一内容项;以及
所述至少两个内容项中的与在第二过程中运行的第二应用相关联的第二内容项;
基于初始命中测试过程,在所述交互式内容储存中标识所述第一内容项和所述第二内容项,所述初始命中测试过程包括确定所述输入的几何形状或点值中的至少一个是否落在所述第一内容项和所述第二内容项中的每个内容项的经再现的内容内;
至少部分地基于在所述交互式内容储存中标识所述第一内容项和所述第二内容项,确定可用于所述第一内容项和所述第二内容项的操纵,其中确定可用的所述操纵包括:
基于所述初始命中测试过程来确定交互式内容链;以及
在所述交互式内容树中标识所述交互式内容链,以确定所述第一内容项和所述第二内容项如何被操纵;以及
至少部分地基于所述输入和可用于所述第一内容项和所述第二内容项的所述操纵,导致所述第一内容项和所述第二内容项基本上同时地在所述图形用户接口上被操纵。
7.根据权利要求6的系统,其中确定可用于所述第一内容项和所述第二内容项的所述操纵至少部分地基于与所述输入相关联的手势类型。
8.根据权利要求6的系统,其中确定可用于所述第一内容项和所述第二内容项的所述操纵至少部分地基于所述输入的当前状态。
9.根据权利要求6的系统,其中所述输入包括同时或者在阈值时间量内经由所述图形用户接口的两个输入。
10.根据权利要求6的系统,其中所述交互式内容树包括:
关于可用于各个内容项的交互的信息;以及
关于所述各个内容项之间的交互式关系的信息。
11.根据权利要求10的系统,其中确定可用于所述第一内容项和所述第二内容项的所述操纵至少部分地基于遍历与所述交互式内容储存相关联的所述交互式内容树。
12.根据权利要求11的系统,其中遍历所述交互式内容树包括在与所述两个或更多应用相关联的父代节点处开始并且继续到与所述第一内容项和所述第二内容项相关联的子代节点。
13.一个或多个存储指令的计算机可读存储介质,所述指令由一个或多个处理器可执行以执行操作,所述操作包括:
在包括交互式内容树的交互式内容储存中经由图形用户接口收集关于可用于操纵的内容的信息;
经由图形用户接口接收输入,所述输入针对所述交互式内容树的经由所述图形用户接口被呈现的至少两个内容项,所述至少两个内容项包括:
所述至少两个内容项中的与在第一过程中运行的第一应用相关联的第一内容项;以及
所述至少两个内容项中的与在第二过程中运行的第二应用相关联的第二内容项;
基于初始命中测试过程,在所述交互式内容储存中标识所述第一内容项和所述第二内容项,所述初始命中测试过程包括确定所述输入的几何形状或点值中的至少一个是否落在所述第一内容项和所述第二内容项中的每个内容项的经再现的内容内;
至少部分地基于在所述交互式内容储存中标识所述第一内容项和所述第二内容项,确定可用于所述第一内容项和所述第二内容项的操纵,其中确定可用的所述操纵包括:
基于所述初始命中测试过程来确定交互式内容链;以及
在所述交互式内容树中标识所述交互式内容链,以确定所述第一内容项和所述第二内容项如何被操纵;以及
至少部分地基于所述输入和可用于所述第一内容项和所述第二内容项的所述操纵,导致所述第一内容项和所述第二内容项基本上同时地在所述图形用户接口上被操纵。
14.根据权利要求13的一个或多个计算机可读存储介质,其中确定可用于所述第一内容项和所述第二内容项的所述操纵至少部分地基于与所述输入相关联的手势类型。
15.根据权利要求13的一个或多个计算机可读存储介质,其中确定可用于所述第一内容项和所述第二内容项的所述操纵至少部分地基于所述输入的当前状态。
16.根据权利要求13的一个或多个计算机可读存储介质,其中所述操作还包括:
经由所述图形用户接口收集关于可用于操纵的内容的信息;以及
在所述交互式内容储存中存储所述信息。
17.根据权利要求13的一个或多个计算机可读存储介质,其中所述交互式内容树包括:
关于可用于所述可用于操纵的内容的各个内容项的交互的信息;以及
关于所述各个内容项之间的交互式关系的信息。
18.根据权利要求17的一个或多个计算机可读存储介质,其中确定可用于所述第一内容项和所述第二内容项的所述操纵至少部分地基于遍历与所述交互式内容储存相关联的所述交互式内容树。
19.根据权利要求18的一个或多个计算机可读存储介质,其中遍历所述交互式内容树包括在与两个或更多应用相关联的父代节点处开始并且继续到与所述第一内容项和所述第二内容项相关联的子代节点。
CN201580046524.7A 2014-08-29 2015-08-26 跨多个内容的交互的计算机化动态拆分 Active CN106575192B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/473560 2014-08-29
US14/473,560 US10146409B2 (en) 2014-08-29 2014-08-29 Computerized dynamic splitting of interaction across multiple content
PCT/US2015/046837 WO2016033128A1 (en) 2014-08-29 2015-08-26 Computerized dynamic splitting of interaction across multiple content

Publications (2)

Publication Number Publication Date
CN106575192A CN106575192A (zh) 2017-04-19
CN106575192B true CN106575192B (zh) 2020-10-27

Family

ID=54140651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580046524.7A Active CN106575192B (zh) 2014-08-29 2015-08-26 跨多个内容的交互的计算机化动态拆分

Country Status (11)

Country Link
US (1) US10146409B2 (zh)
EP (1) EP3186700B1 (zh)
JP (1) JP2017531220A (zh)
KR (1) KR102358818B1 (zh)
CN (1) CN106575192B (zh)
AU (1) AU2015306717A1 (zh)
BR (1) BR112017002640A2 (zh)
CA (1) CA2955500A1 (zh)
MX (1) MX2017002682A (zh)
RU (1) RU2017106225A (zh)
WO (1) WO2016033128A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9633466B2 (en) * 2014-09-29 2017-04-25 Microsoft Technology Licensing, Llc Low latency ink rendering pipeline
RU2701846C2 (ru) * 2014-12-15 2019-10-01 Филип Моррис Продактс С.А. Образующая аэрозоль система, использующая эффект вентури для доставки субстрата к нагревательному элементу
US10817169B2 (en) * 2016-10-14 2020-10-27 Microsoft Technology Licensing, Llc Time-correlated ink
WO2019236419A1 (en) 2018-06-03 2019-12-12 Apple Inc. Framework providing application programming interface for user interfaces and animation

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4975690A (en) * 1988-11-07 1990-12-04 Ibm Corporation Method for concurrent data entry and manipulation in multiple applications
US7663607B2 (en) * 2004-05-06 2010-02-16 Apple Inc. Multipoint touchscreen
US7210099B2 (en) 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
US7047500B2 (en) 2001-11-16 2006-05-16 Koninklijke Philips Electronics N.V. Dynamically configurable virtual window manager
CA2388101A1 (en) * 2002-02-01 2003-08-01 Concepts Egeria Inc. Conceptual user interface
US7088374B2 (en) 2003-03-27 2006-08-08 Microsoft Corporation System and method for managing visual structure, timing, and animation in a graphics processing system
US7095409B2 (en) * 2003-04-30 2006-08-22 Pixar Shot shading method and apparatus
US7417644B2 (en) 2003-05-12 2008-08-26 Microsoft Corporation Dynamic pluggable user interface layout
EP1656660A4 (en) * 2003-08-21 2006-09-13 Microsoft Corp FOCUSING MANAGEMENT USING POINTS IN THE EMPTY
US7839419B2 (en) 2003-10-23 2010-11-23 Microsoft Corporation Compositing desktop window manager
US7336280B2 (en) 2004-11-18 2008-02-26 Microsoft Corporation Coordinating animations and media in computer display output
US7721308B2 (en) 2005-07-01 2010-05-18 Microsoft Corproation Synchronization aspects of interactive multimedia presentation management
US7703039B2 (en) * 2005-12-08 2010-04-20 Adobe Systems Incorporated Methods and apparatus for displaying information
US7509588B2 (en) 2005-12-30 2009-03-24 Apple Inc. Portable electronic device with interface reconfiguration mode
US7620901B2 (en) * 2006-03-21 2009-11-17 Microsoft Corporation Simultaneous input across multiple applications
KR101405924B1 (ko) * 2007-03-19 2014-06-12 엘지전자 주식회사 윈도우 제어 방법 및 이를 구현할 수 있는 단말기
US7932896B2 (en) 2007-06-13 2011-04-26 Apple Inc. Techniques for reducing jitter for taps
WO2009093241A2 (en) 2008-01-23 2009-07-30 N-Trig Ltd. Graphical object manipulation with a touch sensitive screen
KR101446521B1 (ko) 2008-08-12 2014-11-03 삼성전자주식회사 터치 스크린의 정보 스크롤 제어 방법 및 장치
US8732576B2 (en) 2008-12-04 2014-05-20 Nvidia Corporation Operating system providing multi-touch support for applications in a mobile device
US8176096B2 (en) * 2008-12-18 2012-05-08 Microsoft Corporation Data visualization interactivity architecture
US8443303B2 (en) * 2008-12-22 2013-05-14 Verizon Patent And Licensing Inc. Gesture-based navigation
US8446376B2 (en) 2009-01-13 2013-05-21 Microsoft Corporation Visual response to touch inputs
CA2751059A1 (en) 2009-02-03 2010-08-12 Calgary Scientific Inc. Method and system for enabling interaction with a plurality of applications using a single user interface
US20100235769A1 (en) * 2009-03-16 2010-09-16 Microsoft Corporation Smooth layout animation of continuous and non-continuous properties
US9250788B2 (en) 2009-03-18 2016-02-02 IdentifyMine, Inc. Gesture handlers of a gesture engine
US20100251112A1 (en) 2009-03-24 2010-09-30 Microsoft Corporation Bimodal touch sensitive digital notebook
JP5229083B2 (ja) * 2009-04-14 2013-07-03 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
EP2304543A1 (en) 2009-04-29 2011-04-06 Torch Mobile Inc. Software-based asynchronous tiled backingstore
US8766928B2 (en) 2009-09-25 2014-07-01 Apple Inc. Device, method, and graphical user interface for manipulating user interface objects
KR101648747B1 (ko) 2009-10-07 2016-08-17 삼성전자 주식회사 복수의 터치 센서를 이용한 ui 제공방법 및 이를 이용한 휴대 단말기
US8456297B2 (en) * 2010-01-06 2013-06-04 Apple Inc. Device, method, and graphical user interface for tracking movement on a map
US20110185299A1 (en) 2010-01-28 2011-07-28 Microsoft Corporation Stamp Gestures
US9411504B2 (en) * 2010-01-28 2016-08-09 Microsoft Technology Licensing, Llc Copy and staple gestures
KR101673918B1 (ko) * 2010-02-11 2016-11-09 삼성전자주식회사 휴대단말에서 복수의 정보들을 제공하는 방법 및 장치
US8539384B2 (en) * 2010-02-25 2013-09-17 Microsoft Corporation Multi-screen pinch and expand gestures
US8552999B2 (en) * 2010-06-14 2013-10-08 Apple Inc. Control selection approximation
US20120054667A1 (en) 2010-08-31 2012-03-01 Blackboard Inc. Separate and simultaneous control of windows in windowing systems
KR20120091975A (ko) * 2011-02-10 2012-08-20 삼성전자주식회사 적어도 두 개의 터치 스크린을 포함하는 정보 표시 장치 및 그의 정보 표시 방법
US9547428B2 (en) 2011-03-01 2017-01-17 Apple Inc. System and method for touchscreen knob control
EP2691877A4 (en) * 2011-03-31 2015-06-24 Microsoft Technology Licensing Llc LEARNING AND CORRECTION OF A CONVERSATIONAL DIALOGUE
US8640047B2 (en) 2011-06-01 2014-01-28 Micorsoft Corporation Asynchronous handling of a user interface manipulation
EP2584450A3 (en) * 2011-10-18 2014-05-21 BlackBerry Limited Method of modifying rendered attributes of list elements in a user interface
EP2584445A1 (en) 2011-10-18 2013-04-24 Research In Motion Limited Method of animating a rearrangement of ui elements on a display screen of an eletronic device
US9052796B2 (en) * 2012-01-08 2015-06-09 Microsoft Technology Licensing Llc Asynchronous handling of an input stream dedicated to multiple targets
US20130290867A1 (en) * 2012-04-27 2013-10-31 Litera Technologies, LLC Systems and Methods For Providing Dynamic and Interactive Viewing and Control of Applications
US9619140B2 (en) * 2012-12-12 2017-04-11 Samsung Electronics Co., Ltd. Apparatus and method for creative wallpaper
CN103078996A (zh) * 2012-12-17 2013-05-01 腾讯科技(武汉)有限公司 移动终端桌面快捷方式生成方法、系统及客户端与服务器
US9535503B2 (en) 2013-01-29 2017-01-03 Blackberry Limited Methods and devices for simultaneous multi-touch input
US9122351B2 (en) * 2013-03-15 2015-09-01 Verizon Patent And Licensing Inc. Apparatus for detecting proximity of object near a touchscreen

Also Published As

Publication number Publication date
EP3186700B1 (en) 2021-06-23
US10146409B2 (en) 2018-12-04
BR112017002640A2 (pt) 2017-12-05
WO2016033128A1 (en) 2016-03-03
AU2015306717A1 (en) 2017-02-16
RU2017106225A (ru) 2018-08-27
MX2017002682A (es) 2017-06-19
CA2955500A1 (en) 2016-03-03
KR102358818B1 (ko) 2022-02-07
US20160062580A1 (en) 2016-03-03
KR20170047355A (ko) 2017-05-04
CN106575192A (zh) 2017-04-19
EP3186700A1 (en) 2017-07-05
JP2017531220A (ja) 2017-10-19

Similar Documents

Publication Publication Date Title
KR102150733B1 (ko) 패닝 애니메이션
JP6249419B2 (ja) ユーザー介入なくレイアウトに従った画像識別及び編成
JP6226394B2 (ja) インスタンス化可能なジェスチャオブジェクト
EP3191941B1 (en) Parametric inertia and apis
US20160259405A1 (en) Eye Gaze for Automatic Paging
JP2017523515A (ja) アイコンサイズ変更
JP2013522797A (ja) 複数軸ナビゲーション
US11075976B2 (en) Remoting application user interfaces
CN105474160A (zh) 高性能触摸拖放
CN106575192B (zh) 跨多个内容的交互的计算机化动态拆分
US20170109020A1 (en) Interactive presentation system
US10855481B2 (en) Live ink presence for real-time collaboration
JP2016531335A (ja) タッチパッド操作およびダブルタップ・ズーミングに対する独立ヒット・テスト
US20130143657A1 (en) Input Mapping Regions
US8874969B2 (en) Independent hit testing
US20160182579A1 (en) Method of establishing and managing messaging sessions based on user positions in a collaboration space and a collaboration system employing same
US11592963B2 (en) Terminal, control method therefor, and recording medium in which program for implementing method is recorded
US20130201095A1 (en) Presentation techniques
US10001915B2 (en) Methods and devices for object selection in a computer

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant