用于嵌入动画内容到计算机应用中的方法转让专利

申请号 : CN200780012408.9

文献号 : CN101416144B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 塔科·万艾依皮润

申请人 : 智能技术ULC公司

摘要 :

一种在初始透明应用窗口内显示包括多个对象的计算机应用的方法包括:在所述应用窗口下方为所述计算机应用的每个动画内容对象创建动画内容窗口,并指示负责播放所述动画内容对象的播放器直接在其中绘制所述动画内容。检查所述计算机应用的对象,并为通常与为此创建的所述动画内容窗口相对应的每个动画内容对象定义剪辑蒙版。从下开始向上从所述列表中选择对象;如果所述选择的对象不是动画内容对象,则将所述对象绘制在所述应用窗口内除了与所述剪辑蒙版相对应的区域。如果所述选择的对象是动画内容对象,则去除为所述动画内容对象定义的剪辑蒙版,从而允许将所述列表中选择的在所述动画内容对象上方的对象绘制在其上。

权利要求 :

1.一种在计算机应用中嵌入动画内容的方法,所述方法包括:将动画内容绘制到图形用户界面上的至少一个动画内容窗口中;

在所述至少一个动画内容窗口上绘制透明窗口;

定义在所述动画内容下方的至少一个第一对象,并且将所述至少一个第一对象绘制在所述透明窗口内不与所述动画内容重叠的位置;以及定义在所述动画内容上方的至少一个第二对象,并且将所述至少一个第二对象绘制在所述透明窗口内,包括与所述动画对象内容重叠的位置。

2.根据权利要求1所述的方法,还包括为动画内容定义剪辑区,该剪辑区仅对在所述动画内容下方的每个第一对象是活动的,所述剪辑区禁止所述动画内容下方的每个第一对象覆盖所述动画内容。

3.根据权利要求1所述的方法,还包括在绘制所述图形用户界面之前,定义所述至少一个动画内容窗口相对于所述图形用户界面的位置。

4.根据权利要求3所述的方法,还包括为动画内容定义剪辑区,该剪辑区仅对在所述动画内容下方的每个对象是活动的,所述剪辑区禁止所述动画内容下方的每个对象覆盖所述至少一个动画内容窗口。

5.根据权利要求2所述的方法,其中所述绘制由负责播放所述动画内容的媒体播放器执行。

6.根据权利要求5所述的方法,进一步包括从对象列表中选择每一个对象。

7.一种在图形用户界面内显示包括多个彼此层叠的对象的计算机应用的方法,所述方法包括:定义在所述图形用户界面内的动画内容窗口,并指示负责播放动画内容对象的播放器直接在所述所述动画内容窗口内绘制所述动画内容;

在所述动画内容窗口上定义透明窗口;

为通常与为此创建的所述动画内容窗口相对应的所述动画内容对象定义剪辑蒙版;

从对象列表中选择要绘制在所述图形用户界面上的对象;

如果所选择的对象被定义在所述动画内容对象之下,则将所选择的对象绘制在所述透明窗口内除了与所述剪辑蒙版相对应的区域;并且如果所选择的对象被绘制在所述动画内容之上,则去除为所述动画内容定义的所述剪辑蒙版并将所选择的对象绘制在所述透明窗口内,从而允许将所选择的对象绘制在所述动画内容上方;以及检查所述对象列表以确定是否存在未被选择的对象,并且如果所述列表中存在未被选择的一个或多个对象,则重新执行所述对象选择步骤和绘制步骤。

8.一种在初始透明应用窗口内显示包括多个对象的计算机应用的方法,所述方法包括:为所述计算机应用的每个动画内容对象定义动画内容窗口;

为通常与为此创建的所述动画内容窗口相对应的所述计算机应用的每个动画内容对象定义剪辑蒙版,每个剪辑蒙版仅应用于在其相关联的动画内容对象下方的对象;以及在所述应用窗口内绘制所述计算机应用的对象,其中通过所述剪辑蒙版来禁止所绘制的在动画内容对象下方的非动画内容对象覆盖所述动画内容窗口。

说明书 :

用于嵌入动画内容到计算机应用中的方法

技术领域

[0001] 本发明一般涉及计算机生成图象的显示,尤其涉及一种用于将动画内容嵌入到计算机应用中的方法以及图形界面。
[0002] 背景技术
[0003] 众所周知,为窗口型或Mac型操作系统平台所编写的计算机应用,当执行时,在窗口内呈现各种对象。这些对象彼此层叠。所述窗口也可以层叠在其它应用窗口之上。例如,文字处理应用使得用户能够在窗口内显示的文档图像之上键入文本,同时图形应用使得用户能够创建并操作窗口内显示的文档图像之上的形状。所述文字处理应用和图形应用窗口都可以层叠在其它应用之上。
[0004] 已经考虑过许多用于处理和显示层叠应用窗口的技术。例如,Drews等人的美国专利No.5,831,615公开了一种在显示设备上重新绘制(re-drawing)透明窗口的方法和装置。如果存在透明窗口和下面的第二窗口,则进行核对以确定下面的第二窗口是否是活动的。如果确定下面的第二窗口是活动的,则在显示设备上重新绘制下面的第二窗口,并显示透明窗口。如果下面的第二窗口不是活动的,则保持透明窗口。
[0005] Gough等人的美国专利No.5,949,432公开了一种用于通过选择的第一应用程序在显示器上创建的基础图像上方产生半透明图像的方法和装置。所述第一应用程序运行于中央处理单元上并产生基础图象。覆盖程序产生半透明图像,以使得被覆盖图像重叠的基础图象的一部分通过所述半透明图象至少部分是可见的。
[0006] Delahunty的美国专利No.6,275,246公开了一种用于在显示器上显示跟踪对象的系统和方法。所述对象的当前位置以及以前的许多位置都用具有非零覆盖数据的像素值写入。将有序的代码集写入到当前位置的像素值中,并将所述代码集指示给驱动器。驱动器按照所述集的排列顺序地使用显示当前的以及以前的对象位置的覆盖数据。显示的位置可以通过解除所述覆盖数据的蒙版来显示。
[0007] 至于包括层叠对象的计算机应用,在这种计算机应用中提供丰富的动画内容以提高计算机应用对浏览者所具有的视觉效果是公知的。这种丰富的动画内容例如可以采用Java applets,Macromedia Flash,Apple Quicktime video,RealVideo以及Windows Media Player video的形式。
[0008] 典型地,当要将动画内容嵌入到计算机应用中时,由计算机应用建立驻留在计算机应用之上的窗口,在该窗口中绘制动画内容。然后计算机应用告知负责播放动画内容的播放器窗口在哪里,允许播放器直接在屏幕上绘制到窗口中,而无需通知计算机应用。虽然这使得动画内容能够有效地绘制,但是其也具有缺点,因为用于动画内容的窗口驻留在计算机应用之上,所以总是保持可见。应该理解,在某些环境下这可能是存在问题的,例如在交互式应用中,其中用户对显示的图像进行写入、注释以及绘制。由于用于动画内容的窗口驻留在计算机应用之上,用户不能有效地在动画内容上方进行绘制,减少了计算机应用的交互区域。
[0009] 已经考虑过处理该问题的一些尝试。例如,为了使得动画内容能够并入到交互式计算机应用中而不减少计算机应用的交互区域,指示所述播放器将动画内容写入到屏幕外的缓冲器或位图中,而不是让播放器直接在屏幕上将所述动画内容写入到驻留在计算机应用之上的窗口中。计算机应用将所述位图处理为对象,并由计算机应用在其允许注释、写入等的窗口中绘制以呈现在动画内容上方。不幸地是,迫使 播放器将动画内容写入到屏幕外的缓冲器中与直接在屏幕上写入到窗口中相比是极其慢的。从屏幕外的缓冲器中将动画内容复制到计算机应用中来显示也是非常慢的。最终的结果性能上明显降低,使得采用这种方法不切实际。应该理解,存在将动画内容嵌入到计算机应用方面的改进的需求。 [0010] 因此本发明的目的是提供一种用于将动画内容嵌入到计算机应用中的新颖的方法以及图形界面。

发明内容

[0011] 因此,一方面提供了一种在计算机应用中嵌入动画内容的方法,其中所述计算机应用具有在其中显示应用内容的相关联的初始透明窗口,所述方法包括: [0012] 将动画内容绘制到至少一个与所述计算机应用窗口重叠的动画内容窗口中; [0013] 对于每一个定义为在所述动画内容下方的所述计算机应用的对象,将该对象绘制在所述计算机应用窗口内除了通常与所述至少一个动画内容窗口相对应的位置之外的适当位置;以及
[0014] 对于每一个定义为在所述动画内容上方的所述计算机应用的对象,将该对象绘制在所述计算机应用窗口内的适当位置。
[0015] 在一个实施例中,在绘制所述计算机应用窗口之前,定义所述至少一个动画内容窗口相对于所述计算机应用窗口的位置。为动画内容定义剪辑区,该剪辑区仅对在所述动画内容下方的每个对象是活动的。所述剪辑区禁止所述动画内容下方的每个对象覆盖所述至少一个动画内容窗口。
[0016] 根据另一方面,提供了一种在初始透明应用窗口内显示包括多个彼此层叠的对象的计算机应用的方法,所述方法包括:
[0017] 在所述应用窗口下方为所述计算机应用的每个动画内容对象创建 动画内容窗口,并指示负责播放所述动画内容对象的播放器直接在其中绘制所述动画内容; [0018] 检查所述计算机应用的所述对象,并为通常与为此创建的所述动画内容窗口相对应的每个动画内容对象定义剪辑蒙版(clipping mask);
[0019] 从下开始向上选择对象;
[0020] 如果所选择的对象不是动画内容对象,则将所述对象绘制在所述应用窗口内除了与每个剪辑蒙版相应的区域;以及
[0021] 如果所选择的对象是动画内容对象,则去除为所述动画内容对象定义的剪辑蒙版,从而允许将所选择的在所述动画内容对象上方的对象绘制在所述动画内容上方。 [0022] 根据又一方面,提供了一种在初始透明应用窗口内显示包括多个对象的计算机应用的方法,所述方法包括:
[0023] 为所述计算机应用的每个动画内容对象定义动画内容窗口;
[0024] 为通常与为此创建的所述动画内容窗口相对应的所述计算机应用的每个动画内容对象定义剪辑蒙版,每个剪辑蒙版仅应用于在其相关联的动画内容对象下方的对象;以及
[0025] 在所述应用窗口内绘制所述计算机应用的对象,其中通过所述剪辑蒙版来禁止所绘制的在动画内容对象下方的非动画内容对象覆盖所述动画内容窗口。 [0026] 根据又一方面,提供了一种呈现执行计算机应用的层叠对象的图形界面,该图形界面包括:
[0027] 透明的应用窗口;
[0028] 至少一个动画内容窗口,该动画内容窗口与其中直接写入动画内容的应用窗口重叠;
[0029] 至少一个非动画内容对象,该动画内容窗口位于动画内容对象下方,其中所述非动画内容对象被绘制到所述应用窗口中除了与所述至少一个动画内容窗口相对应的位置;以及
[0030] 至少一个非动画内容对象,所述非动画内容窗口位于所述动画内 容对象上方,其中所述非动画内容对象被绘制到在所述至少一个动画内容窗口上方的所述应用窗口中。 [0031] 根据又一方面,提供了一种包括计算机程序的计算机可读介质,所述计算机程序用于在初始透明应用窗口内显示包括多个彼此层叠的对象,所述计算机程序包括: [0032] 用于在所述应用窗口下方为所述计算机应用的每个动画内容对象创建动画内容窗口,并指示负责播放所述动画内容对象的播放器直接在其中绘制所述动画内容的计算机程序代码;
[0033] 用于检查所述计算机应用的所述对象,并为通常与为此创建的所述动画内容窗口相对应的每个动画内容对象定义剪辑蒙版的计算机程序代码;
[0034] 用于从下开始向上选择对象的计算机程序代码;
[0035] 用于如果所选择的对象不是动画内容对象,则将所述对象绘制到所述应用窗口内除了与每个剪辑蒙版相对应的区域的计算机程序代码;以及
[0036] 用于如果所选择的对象是动画内容对象,则去除为所述动画内容对象定义的所述剪辑蒙版,从而允许将所选择的在所述动画内容对象上方的对象绘制在所述动画内容上方的计算机程序代码。
[0037] 根据又一方面,提供了一种包含计算机程序的计算机可读介质,所述计算机程序用于在初始透明应用窗口内显示包括多个对象的计算机应用,所述计算机程序包括: [0038] 对用于所述计算机应用的每个动画内容对象的动画内容窗口进行定义的计算机程序代码;
[0039] 对用于通常与为此创建的所述动画内容窗口相对应的所述计算机应用的每个动画内容对象的剪辑蒙版进行定义的计算机程序代码,,每个剪辑蒙版仅应用于在其相关联的动画内容对象下方的对象;以及
[0040] 用于在所述应用窗口内绘制所述计算机应用的对象的计算机程序代码,其中通过所述剪辑蒙版来禁止所绘制的在动画内容对象下方的 非动画内容对象覆盖所述动画内容窗口。
[0041] 应该理解,所述显示方法以及图形界面允许将动画内容直接绘制到屏幕上,而无需所述动画内容驻留在其中已嵌入的所述计算机应用之上。以这种方式,可以有效地绘制和显示所述动画内容,同时仍然允许所述动画内容被其它对象所覆盖。 附图说明
[0042] 下面将参考附图对实施例进行更全面的说明,其中:
[0043] 图1是表示在显示包含嵌入动画内容的计算机应用的过程中执行的一般步骤的流程图。
[0044] 图2是表示在剪辑蒙版定义过程中执行的步骤的流程图。
[0045] 图3是表示在对象绘制过程中执行的步骤的流程图。
[0046] 图4表示包含嵌入动画内容的计算机应用的层叠对象的分解图以及所述相同层叠对象的折叠图(collapsed view)。

具体实施方式

[0047] 提供一种用于将动画内容嵌入到计算机应用中的方法以及图形界面,其中该类型计算机应用包含可以彼此层叠并在动画内容上方显示的各种对象。在本公开物的上下文中,嵌入是指动画内容与呈现在图形界面上的计算机应用窗口共享相同的显示空间,并因此与计算机应用窗口重叠。列表中的对象可以包括表格、控件、图形、动画内容以及其它对象。
[0048] 在运行计算机应用期间,检查构成计算机应用的对象列表以定位动画内容对象(步骤100)。对于列表中的每个动画内容对象,由计算机应用定义呈现在显示器上的图形界面内其中将绘制动画内容的窗口,该窗口驻留在计算机应用窗口的下方(步骤102)。然后计算机应用告知负责播放动画内容的播放器为该动画内容对象定义的窗口在哪里,以使得将内容直接绘制到窗口中,而无需通知计算机应用。将该 窗口定位在动画内容将要出现在计算机应用窗口中的位置。
[0049] 然后由图形界面上的计算机应用在已定义的动画内容窗口上方绘制用于计算机应用的透明的计算机应用窗口(步骤104)。正如那些本领域技术人员所知的,Mac OSX和Windows提供了应用窗口成为透明的能力,以使得无论透明的应用窗口下方是什么都是可见的。以这种方式,所定义的动画内容窗口通过计算机应用窗口是可见的。定义在形状和大小方面与其中将要绘制的动画内容的窗口相对应的剪辑蒙版(步骤106)。然后在计算机应用窗口内处理并自下至上绘制计算机应用的对象。出现在一个或多个动画内容对象下方的列表中的非动画内容对象不能绘制到由相关联的剪辑蒙版定义的区域中,因而不能覆盖显示在与那些动画内容对象相关联的窗口中的动画内容。为非动画内容对象下方的动画内容对象定义的剪辑蒙版在其上方绘制非动画内容对象之前已被去除,因此这些非动画内容对象可以覆盖显示在与其下方的动画内容对象相关联的窗口中的动画内容。应该理解,无论何时计算机应用窗口接收到输入聚焦即变为有效、被移动、或被调整大小时,都执行步骤102到108。有关剪辑蒙版定义以及对象绘制过程的进一步细节下面将参考图2到图4进行描述。
[0050] 在步骤106为动画内容对象定义剪辑蒙版的过程中,最初选择列表中底部对象(图2中的步骤200)并进行核对以确定所选择的对象是否是动画内容对象(步骤202)。如果所选择的对象不是动画内容对象,则检查所述列表以确定是否存在一个或多个其它对象(步骤204)。如果存在,则选择所述列表中的下一个对象(步骤206),并且所述过程返回到步骤202以确定所选择的对象是否是动画内容对象。如果不是,则认为剪辑蒙版定义过程完成。
[0051] 在步骤202,如果所选择的对象是动画内容对象,则确定将动画内容对象绘制到其中的所述窗口的尺寸和形状,并且建立在尺寸和形状上与所述窗口相对应的剪辑蒙版(步骤208)。然后检查列表以确定是 否存在一个或多个其它对象(步骤204)。如果存在,则选择列表中的下一个对象(步骤206),并且过程返回到步骤202以确定所选择的对象是否是动画内容对象。如果不是,则认为所述剪辑蒙版定义过程完成。
[0052] 在步骤108绘制列表中的对象的过程中,最初再次选择所述列表中的底部对象(图3的步骤300),并进行核对以确定其是否是动画内容对象(步骤302)。如果不是,则在计算机应用窗口内其指定的位置绘制所述非动画内容对象(步骤304)。如果在所选择的非动画内容对象上方存在用于一个或多个动画内容对象的剪辑蒙版,则防止将非动画内容对象绘制在由每个剪辑蒙版定义的区域中。以这种方式,如果为非动画内容对象指定的位置与为动画内容指定的窗口重叠,则禁止所述非动画内容对象覆盖所述窗口,确保该窗口保持可见。
[0053] 一旦已绘制非动画内容对象,则检查列表以确定是否存在一个或多个其它对象(步骤306)。如果存在,则选择所述列表中的下一个对象(步骤308),并且所述过程返回到步骤302以确定所选择的对象是否是动画内容对象。如果不是,则认为对象绘制过程完成。
[0054] 在步骤302,如果所选择的对象是动画内容对象,则去除为所述动画内容对象定义的剪辑蒙版(步骤310)。然后计算机应用指示负责播放动画内容的播放器将所述动画内容绘制到其相关的窗口中。然后检查列表以确定是否存在一个或多个其它对象(步骤306)。如果存在,则选择列表中的下一个对象(步骤308),并且过程返回到步骤302以确定所选择的对象是否是动画内容对象。如果不是,则认为所述对象绘制过程完成。在步骤310后将会理解,一旦已去除与动画内容对象相关联的剪辑蒙版,就不能防止在列表中所选择的动画内容对象上方的非动画内容对象覆盖其相关联的在其中绘制了所述动画内容的窗口。
以这种方式,与用户输入注释、绘画、写入等相对应的非动画内容对象可以覆盖动画内容对象。
[0055] 例如,下面转向图4,在分解图以及折叠单视图中示出了计算机应用的对象,如由所述图形界面所显示的。在该示例中,所述计算机应用包括如下所示自下至上列出的下列对象:
[0056] 阴影背景400;
[0057] 徒手画圆402;
[0058] 动画内容对象;以及
[0059] 手绘线406。
[0060] 在绘制计算机应用对象的过程中,由于阴影背景以及徒手画圆非动画内容对象400和402分别出现在列表中动画内容对象下方,在步骤108,当绘制这些对象时,为动画内容对象定义的剪辑蒙版禁止这些对象绘制在为动画内容对象指定的窗口410上,确保该窗口通过这些对象保持完全可见。然而手绘线非动画内容对象406出现在列表中动画内容对象上方,因此,当绘制该对象时,已将为所述动画内容对象定义的剪辑蒙版去除。当然这样就允许手绘线对象406覆盖为所述动画内容对象指定的窗口410。
[0061] 上述显示包含嵌入动画内容的计算机应用的方法特别适合运行于诸如那些在Martin的美国专利No.5,448,263以及Morrison等人的、指定给阿尔伯特省卡尔加里的SMART技术有限公司的美国专利No.6,803,906中所公开的触摸系统上的交互式应用。当然,所述方法基本上可以用在其中运行有包含嵌入动画内容的计算机应用的任何环境下。 [0062] 所述方法以及图形界面可以体现为由诸如个人计算机的处理单元或其它计算系统环境执行并存储在计算机可读介质上的计算机可执行指令或程序代码。所述计算机可读介质是可以存储数据的任何数据存储设备,此后其可以由计算机系统读取。计算机可读介质的例子例如包括只读存储器、随机存取存储器、CD-ROM、磁带以及光学数据存 储设备。所述计算机可读程序代码也可以通过包含耦合的计算机系统的网络进行分配,以便所述计算机可读程序代码以分布式方式存储和执行。
[0063] 虽然以上对实施例进行了描述,那些本领域技术人员将会理解到在不脱离由所附的权利要求书定义的精神及其范围的情况下可以进行各种变化及修改。