使用声明性动画化方案来动画化对象
背景
演示应用程序提供用于创建并传递视听演示的功能。通常,演示采用一个或多个演示幻灯片的形式。每一演示幻灯片可包括多个对象,如文本、照片、列表、表格、图表、形状、剪贴画、声音剪辑、电影等。演示可在屏幕上显示并按用户的命令导航以传递演示。
许多演示应用程序提供用于动画化每一演示幻灯片上的对象并将视觉效果应用到这些对象且用于动画化演示幻灯片之间的过渡并将视觉效果应用到这些过渡的功能。例如,通过使用由典型演示应用程序提供的功能,用户可定义对象随时间在演示幻灯片上的运动的路径(“动作路径”)。在显示演示幻灯片时,演示应用程序将使对象沿所定义的动作路径被动画化。用户可按类似方式手动地将任何类型的动画特性应用到演示对象。
由演示应用程序提供的动画化功能传统上在若干方式中受限。例如,动画化功能通常限于将静态的动画特性组单独应用到演示中的每一对象,如以上述方式将动作路径应用到对象。结果,对用户而言使用之前的演示应用程序来以视觉上吸引人的方式编排演示幻灯片上的多个对象的动画化通常是耗时的。
此处所做出的本发明正是对于这些和其它考虑事项而呈现的。
概述
此处描述了用于通过动画化方案的使用来动画化对象的技术。具体而言,通过使用此处所呈现的技术和概念,可声明性地定义包括用于编排多个对象的动画化的指令的动画化方案。此外,通过此处所提供的技术,可取决于要动画化的对象的数量、对象的位置、对象的类型、或其它因素来定义动画。因为使用声明性语言来定义动画,所以不太熟悉编程的用户可容易地编辑动画化方案或定义新动画化方案。可容易地将这些动画化方案添加到可由应用程序使用的动画化方案。
根据此处所呈现的一个方面,使用声明性语言来定义动画化方案。动画化方案包括定义应该被应用到一个或多个对象的动画和/或视觉效果以及应该如何应用这些动画或视觉效果的指令。例如,在一实现中,动画化方案包括标识应该被应用到每一对象的动画的数据连同指示应该顺序地还是并发地动画化对象的数据。
在一实施例中,动画化方案包括在被评估时定义将如何动画化对象的规则。例如,可指定规则以使得取决于对象的数量、对象的类型、对象的位置、或其它因素来不同地动画化对象。在一实现中,用于定义动画化方案的声明性语言是可扩展标记语言(“XML”)。然而,应该理解,其它声明性语言和数据格式也可用于定义动画化方案。
根据其它方面,提供用于评估动画化方案连同其它因素以将合适的动画应用到对象中的每一个的动画化方案引擎。具体而言,在一实施例中,动画化方案引擎检索要应用到一个或多个对象的的动画化方案。动画化方案引擎还检索关于对象的数据。关于对象的数据可包括关于对象中的每一个的位置、对象的类型、对象的数量、或其它环境变量的数据。动画化方案引擎随后评估动画化方案连同关于对象的数据以确定要应用到每一对象的动画。一旦动画化方案引擎确定了要应用到每一对象的动画和视觉效果,即将这些动画和视觉效果应用到对象。还可按类似方式定义并应用诸如过渡或声音等其它效果。
应当理解,上述主题也可被实现为计算机控制的装置、计算机进程、计算系统或诸如计算机可读介质等制品。通过阅读以下详细描述和查阅相关联的附图,这些和各个其它特征将是显而易见的。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,本概述也不旨在用于限定所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。
附图简述
图1是示出在此处所呈现的一个实现中提供的演示应用程序的各方面的软件体系结构图;
图2是示出在此处所呈现的一个实现中提供的动画化方案数据结构的各方面的数据结构图;
图3是示出其上显示由此处所提供的动画化方案引擎动画化的若干对象的演示幻灯片的屏幕图;
图4是示出此处所述的一实现中用于使用动画化方案来动画化对象的说明性过程的流程图;以及
图5是示出用于能够实现本文所提出的各实施例的计算系统的说明性计算机硬件和软件体系结构的计算机体系结构图。
详细描述
以下详细描述涉及用于动画化对象的技术。通过使用此处所呈现的各实施例,可通过动画化方案的创建来编排将动画和视觉效果应用到对象。动画化方案可通过诸如XML等声明性语言的使用来创建,并包含关于应该如何将动画和视觉效果应用到一个或多个对象的规则和指令。包含此处所呈现的概念和技术的应用程序利用动画化方案来动画化对象并将视觉效果应用到对象。将在以下参考图1-5呈现关于此处所呈现的各实施例的其它细节。
尽管此处所述的主题是在结合操作系统和应用程序在计算系统上的执行而执行的程序模块的一般上下文中提供的,但本领域技术人员可以认识到,可结合其它类型的程序模块来执行其它实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域的技术人员可以理解,此处所述的本主题可以使用其它计算机系统配置来实践,这些其它计算机系统配置包括手持式设备、多处理器系统、基于微处理器或可编程的消费电子产品、小型计算机、大型计算机等。
在以下详细描述中,参考了构成其一部分并作为说明示出了各具体实施例或示例的附图。现在参考附图(全部若干附图中相同的标号表示相同的元素),将描述用于布局图像及相关联的文本的计算系统和方法的各方面。
现在转到图1,将提供关于此处所呈现的用于动画化对象的一个实施例的细节。具体而言,图1示出根据一个实现的用于动画化对象的软件体系结构100的各方面。如图1所示,此处所呈现的各实施例在演示应用程序102的上下文中描述。演示应用程序102提供用于创建并传递试听演示的功能。通常,演示采用被包含在演示文档104内的一个或多个演示幻灯片106A-106C的形式。演示幻灯片106A-106C中的每一个可包括多个视听对象108A-108C。对象108A-108C包括可在演示中使用的任何类型的视听组件,如文本、照片、列表、表格、图表、形状、剪贴画、声音剪辑、以及电影。也可以利用其它类型的视听对象。演示幻灯片106A-106C可在计算机显示屏幕上显示并按用户的命令导航以传递该演示。
如此处所述地,演示应用程序102还包括用于动画化对象108A-108C和演示幻灯片106A-106C之间的过渡并将视觉效果应用到对象108A-108C和演示幻灯片106A-106C之间的过渡的功能。就此,演示应用程序102包括动画化方案引擎112。如将在以下更详细描述地,动画化方案引擎112用于使用动画化方案110A的内容来确定要应用到演示幻灯片106A-106C中的每一个上的对象108A-108C的动画和视觉效果。
如图1所示,可定义并存储一个或多个动画化方案110A-110C以供结合演示应用程序102使用。演示应用程序102可提供允许用户选择要将可用动画化方案110A-110C中的哪一个应用到演示文档104中的演示幻灯片106A-106C中的每一个的用户界面。可将不同的动画化方案110A-110C应用到幻灯片106A-106C中的每一个。还可提供用于允许用户编辑动画化方案110A-110C并添加新动画化方案的功能。在一实施例中,结合视觉主题来利用动画化方案110A-110C。主题定义演示幻灯片106A-106C内的对象的视觉风格,如应该使用的调色板或应该按其格式化文本的方式。以此方式,可按与幻灯片106A的视觉风格一致的方式来执行演示幻灯片106A上的对象108A-108C的动画化。
如以下将更详细描述地,可使用诸如XML等声明性语言来定义动画化方案110A-110C。也可以类似地利用其它类型的声明性语言。动画化方案110A-110C包括使用声明性语言指定的定义应该被应用到对象108A-108C的动画和/或视觉效果以及应该如何应用这些动画或视觉效果的指令。例如,在一实现中,动画化方案110A-110C包括标识应该被应用到对象106A-106C中的每一个的动画的数据连同指示应该顺序地还是并发地动画化对象108A-108C的数据。作为另一示例,可定义指定应该将旋转动画应用到对象108A并指定旋转的角度的动画化方案110A。或者,动画化方案110A可指定对象108A应该遵循的动作路径。还可将每一动画化方案110内定义的动画堆叠在一起,进而允许由组合效果组成的复杂动画。
在一实施例中,动画化方案110A-110C包括在被评估时定义将如何动画化对象106A-106C的规则。例如,可指定用于使得取决于对象108A-108C的数量来不同地动画化对象的规则。作为示例,可为其中幻灯片106A上存在两个对象108A-108B的情况定义一组动画同时为其中幻灯片106A上存在三个对象108A-108C的情况定义另一动画。
根据另一方面,可指定基于对象108A-108C的类型来更改被应用的动画的类型的规则。例如,规则可指定要将一个动画应用到文本对象同时要将另一动画应用到图像对象。在另一实现中,可指定取决于幻灯片106A上的对象108A-108C的位置不同地动画化对象108A-108C的规则。例如,如以下将参考图2-3所述地,可定义将对象108A-108C中的每一个以取决于幻灯片106A上的对象108A-108C的最终静止位置的方向移动到幻灯片106A上的动画。应该理解,可在动画化方案110A-110C内声明性地定义其它类型的规则。
如下文中将更详细描述地,在一实施例中,动画化方案引擎112利用动画化方案110A和来自演示文档104的数据来确定将如何动画化对象108A-108C。例如,动画化方案引擎112可检索标识幻灯片106A上的对象108A-108C的类型、幻灯片106A上的对象108A-108C的数量、以及幻灯片106A上的对象108A-108C的位置的数据。动画化方案引擎112利用此信息来评估在合适的动画化方案110A中阐明的规则以确定应该被应用到对象108A-108C中的每一个的动画。一旦标识了适当的动画,即可将这些动画应用到对象108A-108C。关于该过程的附加细节在以下参考图2提供。
现在参考图2,将描述说明性动画化方案110A。图2中示出的说明性动画化方案110A利用XML来定义要应用到对象108A-108C的规则和动画。图2中示出的说明性动画化方案110A还指定要应用到图像对象的动画。然而,应该理解,可利用类似的概念来指定要应用到其它类型的对象的动画和视觉效果。
如图2所示,动画化方案110A包括涵盖构成动画化方案110A的其它标签的<ANIMSCHEME(动画化方案)>标签202A。在说明性动画化方案110中,定义了两组动画。将被应用到对象108A-108C的具体动画化组取决于是否应用了主题。如上所述,主题定义了用于演示中的对象的视觉风格。这通过<THEMESPECIFIC(主题指定)>标签202B的使用来达成。如果应用了名为“FLOW(流)”的主题,则将利用在<THEMESPECIFIC>标签202B内定义的动画。否则,将利用在<ANIMEFFECTS(动画效果)>标签202H内定义的动画。
<THEMESPECIFIC>标签202b涵盖定义动画的<ANIMEFFECTS(动画效果)>标签202C。还定义指定应该用于执行所定义的动画的时序的<ANIMTIMING(动画时序)>标签202D。在图2中示出的示例中,<ANIMTIMING>标签202D指定应该被应用到对象108A-108C中的每一个以使得对象顺序地动画化的动画。然而,应该理解,可并发地或以另一方式来应用这些动画。
图2中示出的说明性动画方案110A还包括若干<ANIMINFO(动画信息)>标签202E和202F。这些标签中的每一个描述应该被应用到对象108A-108C中的每一个的动画。例如,<ANIMINFO>标签202E结合所涵盖的<SIMPLEANIM(简单动画)>标签定义径向“飞入”(radial″fly-in″)动画,通过该动画对象108A-108C中的每一个以取决于幻灯片106A上的对象108A-108C的最终位置的方向移动到幻灯片106A上。<ANIMINFO>标签202E的NODETYPE(节点类型)=WITHEFFECT(带有效果)属性指示该径向“飞入”动画应该与被定义的任何其它动画在同一时间执行。DURATION(持续时间)=3.0属性指示由<ANIMINFO>标签202E指定的动画应该执行三秒。
<ANIMINFO>标签202F结合所涵盖的<ROTATEANIM(旋转动画)>和<BYDEGREES(旋转角度)>标签定义旋转动画,通过该旋转动画对象108A-108C中的每一个旋转45度。<ANIMINFO>标签202F的NODETYPE=WITHEFFECT属性指示旋转动画应该与被定义的任何其它动画在同一时间执行。DURATION=3.0属性指示由<ANIMINFO>标签202F指定的动画应该执行三秒。
如上所述,如果未应用名为“FLOW”的主题,将利用由<ANIMEFFECTS>标签202H定义的动画来动画化对象108A-108C。在此情况中,<ANIMTIMING>标签202I指定应该被应用到对象108A-108C中的每一个以使得对象顺序地动画化的动画。<ANIMINFO>标签202J和所涵盖的<ANIMINFO>标签指示对象应在三秒时间内淡入(FADE)。应该理解,动画化方案110A仅是说明性的,且可利用其它方案来声明性地定义管理将如何动画化对象108A-108C的规则。
现在转到图3,将描述示出将在图2中示出并在上文中被描述的动画化方案110A应用到包括三个对象108A-108C的演示幻灯片106A的说明性屏幕显示。如上文参考图2所述,动画化方案110A定义取决于幻灯片106A上的对象108A-108C的最终位置的径向“飞入”动画和在应用名为“流”的主题时的旋转动画。图2示出了作为其中应用了名为“流”的主题时动画化方案110A内的XML指令的结果的对象108A-108C的动画化。具体而言,沿从幻灯片106A的左上角到其最终位置的动作路径来动画化对象108A。沿动作路径动画化对象108A的同时,对象108A还旋转45度。沿从幻灯片106A的右上角到其最终位置的动作路径来动画化对象108B。沿动作路径动画化对象108B的同时,该对象还旋转45度。沿从幻灯片106A的右下角到其最终位置的动作路径来动画化对象108C。沿动作路径动画化对象108C的同时,该对象还旋转45度。应该理解,此示例仅是说明性的,且可定义其它类型的动画并将其应用到对象108A-108C。
现在参考图4,将提供关于此处所呈现的用于动画化对象的实施例的其它细节。具体而言,图4示出描述用于使用动画化方案110来动画化对象108的例程400的流程图。应理解,此处所述的逻辑操作被实现为(1)一系列计算机实现动作或运行于计算系统上的程序模块,和/或(2)计算系统内的互连机器逻辑电路或电路模块。该实现是取决于计算机系统的性能和其他要求的选择的问题。因此,此处所描述的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑以及它们的任何组合来实现。还应当理解,可以实现比各附图所示的并在此处描述的更多或更少操作。这些操作也可按与本文所描述的不同的次序来执行。
例程400在操作402开始,其中定义并存储了动画化方案110A-110C。如上文简要描述地,因为动画化方案110A-110C是使用声明性语言指定的,设计者可容易地定义新动画并将其存储在可由动画化方案引擎112访问的位置。还可按类似的方式容易地定制动画化方案110A-110C。
从操作402,例程400继续至操作404,其中将动化画方案110A应用到演示文档104内的幻灯片106。例如,这可能响应于将动画化方案110A应用到幻灯片106A的用户请求而发生。为将动画化方案110A应用到幻灯片106A,例程400继续至操作406,其中动画化方案引擎112检索动画化方案110A。例程400随后继续至操作408,其中动画化方案引擎112检索评估动画化方案110A的内容所必需的关于演示文档104和对象108A-108C的信息。例如,如上所述,动画化方案引擎112可检索关于幻灯片106A上的对象108A-108C的位置或对象108A-108C的数量和类型的数据。
在操作410,动画化方案引擎112使用检索出的关于演示文档104和对象108A-108C的信息来评估包含在动画化方案110A中的规则并确定应该被应用到对象108A-108C中的每一个的动画和视觉效果。一旦标识了要应用到对象108A-108C中的每一个的动画,例程400即随后继续至操作412,其中将所标识的动画应用到对象108A-108C中的每一个。一旦将动画应用到了对象108A-108C,例程400即继续至操作414,并在那里结束。
图5示出了用于能够执行本文所描述的用于以上述方式使用动画化方案来动画化对象的软件组件的计算机500的说明性计算机体系结构。图5所示的计算机体系结构示出了常规台式计算机、膝上型计算机或服务器计算机并且可用于执行此处所描述的演示应用程序102的任何方面。如上所述,计算机500还可执行包含此处所呈现的用于使用动画化方案来动画化对象的概念的其它类型的应用程序。
图5所示的计算机体系结构包括中央处理单元502(“CPU”)、包括随机存取存储器514(“RAM”)和只读存储器(“ROM”)516的系统存储器508、以及将存储器耦合至CPU 502的系统总线504。基本输入/输出系统被存储在ROM 516中,该系统包含帮助诸如在启动期间在计算机500中的元件之间传递信息的基本例程。计算机500还包括用于存储操作系统518、应用程序和其它程序模块等的大容量存储设备510,这将在以下更为详尽地描述。
大容量存储设备510通过连接至总线504的海量存储控制器(未示出)连接到CPU 502。大容量存储设备510及其相关联的计算机可读介质为计算机500提供非易失性存储。尽管本文所包含的计算机可读介质的描述指的是大容量存储设备,如硬盘或CD-ROM驱动器,但本领域的技术人员应理解,计算机可读介质可以是可由计算机500访问的任何可用计算机存储介质。
作为示例而非限制,计算机可读介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机可读介质包括但不限于,RAM、ROM、EPROM、EEPROM、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、蓝光(BLU-RAY)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机500访问的任何其它介质。
根据各实施例,计算机500可以使用通过诸如网络520等网络与远程计算机的逻辑连接在联网环境中操作。计算机500可以通过连接至总线504的网络接口单元506来连接到网络520。应当理解,网络接口单元506也可用于连接至其它类型的网络和远程计算机系统。计算机500还可以包括用于接收和处理来自多个其它设备的输入的输入/输出控制器512,这些设备包括键盘、鼠标或者电子指示笔(未在图5中示出)。类似地,输入/输出控制器可以提供至显示屏、打印机或其它类型的输出设备(也未在图5中示出)的输出。
如前简述的那样,多个程序模块和数据文件可以存储在计算机500的大容量存储设备510和RAM 514内,包括适于控制联网的台式计算机、膝上型计算机或服务器计算机的操作的操作系统518。大容量存储设备510和RAM 514还可以存储一个或多个程序模块。具体而言,大容量存储设备510和RAM 514可存储提供此处所述的用于使用动画化方案来动画化对象的功能的演示应用程序102。大容量存储设备510和RAM 514还可存储动画化方案110和演示文档104,这两者都在上文中被描述。
基于上述内容,应当理解,此处呈现了用于使用动画化方案来动画化对象的技术。尽管用对计算机结构特征、方法动作和计算机可读介质专用的语言描述了此处呈现的本主题,但可以理解,所附权利要求书中定义的本发明不必限于此处所述的具体特征、动作或介质。相反,具体特征、动作和介质是作为实现权利要求的示例形式公开的。
上述主题仅作为说明提供,并且不应被解释为限制。可对此处所述的主题作出各种修改和改变,而不必遵循所示和所述的示例实施例和应用,且不背离所附权利要求书中所述的本发明的真正精神和范围。