通过生成指令列表将FLASH内容转换为HTML内容的制作方法

文档序号:13561381阅读:204来源:国知局
通过生成指令列表将FLASH内容转换为HTML内容的制作方法

相关申请的交叉引用

本申请要求于2015年11月17日提交的题为“convertingflash-contenttohtmlcontentbygeneratinganinstructionlist(通过生成指令列表将flash内容转换为html内容)”的美国专利申请号14/943,964的权益和优先权,所述美国专利申请的全部内容在此并入本文。



背景技术:

在计算机联网环境中,可以使用诸如flash(swf)电影文件或应用的格式在基于互联网的资源页面(例如,网页)上渲染视觉内容——光栅图形和矢量图形二者。使用flash格式渲染视觉内容可能会占用计算机的大部分资源。运行flash格式的应用也可能易受到安全问题影响。



技术实现要素:

至少一个方面涉及一种将flash内容转换为超文本标记语言(html)内容的方法。所述方法可以包括接收基于flash的内容项目,所述基于flash的内容项目包括显示列表,所述显示列表包括第一显示对象和第二显示对象。所述方法可以包括遍历显示列表以识别第一显示对象的类别类型。所述方法可以包括基于第一显示对象的类别类型生成第一基于html的指令集。所述方法可以包括将所生成的第一基于html的指令集插入到指令列表中。所述方法可以包括遍历显示列表以识别第二显示对象的类别类型。所述方法可以包括基于第二显示对象的类别类型来生成第二基于html的指令集。所述方法可以包括将所生成的第二基于html的指令集插入到包括第一基于html的指令集的指令列表中。所述方法可以包括将指令列表以一数据结构存储到数据库中。

在一些实施方式中,所述方法可以包括基于触发条件来生成指定用于执行第一基于html的指令集和第二基于html的指令集的应用的执行策略。在一些实施方式中,所述触发条件指定所述应用响应于确定应用空闲而执行第一基于html的指令集和第二基于html的指令集中的至少一个。在一些实施方式中,所述方法可以包括通过策略生成器模块基于触发条件来生成指定用于执行第一基于html的指令集和第二基于html的指令集的应用的执行策略。在一些实施方式中,所述触发条件指定所述应用响应于确定第一基于html的指令集和第二基于html的指令集中的至少一个的执行持续时间超过预定义的时间延迟而执行第一基于html的指令集和第二基于html的指令集中的至少一个。在一些实施方式中,所述方法可以包括基于第一基于html的指令集和第二基于html的指令集的权重对指令列表进行排序。

在一些实施方式中,所述方法可以包括确定第一显示对象包括子显示对象。在一些实施方式中,所述方法可以包括响应于确定第一显示对象包括子显示对象而识别所述子显示对象的类别类型。在一些实施方式中,所述方法可以包括基于子显示对象的类别类型来生成第三基于html的指令集。在一些实施方式中,所述方法可以包括将第三基于html的指令集插入到指令列表中。在一些实施方式中,将所生成的第一基于html的指令集插入到指令列表中可以进一步包括:在将第三基于html的指令集插入到指令列表之后,插入第一基于html的指令集。

在一些实施方式中,识别第一显示对象的类别类型可以进一步包括确定第一显示对象包括movieclip显示对象容器,所述movieclip显示对象容器包括第一子显示对象和第二子显示对象。在一些实施方式中,生成第一基于html的指令集可以进一步包括:响应于确定第一显示对象包括movieclip显示对象容器,基于第一子显示对象的类别类型来生成针对第一子显示对象的第三基于html的指令集。在一些实施方式中,生成第一基于html的指令集可以进一步包括:响应于确定第一显示对象包括movieclip显示对象容器,基于第二子显示对象的类别类型来生成针对第二子显示对象的第四基于html的指令集。在一些实施方式中,将所生成的第一基于html的指令集插入到指令列表中可以进一步包括插入第三基于html的指令集和第四基于html的指令集。

在一些实施方式中,生成第三基于html的指令集可以进一步包括基于movieclip显示对象容器的混合模式来生成混合指令。在一些实施方式中,生成第四基于html的指令集可以进一步包括基于movieclip显示对象容器的过滤器来生成过滤器指令。

在一些实施方式中,识别第一显示对象的类别类型可以进一步包括识别第一显示对象的类别类型,第一显示对象的类别类型包括bitmap、shape、sprite、movieclip、textfield、textline、statictext、或video中的一个。在一些实施方式中,识别第二显示对象的类别类型可以进一步包括识别第一显示对象的类别类型,第二显示对象的类别类型包括bitmap、shape、sprite、movieclip、textfield、textline、statictext、或video中的一个。在一些实施方式中,生成第一基于html的指令集可以进一步包括生成包括堆栈指令、剪辑指令、混合指令、绘制形状指令、绘制文本指令、绘制位图指令、和绘制视频指令中的至少一个的第一基于html的指令集。在一些实施方式中,生成第二基于html的指令集可以进一步包括生成包括堆栈指令、剪辑指令、混合指令、绘制形状指令、绘制文本指令、绘制位图指令和绘制视频指令中的至少一个的第二基于html的指令集。

在一些实施方式中,插入所生成的第一基于html的指令集可以进一步包括将所生成的第一基于html的集编队入指令列表中。在一些实施方式中,指令列表可以包括队列数据结构。在一些实施方式中,插入所生成的第二基于html的指令集可以进一步包括将所生成的第二基于html的指令集编队入指令列表中。

至少一个方面涉及一种用于将flash内容转换为超文本标记语言(html)内容的系统。所述系统可以包括执行一个或多个处理器的转码器模块。所述转码器模块可以接收基于flash的内容项目,所述基于flash的内容项目包括显示列表,所述显示列表包括第一显示对象和第二显示对象。所述转码器模块可以遍历显示列表以识别第一显示对象的类别类型。所述转码器模块可以基于第一显示对象的类别类型来生成第一基于html的指令集。所述转码器模块可以将所生成的第一基于html的指令集插入到指令列表中。所述转码器模块可以遍历显示列表以识别第二显示对象的类别类型。所述转码器模块可以基于第二显示对象的类别类型来生成第二基于html的指令集。所述转码器模块可以将所生成的第二基于html的指令集插入到包括第一基于html的指令集的指令列表中。所述转码器模块可以将指令列表以一数据结构存储到数据库中。

在一些实施方式中,所述系统可以进一步包括策略生成器。在一些实施方式中,所述策略生成器可以基于触发条件来生成指定用于执行第一基于html的指令集和第二基于html的指令集的客户端设备的应用的执行策略。在一些实施方式中,所述触发条件指定所述应用响应于确定应用空闲而执行第一基于html的指令集和第二基于html的指令集中的至少一个。在一些实施方式中,所述策略生成器可以基于触发条件来生成指定用于执行第一基于html的指令集和第二基于html的指令集的客户端设备的应用的执行策略。在一些实施方式中,所述触发条件指定所述应用响应于确定第一基于html的指令集和第二基于html的指令集中的至少一个的执行持续时间超过预定的时间延迟而执行第一基于html的指令集和第二基于html的指令集中的至少一个。在一些实施方式中,所述策略生成器可以基于第一基于html的指令集和第二基于html的指令集的权重对指令列表进行排序。

在一些实施方式中,转码器模块可以确定第一显示对象包括子显示对象。在一些实施方式中,转码器模块可以响应于确定第一显示对象包括子显示对象而识别所述子显示对象的类别类型。在一些实施方式中,转码器模块可以基于子显示对象的类别类型来生成第三基于html的指令集。在一些实施方式中,转码器模块可以将第三基于html的指令集插入到指令列表中。在一些实施方式中,转码器模块可以在将第三基于html的指令集插入到指令列表之后,插入第一基于html的指令集。

在一些实施方式中,转码器模块可以确定第一显示对象包括movieclip显示对象容器,所述movieclip显示对象容器包括第一子显示对象和第二子显示对象。在一些实施方式中,转码器模块可以响应于确定第一显示对象包括movieclip显示对象容器而基于第一子显示对象的类别类型来生成针对第一子显示对象的第三基于html的指令集。在一些实施方式中,转码器模块可以响应于确定第一显示对象包括movieclip显示对象容器而基于第二子显示对象的类别类型来生成针对第二子显示对象的第四基于html的指令集。在一些实施方式中,转码器模块可以插入第三基于html的指令集和第四基于html的指令集。

在一些实施方式中,转码器模块可以基于movieclip显示对象容器的混合属性来生成混合指令。在一些实施方式中,转码器模块可以基于movieclip显示对象容器的过滤器来生成过滤器指令。

在一些实施方式中,转码器模块可以识别第一显示对象的类别类型,第一显示对象的类别类型包括bitmap、shape、sprite、movieclip、textfield、textline、statictext或video中的一个。在一些实施方式中,转码器模块可以识别第一显示对象的类别类型,第二显示对象的类别类型包括bitmap、shape、sprite、movieclip、textfield、textline、statictext、或video中的一个。在一些实施方式中,转码器模块可以生成包括堆栈指令、剪辑指令、混合指令、绘制形状指令、绘制文本指令、绘制位图指令、和绘制视频指令中的至少一个的第一基于html的指令集。在一些实施方式中,转码器模块可以生成包括堆栈指令、剪辑指令、混合指令、绘制形状指令、绘制文本指令、绘制位图指令和绘制视频指令中的至少一个的第二基于html的指令集。

在一些实施方式中,转码器模块可以将所生成的第一基于html的集编队入指令列表队列中。在一些实施方式中,指令列表可以包括队列数据结构。在一些实施方式中,转码器模块可以将所生成的第二基于html的指令集编队入指令列表队列中。

应理解,可以任何便利的形式来实现各方面。例如,可以通过适当的计算机程序来实现各方面,所述计算机程序可以承载于可以是有形载体介质(例如磁盘)或无形载体介质(例如通信信号)的适当载体介质上。也可以使用合适的装置来实现各方面,所述装置可以采用运行被布置为实现所述方面的计算机程序的可编程计算机的形式。

下面详细讨论这些和其它方面和实施方式。前述信息和以下详细描述包括各个方面和实施方式的说明性示例,并且提供用于理解所要求保护的方面和实施方式的性质和特征的概述或框架。附图提供了对各个方面和实施方式的说明和进一步理解,并且结合在本说明书中并构成其一部分。

附图说明

附图不意图按比例绘制。在各个附图中相似的附图标记和名称指示相似的元素。为了清楚起见,可能不在每个图中标记每个组件。在附图中:

图1是描绘根据说明性实施方式的,用于在计算机网络环境中将flash内容转换为html内容的环境的一个实施方式的框图;

图2是描绘根据说明性实施方式的,将flash内容转换为html内容的一个实施方式的过程图;

图3描绘根据说明性实施方式的,将flash内容转换为html内容的方法的流程图;以及

图4图示根据说明性实施方式的,可以用于实现本文描述和示出的系统元素和方法的计算机系统的通用架构的框图。

具体实施方式

以下是关于在计算机网络环境中将flash内容转换为html内容的方法、装置和系统的各个概念和所述方法、装置和系统的实施方式的更详细描述。上面介绍并在下面更详细讨论的各个概念可以多种方式中的任何一种来实现,因为所描述的概念不限于任何特定的实现方式。

视觉内容——光栅图形和矢量图形二者——可以使用例如shockwaveflash(swf)电影文件或应用的adobeflash格式在基于互联网的资源页面(例如,网页)上渲染。每个adobeflash文件可以对应于被派发给客户端设备以用于在基于互联网的资源页面上呈现的视觉内容,例如内容项目(例如,网页上的内容)。每个adobeflash文件可以包括可以使得计算设备生成或访问显示列表的指令(例如,编译代码),所述显示列表可以指定用于渲染视觉内容的可见元素的组成。显示列表可以包括以分层树结构相互互连的多个显示对象,诸如shape(形状)、text(文本)、movieclip(影片剪辑)和bitmap(位图)等等。然而,使用adobeflash格式内容渲染视觉内容可能需要计算机的大量资源,从而导致更快的功率消耗,并且还可能引发互联网安全问题。通过将adobeflash文件转换为超文本标记语言(html)代码并使用html代码来渲染视觉内容,可以解决其中一些挑战。一个实施方式可以是将显示列表的每个显示对象转换为html图形,然后将每个转换的图形元素直接渲染到单独的html画布元素上。然而,这种实施方式也可能需要计算机的大量资源,从而延迟其它进程,诸如在网页上加载或渲染其它元素。此外,从人机交互(hci)的角度来看,由此产生的时延可能导致访问网页时的不良用户体验。

为了解决这些和其它挑战,本公开提供了用于通过生成基于html的指令列表来将adobeflash内容转换为html内容的系统和方法。转码器模块可以遍历adobeflash文件的显示列表的显示对象。在每个显示对象处,转码器模块可以解析显示对象以识别显示类型的类别类型。类别类型的示例可以包括shape、text、movieclip和bitmap等等。基于所识别的类别类型,转码器模块可以为当前显示对象生成基于html的指令集。指令的示例可以包括堆栈指令、剪辑指令、混合指令、或绘制指令。堆栈指令可以指定对应于当前显示对象的视觉元素在渲染时将被剪辑或者与对应于后续显示对象的视觉元素进行混合。剪辑指令可以指定对应于当前显示对象的视觉元素在渲染时将剪辑、过滤或截断对应于之前的显示对象的视觉元素。混合指令可以指定对应于当前显示对象的视觉元素在渲染时将与对应于之前的显示对象的视觉元素进行混合。绘制指令可以指定对应于当前显示对象的视觉元素将用指定的图形(例如,形状、位图、文本或视频)渲染。在遍历显示列表的同时,转码器模块可以将每个生成的基于html的指令集插入到用于渲染视觉内容的指令列表中。

另外,执行策略生成器可以创建执行策略以指定web应用根据预定义的顺序和定时来处理指令列表的指令。例如,执行策略可以在web应用空闲时指定该web应用将执行每条指令,同时加载网页。执行策略还可以指定web应用在指定的超时期间定期执行一些指令,然后允许web应用加载网页的其余部分。

在计算机联网环境的场境(context)下,数据处理系统可以从内容发布者计算设备或内容提供者计算设备接收基于flash的内容项目。当请求将基于flash的内容项目转换为基于html的内容项目时,通过遍历与基于flash的内容项目相对应的显示列表的显示对象并且生成基于html的指令集,数据处理系统可以将基于flash的内容项目转换为基于html的指令。另外,在请求来自客户端设备的内容时,数据处理系统可以将指令列表连同执行策略一起传输到客户端设备,以供在信息资源页面上渲染视觉内容。

通过使用指令列表来渲染视觉内容而不是单独地将每个显示对象转换并渲染到画布上,web应用可以能够进一步保留计算机资源,由此减少计算设备所消耗的电力的量。另外,通过根据执行策略来执行指令列表,可以释放web应用的资源,使得web应用可以更快地加载网页上的其它元素,从而提升用户对网页的体验。

至少一个方面涉及一种将flash内容转换为超文本标记语言(html)内容的方法。所述方法可以包括通过在一个或多个处理器上执行的转码器模块接收基于flash的内容项目,所述基于flash的内容项目包括可以使得计算设备生成或访问包括第一显示对象和第二显示对象的显示列表的指令。所述方法可以包括遍历显示列表以识别第一显示对象的类别类型。所述方法可以包括通过转码器模块基于第一显示对象的类别类型来生成第一基于html的指令集。所述方法可以包括将所生成的第一基于html的指令集插入到指令列表中。所述方法可以包括遍历显示列表以识别第二显示对象的类别类型。所述方法可以包括基于第二显示对象的类别类型生成第二基于html的指令集。所述方法可以包括将所生成的第二基于html的指令集插入到包括第一基于html的指令集的指令列表中。所述方法可以包括以一数据结构存储指令列表。

图1的框图描绘用于将flash内容转换为html内容的环境的一个实施方式。环境100包括至少一个数据处理系统110。数据处理系统110可以包括至少一个处理器和存储器,即处理电路。存储器存储处理器可执行指令,所述处理器可执行指令在由处理器执行时使得所述处理器执行本文所描述的一个或多个操作。处理器可以包括微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)等或其组合。存储器可以包括但不限于能够为处理器提供程序指令的电子、光学、磁性或任何其它存储装置或传输设备。存储器可进一步包括软盘、cd-rom、dvd、磁盘、存储器芯片、asic、fpga、只读存储器(rom)、随机存取存储器(ram)、电可擦除rom(eeprom)、可擦除可编程rom(eprom)、闪存、光学介质,或处理器可以从其读取指令的任何其它合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码。数据处理系统可以包括可以执行各个功能的一个或多个计算设备或服务器。

网络105可以包括计算机网络,例如互联网、局域网、广域网、城域网或其它区域网络、内联网、卫星网络、诸如语音或数据移动电话通信网络的其它计算机网络、以及它们的组合。系统100的数据处理系统110可以经由网络105例如与至少一个内容提供者计算设备115、至少一个内容发布者计算设备120或至少一个客户端设备125通信。网络105可以是在用户计算设备115、数据处理系统110和一个或多个内容源——例如web服务器、广告服务器等之间中继信息的任何形式的计算机网络。例如,网络105可以包括互连网和/或其它类型的数据网络,诸如局域网(lan)、广域网(wan)、蜂窝网络、卫星网络或其它类型的数据网络。网络105还可以包括被配置为在网络105内接收和/或传输数据的任何数目的计算设备(例如,计算机、服务器、路由器、网络交换机等)。网络105可以进一步包括任何数目的硬连线和/或无线连接。例如,用户计算设备115可以与硬连线(例如,经由光纤电缆、cat5电缆等)到网络105中的其它计算设备的收发器无线地(例如,经由wifi、蜂窝、无线电等)通信。

内容提供者计算设备115可以包括由内容提供者实体操作以提供用于在客户端设备125处的信息资源上显示的内容项目的服务器或其它计算设备。由内容提供者计算设备115提供的内容可以包括用于在信息资源上显示的第三方内容项目或创意(例如广告),所述信息资源诸如包括主要内容——例如由内容发布者计算设备120提供的内容——的网站或网页。内容项目也可以显示在搜索结果网页上。例如,内容提供者计算设备115可以提供或作为广告或其它内容项目的来源,以用于在内容网页的内容位(contentslot)中显示,或用于在由搜索引擎提供的搜索结果着陆页面上显示,所述内容网页诸如网页的主要内容由公司提供的公司网页。与内容提供者计算设备115相关联的内容项目可以在除了网页以外的信息资源上显示,诸如在智能手机或其它客户端设备125上作为执行应用的一部分而显示的内容。

内容发布者计算设备120可以包括由内容发布实体操作以提供用于经由网络105显示的主要内容的服务器或其它计算设备。例如,内容发布者计算设备120可以包括提供在网页上显示的主要内容的网页运营者。主要内容可以包括除由内容发布者计算设备120提供的内容以外的内容,并且网页可以包括被配置用于显示来自内容提供者计算设备115的第三方内容项目(例如,广告)的内容位。例如,内容发布者计算设备120可以操作公司的网站并且可以提供关于该公司的内容以供在网站的网页上显示。网页可以包括被配置用于显示第三方内容项目——例如内容提供者计算设备115的广告——的内容位。在一些实施方式中,内容发布者计算设备120包括运营搜索引擎网站的搜索引擎运营者的搜索引擎计算设备(例如服务器)。搜索引擎网页(例如,结果或登陆网页)的主要内容可以包括搜索结果以及内容位中显示的第三方内容项目,诸如来自内容提供者计算设备115的内容项目。在一些实施方式中,内容发布者计算设备120可以包括用于派发视频内容的服务器。

客户端设备125可以包括被配置为经由网络105进行通信以显示数据的计算设备,所述数据诸如由内容发布者计算设备120提供的内容(例如,主网页内容或其它信息资源)和由内容提供者计算设备115提供的内容(例如,第三方内容项目,诸如被配置为在网页的内容位中显示的广告)。客户端设备125、内容提供者计算设备115和内容发布者计算设备120可以包括台式计算机、膝上型计算机、平板电脑、智能手机、个人数字助理、移动设备、消费者计算设备、服务器、客户端、数字录像机、用于电视的机顶盒、视频游戏控制台,或被配置为经由网络105进行通信的任何其它计算设备。客户端设备125可以是通信设备,终端用户可以通过该通信设备提交接收内容的请求。该请求可以是对搜索引擎的请求,并且该请求可以包括搜索查询。在一些实施方式中,请求可以包括访问网页的请求。

内容提供者计算设备115、内容发布者计算设备120和客户端设备125可以包括处理器和存储器,即处理电路。存储器存储机器指令,所述机器指令在由处理器执行时使得处理器执行本文所描述的一个或多个操作。处理器可以包括微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)等或其组合。存储器可以包括但不限于能够为处理器提供程序指令的电子、光学、磁性或任何其它存储或传输设备。存储器可进一步包括软盘、cd-rom、dvd、磁盘、存储器芯片、asic、fpga、只读存储器(rom)、随机存取存储器(ram)、电可擦除rom(eeprom)、可擦除可编程rom(eprom)、闪存、光学介质,或处理器可以从其读取指令的任何其它合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码。

内容提供者计算设备115、内容发布者计算设备120和客户端设备125还可以包括一个或多个用户接口设备。通常,用户接口设备指代通过生成感官信息(例如,显示器上的可视化、一个或多个声音等)将数据传送给用户和/或将从用户接收到的感官信息转换为电子信号的任何电子设备(例如,键盘、鼠标、指示设备、触摸屏显示器、麦克风等)。根据各个实施方式,一个或多个用户接口设备可以在内容提供者计算设备115、内容发布者计算设备120和客户端设备125的壳体内部(例如,内置显示器、麦克风等),或在内容提供者计算设备115、内容发布者计算设备120和客户端设备125的壳体外部(例如,连接到用户计算设备115的显示屏、连接到用户计算设备115的扬声器等)。例如,内容提供者计算设备115、内容发布者计算设备120和客户端设备125可以包括电子显示器,其使用经由网络105从一个或多个内容源和/或从数据处理系统110接收的网页数据来可视地显示网页。在一些实施方式中,内容放置活动管理器或诸如广告主的第三方内容提供者可以经由内容提供者计算设备115与数据处理系统110通信。在一些实施方式中,广告主可以经由在内容提供者计算设备115的用户界面设备上显示的用户界面与数据处理系统110进行通信。

数据处理系统110可以包括至少一个服务器。例如,数据处理系统110可以包括位于至少一个数据中心或服务器群中的多个服务器。在一些实施方式中,数据处理系统110包括内容放置系统,例如广告服务器或广告放置系统。数据处理系统110可以包括至少一个转码器模块130、至少一个策略生成器模块135、和至少一个数据库140。内容项目选择130和策略生成器模块135均可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代理、设备,或被配置为经由网络105与数据库140通信并与其它计算设备(例如,内容提供者计算设备115、内容发布者计算设备120、或客户端设备125)通信的其它逻辑设备,诸如可编程逻辑阵列。

转码器模块130和策略生成器模块135可以包括或执行至少一个计算机程序或至少一个脚本。转码器模块130和策略生成器模块135可以是分离的组件、单个组件,或数据处理系统110、内容提供者计算设备115、内容发布者计算设备120或客户端设备125的一部分。转码器模块130和策略生成器模块135可以包括软件和硬件的组合,诸如被配置为执行一个或多个脚本的一个或多个处理器。

数据处理系统110还可以包括一个或多个内容储存库或数据库140。数据库140可以在数据处理系统110本地。在一些实施方式中,数据库140可以远离数据处理系统110,但可以经由网络105与数据处理系统110通信。数据库140可以包括网页、flash格式的视觉内容,以及用于渲染基于html的视觉内容等等的指令列表,以派发至客户端设备125。在一些实施方式中,网页、网页的部分以及内容项目可以包括图2中示意性描绘的那些。下文将提供数据库140的内容的更多细节。

转码器模块130可以接收基于flash的内容项目,包括使得计算设备生成或访问显示列表的指令。在一些实施方式中,转码器模块130可以接收呈文件或一个或多个分组形式的基于flash的内容项目。在一些实施方式中,转码器模块130可以从内容提供者计算设备115、内容发布者计算设备120、客户端设备125、或连接到数据处理系统110的输入设备接收基于flash的内容项目。例如,基于flash的内容项目可以是shockwaveflash(swf)文件格式、flashvideo(flv、f4v、f4p、f4a、f4p或swc)文件格式、flashactionscript(as、asc、abc、aso)文件格式、actionmessage(amf)格式文件、或用于渲染视觉内容的任何其它flash文件格式。

显示列表可以包括分层布置——诸如以树结构布置——的一个或多个显示对象。例如,显示列表可以包括第一显示对象和第二显示对象。在这个示例中,第二显示对象可以是第一显示对象的子对象。一个或多个显示对象中的每一个可以表示使用基于flash的内容项目渲染的视觉内容的视觉元素或组成部分。包括在显示列表中的所有一个或多个显示对象可以从displayobject(显示对象)类得到。使用displayobject类派生的显示对象的类型可以是阶段(stage类)、显示对象容器(displayobjectcontainer类),以及其它类型的显示对象,例如bitmap类、shape类、sprite类、movieclip类、textfield(文本字段)类、textline(文本行)类、statictext(静态文本)类和video类等等。显示对象容器可以包括在显示列表内分层布置的一个或多个其它显示对象(例如,子显示对象),诸如树结构的子集。应当理解,一些派生的显示对象也可以是显示对象容器。例如,movieclip和sprite显示对象可以是包括一个或多个其它子显示对象的显示对象容器。

转码器模块130可以遍历显示列表以识别显示对象的类别类型。在一些实施方式中,转码器模块130可以前序(例如,根、左子树、然后右子树)、中序(例如,左子树、根、然后右子树)或后序(左子树、右子树、然后是根)中的一个遍历显示列表。例如,转码器模块130可以遍历显示列表以识别当前显示对象的类别类型。转码器模块130接着可以通过调用“getchildat(i)”函数并迭代地增加索引“i”来检索显示列表的显示对象以识别当前显示对象的子显示对象的类别类型。一旦已检索到显示列表的子显示对象,转码器模块130就可以通过调用“trace()”函数来确定当前显示对象是否具有特定的类别类型。在这个示例中,为了确定显示对象是否是textfield显示对象,转码器模块130可以调用“trace(cur_objectistextfield)”来获得指示当前显示对象是否是textfield显示对象的布尔值。在一些实施方式中,转码器模块130可以将显示对象的类别类型识别为bitmap、shape、sprite、movieclip、textfield、textline、statictext类以及video类等等中的一个。

在一些实施方式中,转码器模块130可以确定显示对象是否是显示对象容器。例如,转码器模块130可以调用“trace()”函数来确定当前显示对象是否是显示对象容器。可以是显示对象容器的类别类型包括movieclip类、textline类和sprite类等等。在一些实施方式中,转码器模块130可以响应于确定显示对象是显示对象容器来确定显示对象容器是否包括一个或多个子显示对象。在一些实施方式中,转码器模块130可以识别显示对象容器的一个或多个子显示对象中的每一个的类别类型。在一些实施方式中,转码器模块130可以确定显示对象是movieclip显示对象容器还是sprite显示对象容器。movieclip显示对象容器可以包括以时间线布置的一个或多个子显示对象。sprite显示对象容器可以包括一个或多个子显示对象。textline显示对象容器可以包括一个或多个子显示对象。在一些实施方式中,转码器模块130可以识别movieclip显示对象容器的一个或多个子显示对象中的每一个的类别类型。在一些实施方式中,转码器模块130可以识别由movieclip显示对象容器引用的外部flash内容项目。在一些实施方式中,转码器模块130可以识别sprite显示对象容器的一个或多个子显示对象中的每一个的类别类型。

转码器模块130可以基于显示对象的类别类型生成基于html的指令集。在一些实施方式中,响应于确定显示对象是显示对象容器或者在其之后,转码器模块130可以基于显示对象的每个子显示对象的类别类型来生成另一基于html的指令集。所述基于html的指令集可以是绘制位图指令集、绘制文本指令集、绘制形状指令集、堆栈指令集、混合指令集、剪辑指令集、过滤器指令集和绘制视频指令集等等中的至少一个。绘制位图指令集可以指定将用由显示对象指定的图形来绘制对应于显示对象的视觉元素。绘制文本指令集可以指定将用由显示对象指定的文本字符串来绘制对应于显示对象的视觉元素。在一些实施方式中,绘制指令集可以包括绘制编辑文本指令集和绘制静态文本指令集。绘制形状指令集可以指定将用由显示对象指定的形状来绘制对应于显示对象的视觉元素。堆栈指令集可以指定对应于显示对象的视觉元素在渲染时将被绘制(例如,位图、文本或形状)并且剪辑或与对应于另一显示对象的另一视觉元素混合。混合指令集可以指定对应于显示对象的视觉元素在渲染时将与对应于显示对象的另一视觉元素混合。剪辑指令集可以指定对应于显示对象的视觉元素在渲染时将剪辑或截断对应于另一显示对象的另一视觉元素。在一些实施方式中,剪辑指令集可以包括开始剪辑指令集、应用剪辑指令集和结束剪辑指令集。过滤器指令集可以指定在渲染时将过滤对应于显示对象的视觉元素。绘制视频指令集可以指定将根据显示对象的视频数据的规范来绘制、渲染或以其它方式播放对应于显示对象的视频视觉元素。

基于html的指令集可以包括html代码(例如,html5标记)。在一些实施方式中,基于html的指令集可以包括javascript代码(例如,使用“<script>…</script>”标签)和层叠样式表(css)标记。基于html的指令集可以使得应用(例如web浏览器)渲染与基于flash的内容项目相同的视觉内容。应了解,与执行基于flash的内容项目以渲染视觉内容相比,执行基于html的指令集以渲染相同的视觉内容可以节省计算机资源(例如,cpu和存储器使用)。因此,执行基于html的指令集可以降低功耗,并且允许计算设备可用于其它进程。此外,共享单个生成的基于html的指令集以跨多个计算设备渲染视觉内容可导致更加节省计算机资源和功耗。

在一些实施方式中,响应于识别显示对象的类别类型是bitmap类,转码器模块130可以生成绘制位图指令集。在一些实施方式中,转码器模块130可以识别对应于显示对象的位图数据。位图数据可以包括来自外部图像文件或任何光栅图形格式的源的光栅图形数据,例如位图(bmp)格式文件、便携式网络图形(png)格式文件、标记图像文件格式(tiff)格式文件、联合图像专家组(jpeg)格式文件和图形交换格式(gif)等等。在一些实施方式中,转码器模块130可以识别外部图像文件或源的位置。外部图像文件或源的位置可以包括在计算设备的存储(例如,计算机系统400的存储)上的文件路径名,或标识计算机网络位置的统一资源定位符(url)(例如“https://www.example.com/example.bmp”)。在一些实施方式中,转码器模块130可以识别对位图数据的一个或多个改变。一个或多个改变可以由外部图像文件之外的显示对象指定。例如,一个或多个改变可以包括使位图数据的尺寸或分辨率偏移、操纵位图数据的像素、指定位图数据的透明度以及改变位图数据的颜色方案等等。在一些实施方式中,转码器模块130可以为位图数据生成包括指定位图数据的源的“<img>”标签、“src”标签以及指定位图数据的替选名称或文本的“alt”标签的绘制形状指令集。在一些实施方式中,转码器模块130可以使用与一个或多个改变等同的基于html的代码来生成对位图数据的一个或多个改变的绘制形状指令集。例如,如果显示对象指定位图数据的alpha(例如,不透明度)是50%,则转码器模块130可以生成包括“bmp.globalalpha=0.5”的基于html的代码。

在一些实施方式中,响应于识别显示对象的类别类型是textfield、textline或statictext类,转码器模块130可以生成绘制文本指令集。在一些实施方式中,响应于识别显示对象的类别类型是textfield或textline类,转码器模块130可以生成绘制编辑文本指令集。在一些实施方式中,响应于识别显示对象的类别类型是textfield、textline或者statictext类,转码器模块130可以生成绘制静态文本指令集。在一些实施方式中,转码器模块130可以识别对应于显示对象的文本数据。所述文本数据可以包括显示对象的文本字段中包括的任何字符串。在一些实施方式中,转码器模块130可以使用显示对象的文本字段中包括的字符串来为文本数据生成绘制静态文本指令集。例如,如果显示对象的文本字段包括字符串“xyz”,则转码器模块130可以生成绘制静态文本指令集以包括代码“txt.filltext(“xyz”)”。在一些实施方式中,转码器模块130可以识别文本数据的一个或多个属性。例如,文本字段的一个或多个属性可以包括字体、大小、颜色、旋转、比例和背景颜色等等。在一些实施方式中,转码器模块130可以使用与一个或多个改变等同的基于html的代码来生成对文本数据的一个或多个改变的绘制编辑文本指令集。例如,如果显示对象指定文本的字体是“comicsans”、大小为20像素,并且与元素的中心对齐,则转码器模块130可以生成编辑文本指令集以包括代码“txt.font=“20pxcomicsansms”和“txt.textalign=“center””。

在一些实施方式中,响应于识别显示对象的类别类型是shape类,转码器模块130可以生成绘制形状指令集。在一些实施方式中,转码器模块130可以识别对应于显示对象的形状数据。形状数据可以包括形状(例如矩形、圆形和线)、一个或多个参考点(例如,结束点、锚点、终点和坐标)、颜色、填充、渐变、不透明性、旋转、比例和曲线等等。在一些实施方式中,转码器模块130可以使用与形状数据等同的基于html的代码来为形状数据生成绘制形状指令集。例如,如果显示对象使用基于flash的代码“shape.graphics.drawrect(30,40,60,20)”指定形状是在(30,40)的像素位置处的像素大小为(60×20)的矩形,则转码器模块130可以为绘制形状指令集生成包括“shp.fillrect(30,40,6020)”的基于html的代码。在这个示例中,如果显示对象指定将用线性从蓝色到白色的径向渐变填充矩形,则转码器模块130可以利用包括指定相应颜色范围的“createlineargradient()”函数的基于html的代码来生成绘制形状指令。

在一些实施方式中,响应于识别显示对象的类别类型是movieclip类或sprite类,转码器模块130可以为movieclip显示对象容器或sprite显示对象容器的一个或多个子显示对象中的每一个生成基于html的指令集。应理解,movieclip类可以是sprite类的派生类,包括许多相同的属性和函数。在一些实施方式中,转码器模块130可以生成对应于movieclip显示对象容器或sprite显示对象容器的阶段显示对象的堆栈指令。一个或多个子显示对象可以包括其它显示对象类的显示对象,例如bitmap类、shape类、textfield类、textline类和statictext类。一个或多个子显示对象中的至少一个可以是第一子显示对象,并且一个或多个子显示对象中的至少一个其他子显示对象可以是第二子显示对象。如上所述,转码器模块130可以识别movieclip显示对象容器或sprite显示对象容器的一个或多个子显示对象中的每一个的类别类型。在一些实施方式中,转码器模块130可以基于为相应的帧显示对象识别的类别类型来为一个或多个子显示对象中的每一个生成基于html的指令集。例如,转码器模块130可以使用上述功能为相应的帧显示对象生成基于html的指令集。

在一些实施方式中,转码器模块130可以为movieclip显示对象容器或sprite显示对象容器生成混合指令集。在一些实施方式中,转码器模块130可以从movieclip显示对象容器或sprite显示对象容器的一个或多个子显示对象中识别混合模式。在一些实施方式中,响应于为一个或多个子显示对象中的每一个或一个或多个子显示对象中的每一个生成基于html的指令集或者在其之后,转码器模块130可以识别混合模式。混合模式的示例可以包括普通(blendmode.normal)、图层(blendmode.layer)、正片叠底(blendmode.multiply)、滤色(blendmode.screen)、变亮(blendmode.lighten)、变暗(blendmode.darken)、差值(blendmode.difference)、增加(blendmode.add)、减去(blendmode.subtract)、反转(blendmode.invert)、alpha(blendmode.alpha)、擦除(blendmode.erase)、叠加(blendmode.overlay)、强光(blendmode.hardlight)和着色器(blendmode.shader)等等。在一些实施方式中,转码器模块130可以生成混合指令集以包括与从movieclip显示对象容器或sprite显示对象容器识别的混合模式等同的基于html的代码。例如,如果混合模式指定均和与movieclip显示对象容器或sprite显示对象容器相关联的两个子显示对象相对应的视觉元素中的两个将使颜色值反转、相乘并再次反转(例如,blendmode.screen),则转码器模块130可以生成混合指令集以包括“cur_canvas.globalcompositeoperation=screen”。在这个示例中,两个子显示对象可以是movieclip显示对象容器或sprite显示对象容器的子显示对象,并且转码器模块130可以在生成混合指令集之前已经生成了基于html的指令集。

在一些实施方式中,转码器模块130可以为movieclip显示对象容器或sprite显示对象容器生成剪辑指令集。在一些实施方式中,转码器模块130可以识别来自movieclip显示对象容器或sprite显示对象容器的子显示对象中的至少两个子显示对象。在一些实施方式中,至少三个子显示对象可以对应于第一子显示对象、第二子显示对象和第三子显示对象。在一些实施方式中,转码器模块130可以识别对应于第一子显示对象的视觉元素将截断或掩蔽对应于第二子显示对象的视觉元素。在一些实施方式中,转码器模块130可以识别对应于第一子显示对象的视觉元素将截断或掩蔽对应于第二子显示对象的视觉元素。在一些实施方式中,转码器模块130可以识别对应于第三子显示对象的视觉元素将去截断或去掩蔽对应于第二子显示对象的视觉元素。在一些实施方式中,转码器模块130可以生成对应于第一子显示对象的开始剪辑指令集。在一些实施方式中,转码器模块130可以生成对应于第二子显示对象的应用剪辑指令集。在一些实施方式中,转码器模块130可以生成对应于第三子显示对象的结束剪辑指令集。

在一些实施方式中,转码器模块130可以从movieclip显示对象容器或sprite显示对象容器的一个或多个子显示对象中识别过滤器。在一些实施方式中,转码器模块130可以响应于为一个或多个子显示对象中的每一个生成基于html的指令集或者在其之后识别过滤器。过滤器的示例可以包括斜角(bevelfilter)、模糊(blurfilter)、阴影(dropshadowfilter)、辉光(glowfilter)、渐变斜角(grandientbevelfilter)、渐变辉光(gradientglowfilter)、色彩矩阵(colormatrixfilter)、卷积(convolutionfilter)、置换图(displacementmapfilter)和着色器(shaderfilter)等等。在一些实施方式中,转码器模块130可以生成剪辑指令集以包括与从movieclip显示对象容器识别的过滤器等同的基于html的代码。在一些实施方式中,转码器模块130可以从数据库140访问基于html的代码过滤器的库,以识别与从movieclip显示对象容器或sprite显示对象容器识别的过滤器等同的基于html的代码。例如,如果从movieclip显示对象容器或sprite显示对象容器识别的过滤器是阴影过滤器,则转码器模块130可以在数据库140中搜索以基于html的代码(例如,javascript、css或html)写入的阴影过滤器。

在一些实施方式中,响应于识别显示对象的类别类型是video类,转码器模块130可以生成绘制视频指令集。在一些实施方式中,转码器模块130可以识别对应于显示对象的视频数据。视频数据可以包括分辨率、提示点(cuepoint)、编码类型、帧信息和关键帧信息等等。分辨率可以包括对应于显示对象的视频视觉内容的宽度和高度。提示点可以包括触发其它动作的时间或帧。编码类型可以包括例如视频格式(例如,h.264、spark)和容器(例如,flv、mp4、mp3或f4v)。帧信息可以包括对应于显示对象的视频视觉内容的每个帧的视觉内容数据。关键帧信息可以包括在视频视觉内容内的特定帧之后的每个帧的处理数据。在一些实施方式中,转码器模块130可以识别外部视频文件或源的位置以包括到绘制视频指令集中。在一些实施方式中,转码器模块130可以识别外部视频流源的位置以包括在绘制视频指令集中。在一些实施方式中,转码器模块130可以生成与帧信息和关键信息等同的基于html的代码以包括在绘制视频指令集中。例如,如果视频类显示对象指定视频可视内容内的帧将通过内插而平滑,则转码器模块130可以访问用于处理视觉内容的基于html的代码库,以搜索与视频显示对象中指定的内插等同的基于html的代码,并且包括在绘制视频指令集中。

转码器模块130可以将基于html的指令集插入到指令列表中。指令列表可以是任何数据结构。数据结构可以是例如阵列、矩阵、图、树、队列、堆栈、链表、跳跃表和结构体等等。在一些实施方式中,转码器模块130可以将基于html的指令集堆叠到指令列表的堆栈。在一些实施方式中,转码器模块130可以将基于html的指令集附加到指令列表。在一些实施方式中,转码器模块130可以附加、添加或以其它方式将基于html的指令集编队入指令列表。在一些实施方式中,转码器模块130可以将基于html的指令集插入到指令列表中,之后将对应于子显示对象的另一基于html的指令集插入到指令列表中。例如,转码器模块130可以生成对应于显示对象容器的第一基于html的指令集并将其插入到指令列表中,然后生成对应于左侧子显示对象的第二基于html的指令集并将其插入到指令列表中,并且最后生成对应于右侧子显示对象的第三基于html的指令集并将其插入到指令列表中。

转码器模块130可以识别显示列表中的另一显示对象。转码器模块130可以为显示列表中识别的其它显示对象中的每一个重复以上详述的功能。例如,在将针对显示列表的第一显示对象的基于html的指令集插入指令列表之后,转码器模块130可以识别第二显示对象的类别类型、基于所识别的第二显示对象的类别类型来生成第二基于html的指令集,并且将第二基于html的指令集插入到指令列表。接着,转码器模块130可以再次确定在显示列表中是否存在更多的显示对象,并重复以上详述的功能。应理解,转码器模块130可以对显示列表中的每个显示对象多次重复此功能。

转码器模块130可以将指令列表以一数据结构存储到数据库140上。在一些实施方式中,转码器模块130可以在遍历显示列表的同时将指令列表存储到数据库140上。例如,随着转码器模块130生成基于html的指令集中的每一指令集,转码器模块130可以将指令列表存储到数据库140上。在一些实施方式中,转码器模块130可以创建或示例化基于html的内容项目。在一些实施方式中,转码器模块130可以基于指令列表的基于html的指令集来生成html代码以用于写入到基于html的内容项目。例如,转码器模块130可以创建对应于基于html的内容项目的html文件,并且将根据基于html的指令集的html代码写入到html文件上。

策略生成器135可以生成用于渲染视觉内容的执行策略。执行策略可以指定应用(例如,在客户端设备125上执行的web浏览器或程序)以基于触发条件来执行指令列表中的基于html的指令集。在一些实施方式中,策略生成器135可以与生成基于html的指令集并行地、独立地、在其之前或在其之后生成执行策略。在一些实施方式中,策略生成器135可以将执行策略插入到包括指令列表的基于html的内容项目中。在一些实施方式中,策略生成器135可以将执行策略插入到指令列表中。在一些实施方式中,策略生成器135可以将执行策略存储到数据库140上。

在一些实施方式中,响应于确定应用空闲,触发条件可以指定应用将执行基于html的指令集中的至少一个指令集。在一些实施方式中,在确定应用空闲之后,触发条件可以指定应用将在预定时间窗内执行基于html的指令集中的至少一个指令集。在一些实施方式中,触发条件可以指定应用在剩余空闲时间段监视以执行基于html的指令集中的至少一个指令集,并且当应用检测到剩余空闲时间段低于预定阈值时停止执行基于html的指令集。例如,如果指令列表包括第一基于html的指令集和第二基于html的指令集,则使用指令列表渲染视觉内容的应用可以在应用空闲时执行第一基于html的指令集运行其它进程(例如,网页上的其它元素)。接着应用可以等待直到完成其它进程的执行。一旦应用已经确定它是空闲的,应用就可以执行指令列表中的第二基于html的指令集。在这个示例中,应用可以通过调用“requestidlecallback()”函数来确定应用处于空闲状态。然后应用可以在预定的时间窗期间或直到应用确定该应用不再空闲时执行指令列表中的基于html的指令集中的一些指令集。

在一些实施方式中,触发条件可以指定:响应于确定执行基于html的指令集中的至少一个指令集的持续时间超过预定义时间延迟,应用将执行基于html的指令集中的至少一个指令集。例如,如果指令列表包括第一基于html的指令集和第二基于html的指令集,则使用指令列表渲染视觉内容的应用可以在第一持续时间内执行第一基于html的指令集,并随后在第二持续时间内执行第二基于html的指令集。在这个示例中,可以通过调用“settimeout()”函数来指定第一持续时间和第二持续时间。

在一些实施方式中,策略生成器135可以基于每一基于html的指令集的权重来对指令列表中的基于html的指令进行分组。可以基于渲染的优先级来预先确定基于html的指令集的权重中的每一个。例如,绘制文本指令集的权重可以设置为高于绘制形状指令集的权重,这指示在渲染视觉内容时绘制文本的优先级更高。在一些实施方式中,可以使用基于html的指令集中的每一指令集的权重对一个或多个基于html的指令集的执行进行分组或以其它方式进行划分。例如,如果过滤器指令集的权重与混合指令集的权重相同但与绘制文本指令集的权重不同,则执行指令的计算设备可以与绘制文本指令分开地执行过滤器指令和混合指令。

在一些实施方式中,数据处理系统110可以将指令列表和执行策略传输到内容提供者计算设备115、内容发布者计算设备120或客户端设备125。在一些实施方式中,数据处理系统110可以访问来自数据库140的指令列表和执行策略。在一些实施方式中,数据处理系统110可以响应于接收到对内容的请求而传输指令列表。在一些实施方式中,数据处理系统110可以传输基于html的内容项目中的指令列表以供在信息资源(例如,网页)上呈现。在一些实施方式中,基于html的指令可以使得计算设备(例如,内容提供者计算设备115、内容发布者计算设备120或客户端设备125)执行指令列表,以根据执行策略来渲染视觉内容。执行策略包括一个或多个规则或指令,根据所述规则或指令可以由计算设备执行指令列表中的指令。例如,数据处理系统110可以响应于从客户端设备125接收到对内容的请求而传输指令列表。在加载包括视觉内容的网页时所述请求可能已经由客户端设备125发送。在接收到指令列表之后,客户端设备125可以通过执行基于html的指令集来渲染视觉内容。客户端设备125可以根据执行策略来执行基于html的指令集。

在一些实施方式中,可以使用以下伪码来实现转码器模块130:

在一些实施方式中,可以使用以下伪码来实现策略生成器模块135:

在一些实施方式中,数据处理系统110可以调用转码器模块130和策略生成器模块135的功能,并且使用以下伪码来渲染所生成的指令列表和执行策略:

现在,在结合图1描述的系统100的背景下参考图2,图2的过程图描绘将flash内容转换为html内容的一个实施方式。在此示例中,flash显示列表200可以包括五个显示对象205a到205e,每个显示对象对应于构成视觉内容的视觉元素。显示对象205a可以是用于显示对象205b和205c的显示对象容器。进而,显示对象205c可以是用于显示对象205d和205e的显示对象容器。显示对象205a可以是bitmap显示对象,并且对应于显示对象205a的视觉元素可以包括点状背景。显示对象205b可以是statictext显示对象,并且对应于显示对象205b的视觉元素可以包括大致朝向视觉内容的左上角显示的字符串“xyz”。显示对象205c可以是指定通过擦除(例如,blendmode.erase)将子显示对象205d和205e混合在一起的movieclip显示对象。显示对象205d可以是shape显示对象,并且对应于显示对象205c的视觉元素可以包括填充有平铺图案的椭圆形状。显示对象205e可以是bitmap显示对象,并且对应于显示对象205d的视觉元素可以包括填充的五边形形状。

在图2的场境下,转码器模块130可以遍历显示列表200。对于显示列表200中的每个显示对象205a到205e,转码器模块130可以识别类别类型。在这个示例中,转码器模块130可以识别显示对象205a是bitmap显示对象,显示对象205b是statictext显示对象,显示对象205c是movieclip显示对象,显示对象205d是shape显示对象,并且显示对象205e是bitmap显示对象。转码器模块130可以将数据从一种格式转换为另一种格式。使用显示对象205a到205e中的每一个的所识别的类别类型,转码器模块130可以将对应于显示列表200的flash内容转换为对应于基于html的指令列表210的基于html的内容(例如,html5、javascript和css)。转码器模块130可以基于相应的类别类型为显示对象205a到205e中的每一个生成相应的基于html的指令215a到215e的相应集合。接着转码器模块130可以将基于html的指令集215a到215e插入到基于html的指令列表210中。在这个示例中,转码器模块130可以为显示对象205a生成绘制位图指令集215a,为显示对象205b生成绘制文本指令集215b,为显示对象205c生成混合指令集215c,为显示对象205d生成绘制形状指令集215d,为显示对象205e生成绘制位图指令集215e。随着flash内容被转换为基于html的内容,转码器模块130接着可以将基于html的指令列表210存储到数据库140上。策略生成器135可以生成针对基于html的指令列表210的执行策略并且也将所述执行策略存储到数据库140上。数据处理系统100可以响应于从客户端设备125接收到请求而传输基于html的指令列表210。

在接收到基于html的指令列表210之后,在客户端设备125上运行的应用(例如,web浏览器或移动应用)可以执行基于html的指令列表210的基于html的指令集215a到215e以在网页上渲染视觉内容。在这个示例中,客户端设备125可以将基于html的指令集215a到215e循序地渲染到html画布220上。基于html的指令集215a到215e中的每一指令集可以对应于视觉元素225a到225e。应用可以渲染包括与第一基于html的指令集215a相对应的点状背景的第一视觉元素225a。然后,应用可以渲染包括对应于第二基于html的指令集215b的大致朝向画布220的左上角的字符串“xyz”的第二视觉元素225b。然后,应用可以处理第三基于html的指令集215c以混合接下来的两个视觉元素225c。然后,应用可以渲染包括用对应于第四基于html的指令集215d的平铺图案填充的椭圆形状的第四视觉元素225d。接着,应用可以渲染包括对应于第五基于html的指令集215e的五边形形状的第五视觉元素225e,同时应用由第三基于html的指令集215c指定的混合。应理解,可以在同一个html画布220上渲染视觉元素225a到225e。最后,应用可以已经将所有的视觉内容渲染在所得的html画布220'上。

参考图3,图3的流程图描绘将flash内容转换为html内容的方法300。本文关于方法400描述的功能可以由如图1所示的数据处理系统110、内容提供者计算设备115或内容发布者计算设备120或客户端设备125或图4所描绘的计算机系统400或其任何组合的转码器模块130和策略生成器模块135执行或以其它方式执行。简而言之,计算系统可以接收基于flash的内容项目(方框305)。计算系统可以识别显示对象的类别类型(方框310)。计算系统可以生成基于html的指令集(方框315)。计算系统可以插入基于html的指令集(方框320)。计算系统可以确定显示列表中是否有更多的显示对象(方框325)。计算系统可以识别显示列表中的下一个显示对象(方框330)。计算系统可以生成执行策略(方框335)。计算系统可以将指令列表存储在数据库中(方框340)。

更详细地,计算系统可以接收基于flash的内容项目(方框305)。在一些实施方式中,计算系统可以接收包括使得计算设备生成或访问显示列表的指令的基于flash的内容项目。在一些实施方式中,计算系统可以接收呈文件或一个或多个分组形式的基于flash的内容项目。在一些实施方式中,计算系统可以从内容提供者计算设备、内容发布者计算设备、客户端设备或连接到计算系统的输入设备接收基于flash的内容项目。例如,基于flash的内容项目可以是shockwaveflash(swf)文件格式、flashvideo(flv、f4v、f4p、f4a、f4p或swc)文件格式、flashactionscript(as、asc、abc、aso)文件格式、actionmessage(amf)格式文件或用于渲染视觉内容的任何其它flash文件格式。

显示列表可以包括分层布置—例如以树结构布置—的一个或多个显示对象。例如,显示列表可以包括第一显示对象和第二显示对象。在这个示例中,第二显示对象可以是第一显示对象的子对象。一个或多个显示对象中的每一个可以表示使用基于flash的内容项目渲染的视觉内容的视觉元素或组成部分。包括在显示列表中的所有一个或多个显示对象可以从displayobject类得到。使用displayobject类派生的显示对象的类型可以是阶段(stage类)、显示对象容器(displayobjectcontainer类),以及其它类型的显示对象,例如bitmap类、shape类、sprite类、movieclip类、textfield类、textline类、statictext类和video类等等。显示对象容器可以包括在显示列表内分层布置的一个或多个其它显示对象(例如,子显示对象),诸如树结构的子集。应当理解,一些派生的显示对象也可以是显示对象容器。例如,movieclip和sprite显示对象可以是包括一个或多个其它子显示对象的显示对象容器。

计算系统可以识别显示对象的类别类型(方框310)。在一些实施方式中,计算系统可以前序(例如,根、左子树、然后右子树)、中序(例如,左子树、根、然后右子树)或后序(左子树、右子树、然后是根)中的一个遍历显示列表。例如,计算系统可以遍历显示列表以识别当前显示对象的类别类型。计算系统接着可以通过调用“getchildat(i)”函数并迭代地增加索引“i”来检索显示列表的显示对象以识别当前显示对象的子显示对象的类别类型。一旦已检索到显示列表的子显示对象,计算系统就可以通过调用“trace()”函数来确定当前显示对象是否具有特定的类别类型。在这个示例中,为了确定显示对象是否是textfield显示对象,计算系统可以调用“trace(cur_objectistextfield)”来获得指示当前显示对象是否是textfield显示对象的布尔值。在一些实施方式中,计算系统可以将显示对象的类别类型识别为bitmap、shape、sprite、movieclip、textfield、textline、statictext类以及video类等等中的一个。

在一些实施方式中,计算系统可以确定显示对象是否是显示对象容器。例如,计算系统可以调用“trace()”函数来确定当前显示对象是否是显示对象容器。可以是显示对象容器的类别类型包括movieclip类、textline类和sprite类等等。在一些实施方式中,计算系统可以响应于确定显示对象是显示对象容器来确定显示对象容器是否包括一个或多个子显示对象。在一些实施方式中,计算系统可以识别显示对象容器的一个或多个子显示对象中的每一个的类别类型。在一些实施方式中,计算系统可以确定显示对象是movieclip显示对象容器还是sprite显示对象容器。movieclip显示对象容器可以包括以时间线布置的一个或多个子显示对象。sprite显示对象容器可以包括一个或多个子显示对象。textline显示对象容器可以包括一个或多个子显示对象。在一些实施方式中,计算系统可以识别movieclip显示对象容器的一个或多个子显示对象中的每一个的类别类型。在一些实施方式中,计算系统可以识别由movieclip显示对象容器引用的外部flash内容项目。在一些实施方式中,计算系统可以识别sprite显示对象容器的一个或多个子显示对象中的每一个的类别类型。

计算系统可以生成基于html的指令集(方框315)。在一些实施方式中,计算系统可以基于显示对象的类别类型来生成基于html的指令集。在一些实施方式中,响应于或者在确定显示对象是显示对象容器或者在其之后,计算系统可以基于显示对象的每个子显示对象的类别类型来生成另一基于html的指令集。所述基于html的指令集可以是绘制位图指令集、绘制文本指令集、绘制形状指令集、堆栈指令集、混合指令集、剪辑指令集、过滤器指令集和绘制视频指令集等等中的至少一个。绘制位图指令集可以指定将用由显示对象指定的图形来绘制对应于显示对象的视觉元素。绘制文本指令集可以指定将用由显示对象指定的文本字符串来绘制对应于显示对象的视觉元素。在一些实施方式中,绘制指令集可以包括绘制编辑文本指令集和绘制静态文本指令集。绘制形状指令集可以指定将用由显示对象指定的形状来绘制对应于显示对象的视觉元素。堆栈指令集可以指定对应于显示对象的视觉元素在渲染时将被绘制(例如,位图、文本或形状)并且剪辑或与对应于另一显示对象的另一视觉元素混合。混合指令集可以指定对应于显示对象的视觉元素在渲染时将与对应于显示对象的另一视觉元素混合。剪辑指令集可以指定对应于显示对象的视觉元素在渲染时将剪辑或截断对应于另一显示对象的另一视觉元素。在一些实施方式中,剪辑指令集可以包括开始剪辑指令集、应用剪辑指令集和结束剪辑指令集。过滤器指令集可以指定在渲染时将过滤对应于显示对象的视觉元素。绘制视频指令集可以指定将根据显示对象的视频数据的规范来绘制、渲染或以其它方式播放对应于显示对象的视频视觉元素。

基于html的指令集可以包括html代码(例如,html5标记)。在一些实施方式中,基于html的指令集可以包括javascript代码(例如,使用“<script>…</script>”标签)和层叠样式表(css)标记。基于html的指令集可以使得应用(例如web浏览器)渲染与基于flash的内容项目相同的视觉内容。应了解,与执行基于flash的内容项目以渲染视觉内容相比,执行基于html的指令集以渲染相同的视觉内容可以节省计算机资源(例如,cpu和存储器使用)。因此,执行基于html的指令集可以降低功耗,并且允许计算设备可用于其它进程。此外,共享单个生成的基于html的指令集以跨多个计算设备上渲染视觉内容可导致更加节省计算机资源和功耗。

在一些实施方式中,响应于识别显示对象的类别类型是bitmap类,计算系统可以生成绘制位图指令集。在一些实施方式中,计算系统可以识别对应于显示对象的位图数据。位图数据可以包括来自外部图像文件或任何光栅图形格式的源的光栅图形数据,例如位图(bmp)格式文件、便携式网络图形(png)格式文件、标记图像文件格式(tiff)格式文件、联合图像专家组(jpeg)格式文件和图形交换格式(gif)等等。在一些实施方式中,计算系统可以识别外部图像文件或源的位置。外部图像文件或源的位置可以包括在计算设备的存储(例如,计算机系统400的存储)上的文件路径名,或标识计算机网络位置的统一资源定位符(url)(例如“https://www.example.com/example.bmp”)。在一些实施方式中,计算系统可以识别对位图数据的一个或多个改变。一个或多个改变可以由外部图像文件之外的显示对象指定。例如,一个或多个改变可以包括使位图数据的尺寸或分辨率偏移、操纵位图数据的像素、指定位图数据的透明度以及改变位图数据的颜色方案等等。在一些实施方式中,计算系统可以为位图数据生成包括指定位图数据的源的“<img>”标签、“src”标签以及指定位图数据的替选名称或文本的“alt”标签的绘制形状指令集。在一些实施方式中,计算系统可以使用与一个或多个改变等同的基于html的代码来生成对位图数据的一个或多个改变的绘制形状指令集。例如,如果显示对象指定位图数据的alpha(例如,不透明度)是50%,则计算系统可以生成包括“bmp.globalalpha=0.5”的基于html的代码。

在一些实施方式中,响应于识别显示对象的类别类型是textfield、textline或statictext类,计算系统可以生成绘制文本指令集。在一些实施方式中,响应于识别显示对象的类别类型是textfield或textline类,计算系统可以生成绘制编辑文本指令集。在一些实施方式中,响应于识别显示对象的类别类型是textfield、textline或者statictext类,计算系统可以生成绘制静态文本指令集。在一些实施方式中,计算系统可以识别对应于显示对象的文本数据。所述文本数据可以包括显示对象的文本字段中包括的任何字符串。在一些实施方式中,计算系统可以使用显示对象的文本字段中包括的字符串来为文本数据生成绘制静态文本指令集。例如,如果显示对象的文本字段包括字符串“xyz”,则计算系统可以生成绘制静态文本指令集以包括代码“txt.filltext(“xyz”)”。在一些实施方式中,计算系统可以识别文本数据的一个或多个属性。例如,文本字段的一个或多个属性可以包括字体、大小、颜色、旋转、比例和背景颜色等等。在一些实施方式中,计算系统可以使用与一个或多个改变等同的基于html的代码来生成对文本数据的一个或多个改变的绘制编辑文本指令集。例如,如果显示对象指定文本的字体是“comicsans”、大小为20像素,并且与元素的中心对齐,则计算系统可以生成编辑文本指令集以包括代码“txt.font=“20pxcomicsansms”和“txt.textalign=“center””。

在一些实施方式中,响应于识别显示对象的类别类型是shape类,计算系统可以生成绘制形状指令集。在一些实施方式中,计算系统可以识别对应于显示对象的形状数据。形状数据可以包括形状(例如矩形、圆形和线)、一个或多个参考点(例如,结束点、锚点、终点和坐标)、颜色、填充、渐变、不透明性、旋转、比例和曲线等等。在一些实施方式中,计算系统可以使用与形状数据等同的基于html的代码来为形状数据生成绘制形状指令集。例如,如果显示对象使用基于flash的代码“shape.graphics.drawrect(30,40,60,20)”指定形状是在(30,40)的像素位置处的像素大小为(60×20)的矩形,则计算系统可以为绘制形状指令集生成包括“shp.fillrect(30,40,6020)”的基于html的代码。在这个示例中,如果显示对象指定将用线性从蓝色到白色的径向渐变填充矩形,则计算系统可以利用包括指定相应颜色范围的“createlineargradient()”函数的基于html的代码来生成绘制形状指令。

在一些实施方式中,响应于识别显示对象的类别类型是movieclip类或sprite类,计算系统可以为movieclip显示对象容器或sprite显示对象容器的一个或多个子显示对象中的每一个生成基于html的指令集。应理解,movieclip类可以是sprite类的派生类,包括许多相同的属性和函数。在一些实施方式中,计算系统可以生成对应于movieclip显示对象容器或sprite显示对象容器的阶段显示对象的堆栈指令。一个或多个子显示对象可以包括其它显示对象类的显示对象,例如bitmap类、shape类、textfield类、textline类和statictext类。一个或多个子显示对象中的至少一个可以是第一子显示对象,并且一个或多个子显示对象中的至少一个其他子显示对象可以是第二子显示对象。如上所述,计算系统可以识别movieclip显示对象容器或sprite显示对象容器的一个或多个子显示对象中的每一个的类别类型。在一些实施方式中,计算系统可以基于为相应的帧显示对象识别的类别类型来为一个或多个子显示对象中的每一个生成基于html的指令集。例如,计算系统可以使用上述功能为相应的帧显示对象生成基于html的指令集。

在一些实施方式中,计算系统可以为movieclip显示对象容器或sprite显示对象容器生成混合指令集。在一些实施方式中,计算系统可以从movieclip显示对象容器或sprite显示对象容器的一个或多个子显示对象中识别混合模式。在一些实施方式中,响应于为一个或多个子显示对象中的每一个或一个或多个子显示对象中的每一个生成基于html的指令集或者在其之后,计算系统可以识别混合模式。混合模式的示例可以包括普通(blendmode.normal)、图层(blendmode.layer)、正片叠底(blendmode.multiply)、滤色(blendmode.screen)、变亮(blendmode.lighten)、变暗(blendmode.darken)、差值(blendmode.difference)、增加(blendmode.add)、减去(blendmode.subtract)、反转(blendmode.invert)、alpha(blendmode.alpha)、擦除(blendmode.erase)、叠加(blendmode.overlay)、强光(blendmode.hardlight)和着色器(blendmode.shader)等等。在一些实施方式中,计算系统可以生成混合指令集以包括与从movieclip显示对象容器或sprite显示对象容器识别的混合模式等同的基于html的代码。例如,如果混合模式指定均和与movieclip显示对象容器或sprite显示对象容器相关联的两个子显示对象相对应的视觉元素中的两个将使颜色值反转、相乘并再次反转(例如,blendmode.screen),则计算系统可以生成混合指令集以包括“cur_canvas.globalcompositeoperation=screen”。在这个示例中,两个子显示对象可以是movieclip显示对象容器或sprite显示对象容器的子显示对象,并且计算系统可以在生成混合指令集之前已经生成了基于html的指令集。

在一些实施方式中,计算系统可以为movieclip显示对象容器或sprite显示对象容器生成剪辑指令集。在一些实施方式中,计算系统可以识别来自movieclip显示对象容器或sprite显示对象容器的子显示对象中的至少两个子显示对象。在一些实施方式中,至少三个子显示对象可以对应于第一子显示对象、第二子显示对象和第三子显示对象。在一些实施方式中,计算系统可以识别对应于第一子显示对象的视觉元素将截断或掩蔽对应于第二子显示对象的视觉元素。在一些实施方式中,计算系统可以识别对应于第一子显示对象的视觉元素将截断或掩蔽对应于第二子显示对象的视觉元素。在一些实施方式中,计算系统可以识别对应于第三子显示对象的视觉元素将去截断或去掩蔽对应于第二子显示对象的视觉元素。在一些实施方式中,计算系统可以生成对应于第一子显示对象的开始剪辑指令集。在一些实施方式中,计算系统可以生成对应于第二子显示对象的应用剪辑指令集。在一些实施方式中,计算系统可以生成对应于第三子显示对象的结束剪辑指令集。

在一些实施方式中,计算系统可以从movieclip显示对象容器或sprite显示对象容器的一个或多个子显示对象中识别过滤器。在一些实施方式中,计算系统可以响应于为一个或多个子显示对象中的每一个生成基于html的指令集或者在其之后识别过滤器。过滤器的示例可以包括斜角(bevelfilter)、模糊(blurfilter)、阴影(dropshadowfilter)、辉光(glowfilter)、渐变斜角(grandientbevelfilter)、渐变辉光(gradientglowfilter)、色彩矩阵(colormatrixfilter)、卷积(convolutionfilter)、置换图(displacementmapfilter)和着色器(shaderfilter)等等。在一些实施方式中,计算系统可以生成剪辑指令集以包括与从movieclip显示对象容器识别的过滤器等同的基于html的代码。在一些实施方式中,计算系统可以从数据库140访问基于html的代码过滤器的库,以识别与从movieclip显示对象容器或sprite显示对象容器识别的过滤器等同的基于html的代码。例如,如果从movieclip显示对象容器或sprite显示对象容器识别的过滤器是阴影过滤器,则转码器模块130可以在数据库140中搜索以基于html的代码(例如,javascript、css或html)写入的阴影过滤器。

在一些实施方式中,响应于识别显示对象的类别类型是video类,计算系统可以生成绘制视频指令集。在一些实施方式中,计算系统可以识别对应于显示对象的视频数据。视频数据可以包括分辨率、提示点、编码类型、帧信息和关键帧信息等等。分辨率可以包括对应于显示对象的视频视觉内容的宽度和高度。提示点可以包括触发其它动作的时间或帧。编码类型可以包括例如视频格式(例如,h.264、spark)和容器(例如,flv、mp4、mp3或f4v)。帧信息可以包括对应于显示对象的视频视觉内容的每个帧的视觉内容数据。关键帧信息可以包括在视频视觉内容内的特定帧之后的每个帧的处理数据。在一些实施方式中,计算系统可以识别外部视频文件或源的位置以包括到绘制视频指令集中。在一些实施方式中,计算系统可以识别外部视频流源的位置以包括在绘制视频指令集中。在一些实施方式中,计算系统可以生成与帧信息和关键信息等同的基于html的代码以包括在绘制视频指令集中。例如,如果视频类显示对象指定视频可视内容内的帧将通过内插而平滑,则计算系统可以访问用于处理视觉内容的基于html的代码库,以搜索与视频显示对象中指定的内插等同的基于html的代码,并且包括在绘制视频指令集中。

计算系统可以插入基于html的指令集(方框320)。计算系统可以将基于html的指令集插入到指令列表中。指令列表可以是任何数据结构。数据结构可以是例如阵列、矩阵、图、树、队列、堆栈、链表、跳跃表和结构体等等。在一些实施方式中,计算系统可以将基于html的指令集堆叠到指令列表的堆栈。在一些实施方式中,计算系统可以将基于html的指令集附加到指令列表。在一些实施方式中,计算系统可以附加、添加或以其它方式将基于html的指令集编队入指令列表。在一些实施方式中,计算系统可以将基于html的指令集插入到指令列表中,之后将对应于子显示对象的另一基于html的指令集插入到指令列表中。例如,计算系统可以生成对应于显示对象容器的第一基于html的指令集并将其插入到指令列表中,然后生成对应于左侧子显示对象的第二基于html的指令集并将其插入到指令列表中,并且最后生成对应于右侧子显示对象的第三基于html的指令集并将其插入到指令列表中。

计算系统可以确定显示列表中是否有更多的显示对象(方框325)。例如,计算系统可以确定当前显示对象的索引是否在显示列表的长度上。如果索引小于显示列表的长度,则计算设备可以确定在显示列表中存在更多的显示对象。

计算系统可以识别显示列表中的下一个显示对象(方框330)。随后,计算系统可以为在显示列表中识别的其它显示对象中的每一个重复上文在方框310到325中详述的功能。例如,在将用于显示列表的第一显示对象的基于html的指令集插入到指令列表之后,计算系统可以识别第二显示对象的类别类型、基于所识别的第二显示对象的类别类型来生成第二基于html的指令集,并且将第二基于html的指令集插入到指令列表。接着,计算系统可以再次确定在显示列表中是否存在更多的显示对象,并重复方框310到325中详述的功能。

计算系统可以生成执行策略(方框335)。执行策略可以指定应用(例如,在客户端设备上执行的web浏览器或程序)以基于触发条件来执行指令列表中的基于html的指令集。在一些实施方式中,计算系统可以与生成基于html的指令集并行地、独立地、在其之前或在其之后生成执行策略。在一些实施方式中,计算系统可以将执行策略插入到包括指令列表的基于html的内容项目中。在一些实施方式中,计算系统可以将执行策略插入到指令列表中。在一些实施方式中,计算系统可以将执行策略存储到数据库上。

在一些实施方式中,响应于确定应用空闲,触发条件可以指定应用将执行基于html的指令集中的至少一个指令集。在一些实施方式中,在确定应用空闲之后,触发条件可以指定应用将在预定时间窗内执行基于html的指令集中的至少一个指令集。在一些实施方式中,触发条件可以指定应用在剩余空闲时间段监视以执行基于html的指令集中的至少一个指令集,并且当应用检测到剩余空闲时间段低于预定阈值时停止执行基于html的指令集。例如,如果指令列表包括第一基于html的指令集和第二基于html的指令集,则使用指令列表渲染视觉内容的应用可以在应用空闲时执行第一基于html的指令集运行其它进程(例如,网页上的其它元素)。接着应用可以等待直到完成其它进程的执行。一旦应用已经确定它是空闲的,应用就可以执行指令列表中的第二基于html的指令集。在这个示例中,应用可以通过调用“requestidlecallback()”函数来确定应用处于空闲状态。然后应用可以在预定的时间窗期间或直到应用确定应用不再空闲时执行指令列表中的基于html的指令集中的一些指令集。

在一些实施方式中,触发条件可以指定:响应于确定执行基于html的指令集中的至少一个指令集的持续时间超过预定义时间延迟,应用将执行基于html的指令集中的至少一个指令集。例如,如果指令列表包括第一基于html的指令集和第二基于html的指令集,则使用指令列表渲染视觉内容的应用可以在第一持续时间内执行第一基于html的指令集,并随后在第二持续时间内执行第二基于html的指令集。在这个示例中,可以通过调用“settimeout()”函数来指定第一持续时间和第二持续时间。

计算系统可以将指令列表存储在数据库中(方框340)。在一些实施方式中,计算系统可以将指令列表和执行策略以一数据结构存储到数据库上。在一些实施方式中,计算系统可以在遍历显示列表的同时将指令列表存储到数据库上。例如,当计算系统生成基于html的指令集中的每一指令集时,计算系统可以将指令列表存储到数据库上。在一些实施方式中,计算系统可以创建或示例化基于html的内容项目。在一些实施方式中,计算系统可以基于指令列表的基于html的指令集来生成html代码以用于写入到基于html的内容项目。例如,计算系统可以创建对应于基于html的内容项目的html文件,并且将根据基于html的指令集的html代码写入到html文件上。

在一些实施方式中,计算系统可以基于每一基于html的指令集的权重来对指令列表中的基于html的指令进行分组。可以基于渲染的优先级来预先确定基于html的指令集的权重中的每一个。例如,绘制文本指令集的权重可以设置为高于绘制形状指令集的权重,这指示在渲染视觉内容时绘制文本的优先级更高。在一些实施方式中,可以使用基于html的指令集中的每一指令集的权重对一个或多个基于html的指令集的执行进行分组或以其它方式进行划分。例如,如果过滤器指令集的权重与混合指令集的权重相同但与绘制文本指令集的权重不同,则执行指令的计算设备可以与绘制文本指令分开地执行过滤器指令和混合指令。

在一些实施方式中,计算系统可以将指令列表和执行策略传输到内容提供者计算设备、内容发布者计算设备或客户端设备。在一些实施方式中,计算系统可以访问来自数据库的指令列表和执行策略。在一些实施方式中,计算系统可以响应于接收到对内容的请求而传输指令列表。在一些实施方式中,计算系统可以传输基于html的内容项目中的指令列表以供在信息资源(例如,网页)上呈现。在一些实施方式中,基于html的指令可以使得计算设备(例如,内容提供者计算设备、内容发布者计算设备或客户端设备)执行指令列表,以根据执行策略来渲染视觉内容。例如,计算系统可以响应于从客户端设备接收到对内容的请求而传输指令列表。在加载包括视觉内容的网页时所述请求可能已经由客户端设备发送。在接收到指令列表之后,客户端设备可以通过执行基于html的指令集来渲染视觉内容。客户端设备可以根据执行策略来执行基于html的指令集。

图4示出根据一些实施方式的,可用于实现本文讨论的计算机系统(包括系统110及其组件,诸如转码器模块130和策略生成器模块135)中的任一个的说明性计算机系统400的总体架构。计算机系统400可以用于经由网络105提供信息以供显示。图4的计算机系统400包括一个或多个处理器420,其通信地耦合到存储器425、一个或多个通信接口405以及一个或多个输出设备410(例如,一个或多个显示单元)和一个或多个输入设备415。处理器420可以包括在数据处理系统110或系统110的其它组件中,诸如转码器模块130和策略生成器模块135等等。

在图4的计算机系统400中,存储器425可以包括任何计算机可读存储介质,并且可以存储用于实现本文所描述的相应系统的各个功能的计算机指令,诸如处理器可执行指令,以及与通信接口或输入设备(如果存在)相关、由其生成或经由其接收的任何数据。再次参考图1的系统110,数据处理系统110可以包括存储器425,其用于存储与一个或多个内容单元的库存的可用性、一个或多个内容单元的预留等有关的信息。存储器425可以包括数据库140。图4所示的处理器420可以用于执行存储在存储器425中的指令,并且由此也可以从存储器读取或向存储器写入根据指令的执行而处理和/或生成的各个信息。

图4所示的计算机系统400的处理器420还可以通信地耦合到或控制通信接口405以根据指令的执行传输或接收各个信息。例如,通信接口405可以耦合到有线或无线网络、总线或其它通信装置,并因此可以允许计算机系统400向其它设备(例如,其他计算机系统)传输信息或从其它设备接收信息。虽然未在图1的系统中明确示出,但一个或多个通信接口促进了系统400的组件之间的信息流动。在一些实施方式中,通信接口可被配置为(例如,经由各个硬件组件或软件组件)提供网站作为到计算机系统400的至少一些方面的访问门户。通信接口405的示例包括用户可以通过其与数据处理系统110通信的用户界面(例如网页)。

可以提供图4所示的计算机系统400的输出设备410,以例如允许结合指令的执行来查看或以其它方式感知各个信息。例如,可以提供输入设备415以允许用户在指令的执行期间进行手动调整、进行选择、录入数据或以多种方式中的任一种与处理器交互。在此进一步提供与可以用于本文讨论的各个系统的通用计算机系统架构有关的额外信息。

在本说明书中描述的主题和操作的实施方式可以在数字电子电路中实现,或者在有形介质上体现的计算机软件、固件或硬件——包括本说明书中公开的结构及其结构等同物中实现,或者其中一个或多个的组合。在本说明书中描述的主题的实施方式可以被实现为在计算机存储介质上编码的一个或多个计算机程序——即计算机程序指令的一个或多个模块,以用于由数据处理装置执行或者控制数据处理装置的操作。程序指令可以在人工生成的传播信号——例如机器生成的电、光或电磁信号——上编码,所述信号经生成以用于对信息进行编码,以用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备,或者它们中的一个或多个的组合,或者可以被包括在其中。而且,尽管计算机存储介质不是传播信号,但是计算机存储介质可以包括在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个单独的物理组件或介质(例如,多个cd,磁盘或其它存储设备)或被包括在其中。

本文公开的特征可以在智能电视模块(或连接的电视模块、混合电视模块等)上实现,所述模块可以包括处理模块,所述处理模块被配置为将互联网连接与更传统的电视节目源(例如,经由电缆、卫星、空中或其它信号接收的)整合。智能电视模块可以物理地并入到电视机中,或者可以包括单独设备,诸如机顶盒、蓝光或其它数字媒体播放器、游戏控制台、酒店电视系统和其它配套设备。智能电视模块可以被配置为允许观众搜索和找出web上、本地有线电视频道上、卫星电视频道上、或存储在本地硬盘驱动器上的视频、电影、照片和其它内容。机顶盒(stb)或机顶单元(stu)可以包括信息电器设备,其可以包括调谐器并连接到电视机和外部信号源,将信号转变成内容,其然后显示在电视屏幕或其它显示设备上。智能电视模块可以被配置为提供主屏幕或顶层级屏幕,其包括多个不同应用——诸如web浏览器和多个流媒体服务、连接的电缆或卫星媒体源、其他web“频道”等的图标。智能电视模块可以进一步被配置为向用户提供电子节目指南。智能电视模块的配套应用可以在移动计算设备上操作以向用户提供关于可用节目的附加信息,从而允许用户控制智能电视模块等。在替选实施方式中,可以在膝上型计算机或其它个人计算机、智能手机、其它移动电话、手持式计算机、平板个人计算机或其它计算设备上实现所述特征。

在本说明书中描述的操作可以被实现为由数据处理装置对存储于一个或多个计算机可读存储设备上的数据或从其它源接收的数据执行的操作。

术语“数据处理装置”、“数据处理系统”、“用户设备”或“计算设备”涵盖用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机、片上系统,或前述的多个或组合。装置可以包括专用逻辑电路,例如现场可编程门阵列(fpga)或专用集成电路(asic)。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码——例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时间环境、虚拟机或其中一个或多个的组合的代码。装置和执行环境可以实现各个不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。转码器模块130和策略生成器模块135可以包括或共享一个或多个数据处理装置、计算设备或处理器。

计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明性或过程性语言,并且可以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适用于计算环境的其它单元。计算机程序可能但不一定对应于文件系统中的文件。程序可以存储在保存其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。可以部署计算机程序以在一台计算机上或在位于一个站点或跨多个站点分布并通过通信网络互连的多台计算机上执行。

本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路——例如现场可编程门阵列(fpga)或专用集成电路(asic)——来执行,并且装置也可以被实现为专用逻辑电路。

作为示例,适合于执行计算机程序的处理器包括通用和专用微处理器二者以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元素是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备——例如磁盘、磁光盘或光盘,或可操作地耦合以从所述一个或多个大容量存储设备接收数据或将数据传输到所述一个或多个大容量存储设备,或这两者。然而,电脑不需要有这样的设备。此外,可以将计算机嵌入到另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)flash驱动器)。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储设备,例如包括半导体存储设备,例如eprom,eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cdrom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或者并入专用逻辑电路。

为了提供与用户的交互,本说明书中描述的主题的实施方式可以在具有以下的计算机上实现:例如crt(阴极射线管)、等离子体或lcd(液晶显示器)监视器的用于向用户显示信息的显示设备以及用户可以通过其向计算机提供输入的键盘和指示设备——例如鼠标或轨迹球。其它类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以包括任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可以任何形式接收,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从该设备接收文档来与用户交互;例如通过响应于从web浏览器接收到的请求,将网页发送到用户的客户端设备上的web浏览器。

本说明书中描述的主题的实施方式可以在计算系统中实现,所述计算系统包括后端组件——例如作为数据服务器,或包括中间件组件——例如应用服务器,或包括前端组件——例如具有用户可以通过其与本说明书中描述的主题的实施方式交互的图形用户界面或web浏览器,或一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过数字数据通信的任何形式或介质——例如通信网络——互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互连网络(例如互联网)和对等网络(例如,点对点对等网络)。

系统400或系统110的计算系统可以包括客户端和服务器。例如,数据处理系统110可以在一个或多个数据中心或服务器群中包括一个或多个服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系是依靠在相应计算机上运行的计算机程序产生的,并且彼此具有客户端-服务器关系。在一些实施方式中,服务器将数据(例如,html页面)传输到客户端设备(例如,用于向与客户端设备交互的用户显示数据和从该用户接收用户输入的目的)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。

虽然本说明书包括许多具体的实施方式细节,但是这些不应当被解释为对任何发明或者可以要求保护的范围的限制,而是作为特定于本文描述的系统和方法的特定实施方式的特征的描述。在本说明书中在不同实施方式的场境中描述的某些特征也可以在单个实施方式中组合实现。相反,在单个实施方式的场境中描述的各个特征也可以在多个实施方式中单独地或以任何合适的子组合来实现。此外,虽然在上文可以将特征描述为以某些组合起作用并且甚至最初如此要求保护,但是来自要求保护的组合的一个或多个特征可以在一些情况下从所述组合中删除,并且所要求保护的组合可以针对子组合或子组合的变型。

类似地,尽管在附图中以特定的次序描述了操作,但是这不应被理解为要求以所示出的特定次序或顺序次序执行这样的操作,或者执行所有示出的操作以实现期望的结果。在一些情况下,权利要求中记载的动作可以按不同的次序执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定要求所示出的特定次序或顺序次序以实现期望的结果。

在某些情况下,多任务和并行处理可能是有利的。此外,上述实施方式中的各个系统组件的分离不应被理解为在所有实施方式中都需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装成多个软件产品。例如,转码器模块130和策略生成器模块135可以是数据处理系统110的一部分、单个模块、具有一个或多个处理模块的逻辑设备、一个或多个服务器、或搜索引擎的一部分。

现在已经描述了一些说明性实施方式和实施方式,显而易见的是,前述内容是说明性的而非限制性的,已经通过示例的方式呈现。具体地说,尽管本文提出的许多示例涉及方法动作或系统元素的特定组合,但是那些动作和元素可以其它方式组合以实现相同的目标。仅结合一个实施方式讨论的动作、元素和特征并不希望排除在其它实施方式或实施方式中的类似角色之外。

本文使用的措辞和术语是为了描述的目的而不应被认为是限制性的。“包括”、“包括”、“具有”、“含有”、“涉及”、“特征在于”、“其特征在于”及其变化形式意在涵盖其后列出的项目,其等同物和附加项目以及由其后专门列出的项目组成的替选实施方式。在一个实施方式中,本文描述的系统和方法由所描述的元素、动作或组件中的一个、多于一个的所有组合或者所有来组成。

对本文以单数形式提及的系统和方法的实施方式或元素或动作的任何引用还可以包括包括多个这些元素的实施方式,并且本文的任何实施方式或元素或动作的复数形式的任何引用还可以包括包括仅单个元素的实施方式。单数形式或复数形式的引用并非意图将当前公开的系统或方法、其组件、动作或元素限制为单数或复数配置。对基于任何信息、动作或元素的任何动作或元素的引用可以包括其中所述动作或元素至少部分地基于任何信息、动作或元素的实施方式。

本文公开的任何实施方式可以与任何其它实施方式组合,并且对“实施方式”、“一些实施方式”、“替选实施方式”、“各个实施方式”、“一个实施方式”等的引用不一定是相互排斥的,而是旨在指示结合所述实施方式描述的特定特征、结构或特性可以被包括在至少一个实施方式中。本文使用的这样的类术语不一定都指代相同的实施方式。任何实施方式可以用与本文公开的方面和实施方式一致的方式包括地或排他地与任何其它实施方式组合。

对“或”的引用可以被解释为包括性的,使得使用“或”描述的任何项可以指示单个、多于一个以及全部所述项中的任何一个。

在附图、详细描述或任何权利要求中的技术特征后面附有附图标记的情况下,包括附图标记只是为了增加附图、详细描述和权利要求的可理解性。因此,附图标记或它们的缺失都不会对任何权利要求的范围产生任何限制作用。

本文描述的系统和方法可以用其它特定形式来体现而不背离其特征。尽管本文提供的示例涉及将flash内容转换为html内容,但是本文描述的系统和方法可以包括应用于其它环境。前述实施方式是说明性的而非限制所描述的系统和方法。本文描述的系统和方法的范围因此由所附权利要求而不是前面的描述来指示,并且落入权利要求的等同物的含义和范围内的改变也包括在其中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1