CN101427216A - 增强软件应用特征的方法和内容对象 - Google Patents
增强软件应用特征的方法和内容对象 Download PDFInfo
- Publication number
- CN101427216A CN101427216A CNA2007800139313A CN200780013931A CN101427216A CN 101427216 A CN101427216 A CN 101427216A CN A2007800139313 A CNA2007800139313 A CN A2007800139313A CN 200780013931 A CN200780013931 A CN 200780013931A CN 101427216 A CN101427216 A CN 101427216A
- Authority
- CN
- China
- Prior art keywords
- content object
- software application
- content
- function
- resource
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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
- G06F3/04845—Interaction 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 for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种增强在其中执行包括编译的源代码的软件应用的计算环境中的特征的方法,该方法包括将至少一个内容对象插入到软件应用的画布页中。每个内容对象包括定义归附于内容对象的功能的代码。响应于与内容对象的交互,执行内容对象代码,由此为软件应用功能补充所属功能。
Description
相关申请的交叉引用
本申请要求于2006年4月17日提交的美国临时申请No.60/792,724的权益,其内容在此引入以供参考。
技术领域
本发明一般涉及信息显示,更具体地,涉及增强软件应用特征的方法和内容对象。
背景技术
大多数软件应用已经很好地定义了直接写入软件应用的源代码的功能。因此,在编译源代码以及部署可执行软件应用后,软件应用的功能是固定的。如果要改变这样的软件应用的功能或如果要向软件应用添加新的功能,必须修改软件应用源代码来并入功能改变或添加。在改变后,必须重新编译源代码以及重复部署可执行软件应用。将理解,在已经编译软件应用源代码和部署可执行软件应用后,这使得这样的软件应用的功能非常刚性并且在没有相当大的费用的情况下几乎不可能改变。而且,修改源代码来并入功能改变或添加要求相当多的编程技能。
例如,软件应用中的拖放功能很普通,并且对本领域技术人员是公知的。通常以软件应用源代码来实现这样的功能。软件应用源代码定义应用软件将接受有效的拖放输入并且禁止接受未定义而因此无效的资源对象的资源对象类型。资源对象类型定义应用于整个软件应用。软件应用源代码包括被编译成当在软件应用上拖放资源对象时处理它们的库的软件例程。不幸的是,在已编译软件应用源代码以及部署可执行软件应用后,软件应用的行为是固定的并且不能改变拖放处理例程。除非如上所述,修改和重新编译软件应用源代码,否则不能定义新的有效的拖放资源对象。类似地,在不修改和重新编译软件应用源代码的情况下,不能将现有的拖放资源对象改变成无效的拖放资源对象。最终结果是非常静态的软件应用。
软件应用中的上述刚性造成其他问题。例如,当设计软件应用时,软件应用通常针对认为其需求大部分是已知的非常公知的终端用户群。如果终端用户具有不同的需求,则通常仅实现对所有终端用户共同的功能。最终结果是软件应用缺乏许多终端用户所期望的功能并在功能方面缺乏可变性。
功能的该不灵活在应用内容创作和演示环境方面特别成问题。与软件应用特征不同,内容特征需要更加动态,因为内容特征必须适合各个内容片断的每一个的需要,而不是全局地应用于用户库。换句话说,内容特征针对软件应用内的各个内容片断,而不是针对终端用户。尽管如上文所述,通常当设想新的内容特征时,基于用户需求来判断它并基于功能的最小共同特征来实现它。通常不实现对于大组不要求的内容特征。如上所述,所实现的内容特征不幸地要求重新编写和重新编译软件应用源代码。最终结果是刚性的并且简单的内容特征。
将理解,特别是在内容层级,存在对编程灵活性的需要。因此,本发明的目的是提供增强软件应用特征的新颖方法和新颖的内容对象。
发明内容
因此,在一方面中,提供了一种增强在其中执行包括编译的源代码的软件应用的计算环境中的特征的方法。该方法包括将至少一个内容对象插入到软件应用的画布页(canvas page)中,每一个内容对象包括定义归附于(attributed to)该内容对象的功能的代码,响应于与该内容对象的交互,执行内容对象代码,由此为软件应用功能补充所属功能。
在一个实施例中,所归附的功能包括在软件应用中不可获得的功能。该方法进一步包括:通过在插入前从组件库选择多个功能组件的一个,创建每一内容对象。将每个所创建的内容对象存储在库中。在插入期间,从库拖每个内容对象,并将其放在画布页上。在创建期间,将所选择的组件放在内容对象创建页上。第一被选组件充当容器组件,该容器组件负责合并形成内容对象的随后被选的组件。
在一个实施例中,在插入后,变更内容对象的所归附的功能。该变更包括将消息传送到内容对象并执行该消息以便变更代码。可以在在窗口内的画布页上显示所插入的内容对象。响应于与内容对象的交互,可以变更窗口的外观。内容对象可以在执行代码后创建至少一个新的内容对象和/或在执行代码后生成到一个或多个其他内容对象的消息。替代地,内容对象可以响应于在内容对象上产生的资源对象放事件而执行代码。
根据另一方面,提供了一种待插入到软件应用的画布页中的内容对象,该内容对象包括:至少一个组件,其与内容对象功能相关联并包括至少一个例程;处理机(handler),响应于与内容对象的交互而执行例程;以及通信接口,使得能够在内容对象和软件应用之间进行通信。在运行时创建内容对象以补充软件应用的功能。
根据又一方面,提供了一种将特征添加到编译软件应用的方法,包括:创建一个或多个内容对象,每个内容对象可插入到软件应用中并具有指定的功能;将一个或多个所创建的内容对象插入到软件应用中;以及与一个或多个所插入的所创建的内容对象交互以在软件应用内调用其功能。
将理解,内容对象提供内容处理灵活性,当实现时,在软件应用层级不需要源代码修改。用该方式,能将不同的内容处理特征提供给不同的终端用户,提供动态的内容处理。
附图说明
现在,将参考附图更全面地描述实施例,其中:
图1是交互式输入系统的示意图;
图2是内容对象的框图;
图3示出了在主机软件应用画布页上显示的拖放内容对象;
图4是示出了当将资源对象拖放到图3的内容对象上时执行的步骤的流程图;
图5是在主机软件应用画布页上显示的另一拖放内容对象;
图6是在主机软件应用画布页上显示的另一拖放内容对象;
图7是在主机软件应用画布页上显示的又一拖放内容对象;
图8是在主机软件应用画布页上显示的又一拖放内容对象;
图9是在主机软件应用画布页上显示的还一拖放内容对象;
图10是在主机软件应用画布页上显示的还一拖放内容对象。
具体实施方式
在下述描述中,讨论内容对象的各个实施例。由开发人员创建内容对象,以提供内容处理灵活性,而不需要在软件应用层级的源代码修改。在该例子中,创建用于交互式输入系统环境的内容对象,尽管本领域的技术人员将理解内容对象可以用在用户与显示内容交互的实际任何环境中。
现在转到图1,示出了Morrison等人的美国专利No.6,954,197(转让给SMART Technologies Inc.of Calgary,Alberta,本申请的受让人)中公开的类型的基于照相机的交互式输入系统50。交互式输入系统50包括触摸屏52,其包括呈现计算机生成图像的触摸表面53。矩形框(bezel)或框架环绕触摸面53并支撑与其角相邻的数码照相机C0至C3。数码照相机C0至C3具有包围并且通常扫视触摸表面53的重叠视场。数码照相机从不同视角获取扫视触摸表面53的图像。由板上数字信号处理器处理由数码照相机C0至C3获取的图像,以确定在所捕获的图像中是否存在指示器。当确定在所捕获的图像中存在指示器时,数字信号处理器将指示器特征数据传送到主控制器54,主控制器54进而处理该指示器特征数据,以使用三角测量确定指示器相对于触摸表面53在(x,y)坐标系中的位置。然后,将指示器坐标数据传送到执行一个或多个应用程序的计算机56。计算机56使用指示器坐标数据来更新计算机生成图像。然后,将更新的计算机生成图像传送到前或后投影设备58,用于在触摸表面53上显示。因此,触摸表面53上的指示器触点能被记录为写或制图或用来控制由计算机56执行的主机软件应用的执行。
计算机56执行主机软件应用,其提供可以放入资源对象和内容对象的画布页。内容对象提供内容处理灵活性,以补充或增强主机软件应用的特征集,同时避免与先前所述的软件应用相关的缺点。在本实施例中的主机软件应用由SMART Technologies,Inc.of Calgary,Alberta提供的,名称为NotebookTM。
在本实施例中,每个内容对象包括含一个或多个例程的源代码。内容对象被公布为Flash或SWF文件,并被插入主机软件应用的画布页中。因而结合在NotebookTM中的基础聚集特征来使用内容对象。在注释的上下文中,运行内容对象源代码,以此方式,通过内容对象采用特定特征,而不需要修改主机软件应用源代码。内容对象与遵循消息协议的主机软件应用通信,所述消息协议安排内容对象和主机软件应用之间的消息并提供用于在主机软件应用和内容对象之间传递信息和事件的机制。
内容对象中的源代码利用消息协议来与主机软件应用通信。由导致内容对象的行为改变的源代码来处理内容对象从主机软件应用接收的消息。内容对象也可以将消息返回到主机软件应用。因此,内容对象充当执行专门处理的小程序。如将理解的,内容对象可以具有变化的功能。例如,源代码可以提供具有特定于内容的拖放功能、脚本功能、内容对象消息传递功能、窗口控制功能和/或内容对象创建功能的内容对象。然而,本领域技术人员将理解功能的上述列表绝不意在限制。可以采用提供具有其他功能的内容对象的源代码。
在图2中示出了示例性内容对象,并且该内容对象通常由参考数字100表示。内容对象100包括组件调度器102、每一个包括一个或多个源代码例程的一个或多个组件104以及执行组件源代码例程的用于每个组件104的处理机106。组件调度器102作为在组件104、处理机106和主机软件应用之间的通信接口。因为内容对象的功能是由组件104的源代码例程确定的,所以简单地通过将具有所需功能的内容对象插入主机软件应用画布页中实现了编程灵活性,而不需要修改底层主机软件应用的源代码。现在,将参考图2至10,描述展示各种功能的内容对象的具体例子。
如上所述,源代码可以提供具有特定于内容的拖放功能的内容对象。拖放内容特定对象通过允许内容对象中的源代码例程定义内容对象接受的拖放资源对象的类型和将如何处理拖放和接受的资源对象来扩展主机软件应用的拖放功能。以此方式,各个内容对象能以对各个内容对象特定的方式接受和处理所接受的资源对象,以及能展示为每个所接受的资源对象定义的特定行为。例如,可以创建接受墨迹资源对象、对墨迹资源对象执行字符识别并显示所识别的文字的内容对象。可以创建接受具有特定名称或扩展名的文件的内容对象。可以创建接受文本资源对象并滚动该文本和接受墨迹资源对象并对墨迹执行识别来在滚动文字前将墨迹资源对象转换成文本的内容对象。拖放资源对象的源可以改变。例如,可以从内容聚集(gallery)、计算机桌面、从另一内容对象、从剪贴板、从网页等等拖资源对象。
拖放粘性内容对象
现在转到图3,示出了插入到主机软件应用的画布页122的内容对象120。本例子中的内容对象120是拖放特定于内容的“粘性”对象,其包括两个组件,即标题栏组件130和具线纹的画布页组件132。标题栏组件130包括定义标题栏组件能接受的资源对象的类型以及如果将这样的资源对象拖放到标题栏组件130上将如何处理其的例程。在该例子中,标题栏组件130接受文本和链接(路径XML)资源对象。具线纹的画布页组件132也包括定义具线纹的画布页组件接受的资源对象的类型以及如果将这样的资源对象拖放到具线纹的画布页组件132上将如何处理其的例程。在该例子中,具线纹的画布页组件132接受文本、墨迹和图形资源对象。
当用户将资源对象从主机软件应用拖放到内容对象120中时,主机软件应用将与所拖放的资源对象相关联的文件复制到计算机56的临时文件系统(图4中的步骤200),然后向内容对象120发送识别所拖放的资源对象的类型和位置的查询消息,以确定所放的资源对象是否可以被资源对象所放入的内容对象120的组件来处理(步骤202)。在接收查询消息后,组件调度器102将查询消息转发到内容对象120的适当组件104,以验证资源对象类型(步骤204)。如果资源对象是组件不支持的类型,则组件130或132通知组件调度器102,组件调度器102进而将不接受格式的标志返回给主机软件应用。响应于不接受格式的标志,主机软件应用忽略拖放事件,并且从临时文件系统删除与所拖放的资源对象相关联的文件(步骤206)。在步骤204,如果资源对象被确定为是组件130或132支持的类型,则组件104通知组件分配器102,组件调度器102进而将接受标志返回给主机软件应用。组件处理机(handler)106进而以适当方式执行组件例程,产生由组件对象120处理的所放的资源对象。
在该例子中,如果将文本资源对象拖放到内容对象120的标题栏组件130中,则由组件处理机106执行的标题栏组件导致所放的文本包套(wrap)在内容对象120内并显示在标题栏组件130中。如果将墨迹资源对象拖放到标题栏组件130中,则由组件处理机106执行的标题栏组件例程导致将墨迹转换成文本并且将结果文本包套在特定于内容的对象120中并显示在标题栏组件130中。为获得墨迹到文本的转换,组件处理机106指示主机软件应用执行墨迹到文本转换,以及将所转换的文本返回给内容对象120。以此方式,内容对象利用主机软件应用的源代码,由此简化内容对象源代码。
如果将文本、墨迹或图形资源对象拖放到具线纹的画布页组件132中,则由组件处理机106执行的具线纹的画布页组件例程导致所放的对象包套在内容对象内并显示在具线纹的画布页组件132上。如将理解的,内容对象120允许将资源对象注入(“粘贴”)其中并显示。如果从主机软件应用拖新的有效资源对象,并放在标题栏组件130上或具线纹的画布页组件132上,则将新的有效资源对象注入其中,并显示,导致重写(overwite)先前的资源对象。
图像复制器内容对象
图5示出了插入在主机软件应用中并显示在其画布页122上的另一内容对象220。在该例子中的内容对象220是复制资源对象并包括画布页组件226的图像复制器。与画布页组件226相关联的例程接受图形资源对象。当从主机软件应用拖资源对象224并将其放入画布页组件226中时,主机软件应用以先前所述的方式存储资源对象文件,并且将资源对象包套在内容对象220中并显示在画布页组件226上。当显示在画布页组件226上的资源对象被拖出内容对象并放在主机软件应用画布页122上时,组件处理机106执行画布页组件例程。
在执行画布页组件例程后,组件处理机106初始地计算所拖放的图形资源对象的大小和位置。然后,组件处理机106创建包括描述所放的资源对象的代码的XML文件。然后,将XML文件包套在适当的XML标签中。组件处理机106经组件调度器102将XML文件传递到主机软件应用,组件调度器102进而将XML文件解析成其构成,在这种情况下,为图形资源对象文件。然后,主机软件应用将图形资源对象文件保存到文件系统目录并将所放的图形资源对象插入到其画布页122中的所计算的位置处。在任何将由内容对象220显示的资源对象224拖出内容对象并放在主机软件应用画布页122上时这都会发生。资源对象保持显示在图像复制器内容对象220上,直到从主机软件应用拖新的资源对象并将其放在图像复制器内容对象220中。当将新的资源对象放在内容对象220中并且由主机软件应用保存资源对象文件时,将新的资源对象包套在内容对象中,由此重写先前的资源对象并在画布页组件226上显示新的资源对象。
关于拖放粘性内容对象120,如果从主机软件应用拖不支持的资源对象,并将其放在内容对象220上,则内容对象220通知主机软件应用,导致图像复制器内容对象忽略该拖放事件。
路线跟随器内容对象
图6示出了插入到主机软件应用中并显示在其画布页122上的另一内容对象320。在该例子中的内容对象是以具有单一组件的人的形式的路线跟随器图形。与组件相关联的例程接受路线XML资源对象。当从主机软件应用拖路线XML资源对象324并将其放在内容对象320上时,主机软件应用如上所述存储资源对象文件,并且组件处理机106执行组件例程。在执行组件例程后,组件处理机106指示主机软件应用沿与所放的路线XML资源对象的路线相对应的路线在画布页122内移动主图形。这通过顺序地调用基于路线XML资源对象的坐标设置内容对象320的位置的方法来实现。
关于上述的内容对象,如果从主机软件应用拖不支持的资源对象并将其放在内容对象320上,则内容对象320通知主机软件应用,导致内容对象320忽略拖放事件。
循环的多路线跟随器
图7示出了插入到主机软件应用中并显示在其画布页122上的另一内容对象420。在本例子中的内容对象420是以具有单一组件的蜜蜂蜂房的形式的图形。与组件相关联的例程接受路线XML资源对象。当从主机软件应用拖路线XML资源对象424并将其放在内容对象420上时,主机软件应用如前所述存储资源对象文件,并且组件处理机106执行组件例程。在执行组件例程后,创建蜜蜂图形428,并将其安置在主机软件应用的画布页122中。还调用适当的方法来在无限循环中沿与所放的路线XML资源对象的路线相对应的路线移动蜜蜂图形428。对被放在内容对象420上的每个路线资源对象,显示和移动新的蜜蜂图形428。
关于上述的内容对象,如果从主机软件应用拖不支持的资源对象,并将其放在内容对象420上,则内容对象420通知主机软件应用,导致内容对象420忽略拖放事件。
计数器内容对象
图8示出了插入到主机软件应用并显示在其画布页122上的另一内容对象520。本例子中的内容对象520是具有数字组件和画布组件的计数器。与数字组件相关联的例程接受数字文本资源对象和数字墨迹资源对象。与画布组件相关联的例程接受图形资源对象。当从主机软件应用拖图形资源对象524并将其放在画布组件上时,主机软件应用如上所述存储资源对象文件并将资源对象包套在内容对象中,并将其显示在计数器内容对象520的画布组件上。利用显示在画布组件上的资源对象,当从主机软件应用拖文本数字或墨迹数字对象528并将其放在数字组件中时,组件处理机106执行数字组件例程。在执行数字组件例程后,数字组件处理机106将资源对象524复制到主机软件应用的画布页122中n次,其中,n是插入到数字组件中的数字资源对象的值。
关于上述的内容对象,如果从主机软件应用拖不支持的资源对象,并将其放在内容对象520上,则内容对象通知主机软件应用,导致内容对象520忽略拖放事件。
图像修剪器内容对象
图9示出了插入到主机软件应用中并显示在其画布页122上的另一内容对象620。该例子中的内容对象620是具有画布页组件的图像修剪器内容对象。与画布页组件相关联的例程接受图形资源对象类型。当从主机软件应用拖图形资源对象624并将其放在内容对象620上时,主机软件应用如前所述存储资源对象文件,并将资源对象包套在内容对象中并显示在画布页组件上。利用所显示的资源对象,用户可以通过操作窗口628来选择所显示的资源对象的区域。在适当地定位窗口后,选择注入软按钮630使得组件处理机106执行组件例程。在执行例程后,计算用于在窗口628内所显示的资源对象的部分632的画布页位置。将在窗口内显示的部分632的副本插入画布页122的所计算的位置处。
与其他拖放特定于内容的对象类似,如果从主机软件应用拖不支持的资源对象并将其放在内容对象上,则内容对象通知主机软件应用,导致内容对象620忽略拖放事件。
收银机内容对象
图10示出了插入到主机软件应用中并显示在其画布页122上的另一内容对象720。该例子中的内容对象是具有单个组件的收银机。与组件相关联的例程接受墨迹数字资源对象。当从主机软件应用拖墨迹数字资源对象724并将其放在收银机内容对象720上时,主机软件应用如前所述存储资源对象文件。然后,组件处理机106执行组件例程,导致将墨迹转换成文本并且将结果文本包套在内容对象中并由内容对象720显示。当从主机软件应用拖每个墨迹数字资源对象并将其放在收银机内容对象上时,组件处理机106维护所输入的数字的计数(tally)。当选择内容对象720的改变软按钮730时,与用于图形资源对象的画布页位置一起,创建类似于计数量中的硬币的图形资源对象732。将所创建的图形资源对象传递给组件调度器102,组件调度器102进而将图形资源对象通信到主机软件应用。在接收图形资源对象后,主机软件应用在画布页122上显示图形资源对象,并随机地移动硬币图形资源对象预定次数。
关于上述的拖放内容对象,如果从主机软件应用拖不支持的资源对象并将其放在内容对象720上,则内容对象720通知主机软件应用,导致忽略拖放事件。
百宝箱
尽管未示出,内容对象也可以采用百宝箱的形式,包括接受各种不同资源对象的单个组件。当从主机软件应用拖资源对象并将其放在百宝箱上时,主机软件应用如前所述保存资源对象文件,并通知内容对象。不显示被拖放在内容对象上的资源对象。当在执行在内容对象上开始的拖操作后进行主机软件应用的画布页122上的放事件时,任意地复制先前已经拖放在内容对象上的资源对象的一个,然后将其插入在主机软件应用的画布页122中。
脚本内容对象
如先前所述,可以对内容对象编程以便接受包含被设计为调用内容对象内的操作或计算类型的脚本代码的脚本消息。加载到内容对象上的脚本消息可以改变内容对象的用户界面行为或内容对象内的图形的行为。可以使用脚本消息来改变可视属性(诸如内容对象的背景色彩或透明度)、改变画布页122上的内容对象的位置、向内容对象(诸如新的按钮等)增加功能、增加新的或改变内容对象的处理能力,以使得响应于与内容对象的交互而执行新的或不同的动作。在这种情况下,内容对象包括脚本消息处理机以处理所接收的脚本消息。每个脚本消息包含指定脚本的类型和写脚本的语言的元信息。在接收脚本消息后,内容对象的脚本消息处理机检验脚本消息来确定它是否支持脚本的类型以及它是否支持在脚本消息中指定的语言。在该实施例中,脚本消息是XML结构。示例性脚本消息如下:
<Script type="behavior"language="ActionScript"call="movetoandhide(10,10)">function move(x,y){
this.moveTo(x,y);
}
function setLocation(x,y){
this.setLocation(x,y)
}
function hide{}{
this._visible=false;
}
Function movetoandhide(x,y){
move(x,y);
hide();
}
movetoandhide(10,10);
<Script>
如果内容对象支持脚本消息,则脚本消息处理机加载脚本消息并进行脚本消息调用来执行脚本消息。以此方式,在不要求部署新的内容对象的情况下,可以对组件例程和内容对象外观进行改变。
将理解,通过使内容对象能够接受脚本,可以通过在运行时将脚本代码插入内容对象,然后执行脚本代码来动态地改变内容对象的行为,来控制内容对象的行为和外观。所加载的脚本消息变为内容对象的一部分,允许内容对象的内容在发布后动态地改变。当在内容对象内执行脚本消息时,从内部改变内容对象的行为。
消息传递内容对象
另外,也可以对内容对象编程以将消息发送到其他内容对象或从其他内容对象接收消息。以此方式,内容对象能够向内容对象发送指示发生特定事件的消息。接收这样的消息的内容对象处理消息,导致内容对象样式或外观改变。在该实施例中,消息是以XML格式并包括数据和脚本。内容对象包括用于处理所接收的内容对象消息的消息处理机和用于广播消息的消息发射器。当内容对象接收内容对象消息时,根据由消息处理机执行的源代码例程来处理消息,并执行适当的操作。这可以包括例如改变内容对象的外观或其行为。对内容对象编程以接受某些消息类型。当接收输入的内容对象消息时,消息处理机106检查消息,以确定它是否是内容对象支持的类型。如果不是,则忽略该消息。如果内容对象消息是内容对象支持的类型,则处理该消息。可以由内容对象将消息广播到在主机软件应用的画布页122上显示的所有其他内容对象或定向于特定的内容对象。
窗口控制内容对象
典型地,当将内容对象插入到主机软件应用时,主机软件应用控制内容对象如何出现并在画布页上如何被操作。例如,主机软件应用典型地控制内容对象的大小、内容对象如何移动、如何删除内容对象、围绕内容对象的窗口如何出现以及内容对象的透明色彩。因此,内容对象不控制其在画布上的外观和感觉。
为解决上述问题,可以为内容对象提供允许内容对象控制其在主机软件应用的画布页122内的周围窗口显示属性和操作其在主机软件应用的画布页内的大小、位置和模式的机制。以此方式,内容对象可以定义其周围窗口的显示属性,诸如显示或隐藏边框和标题栏、设置栏中的标题、设置透明色彩等等。也可以定义周围窗口的行为,诸如位置、大小、关闭运动等等。在这种情况下,内容对象包括窗口方法调用的库。响应于与内容对象的交互,将根据窗口方法调用的窗口参数发送到主机软件应用。作为响应,主机软件应用使用窗口参数来更新围绕内容对象的窗口的可视外观。
尽管将窗口消息描述为发送到主机软件应用,但是本领域技术人员将理解窗口消息也可以被发送到操作系统中的窗口子系统或代表操作系统起作用的代理应用。
画布注入内容对象
另外,可以对内容对象编程来创建另一内容对象并且将所创建的内容对象传送到主机软件应用,用于插入在画布页中。内容对象计算用于所创建的内容对象的可视属性和行为属性,以使得所创建的内容对象在画布页上以适当的方式具有所期望的可视外观和行为。所创建的内容对象可以包括放置在XML文件中的图形资源和文本资源对象。将XML文件包套在适当的XML标签中,使其适合于插入到画布页122中。在所创建的内容对象可用后,将XML文件以文本文档的形式传递到主机软件应用。主机软件应用进而解析XML文本来将XML文本分解成其组成图形或文本资源对象。然后,由主机软件应用将图形和文本资源对象保存到目录中,并将其插入到画布页中。
将理解,提供上述例子用于说明目的。内容对象的组件可以采用许多形式并且可被编程为接受各种资源对象,并以基本上任何所期望的方式操作(即处理)所接受的资源对象。例如,可以对组件的例程编程以接受具有特定名称或扩展名的资源对象。也可以对组件的例程编程以接受聚集(gallery)资源对象,即以zip文件形式的资源对象,每一个包括多个子对象,诸如动画、音频和文本。在聚集资源对象的情况下,当将聚集资源对象拖放在被编程为处理聚集资源对象的内容对象中时,由组件处理机106执行适当的例程导致以编程的方式解包和处理的聚集资源对象的组件。当聚集资源对象包套在内容对象中时,如果将聚集资源对象的子对象拖出内容对象并将其放在主机软件应用的画布页上时,将整个聚集资源对象从内容对象拖放出,而不仅仅是所选择的子对象组件。
将理解,在拖放内容对象的创建期间,结合将处理拖放输入的方式,由内容开发人员定义用于内容对象的拖放输入的类型,诸如图形、文本、墨迹等等。如果需要改变资源对象处理,则可以由内容开发人员创建并部署新的拖放内容对象。因此,避免了对修改应用源代码来实现内容处理变化的需要。
为了创建展示上述功能或其他功能的内容对象,提供了工具包。工具包包括组件库,存储可用内容对象组件和相关联的例程的列表。可以从列表拖组件库中的内容对象组件并将其放在内容对象创建画布上。例如,组件库中的内容对象组件可以包括允许将图形资源对象复制到画布页上的无限复制器、允许将图形资源对象添加到工具栏上的工具栏容器、允许识别文本对象的文本识别器、允许窗口围绕内容对象的窗口容器、允许资源对象跟随所绘制的线的路线跟随器、允许创建动画图像的动画器、允许通过新的功能在屏幕上播放视频的视频播放器等等。
根据分配给所创建的内容对象的功能,可以在内容对象创建画布上分组各种内容对象组件来形成内容对象。当创建包括多于一个组件的内容对象时,将从组件库拖出并放在内容对象创建画布上的第一组件指定为容器组件。容器组件负责合并将形成所创建的内容对象的其他组件。在已经创建具有所需功能的内容对象后,将内容对象从内容对象创建画布拖到保存所创建的内容对象的内容对象库中。从内容对象库,可以将内容对象拖到主机软件应用的画布页122上。
如果需要,可以为组件库的组件提供有当首次将组件拖到内容对象创建画布上时露出的下拉属性菜单。下拉属性菜单中的属性允许从预装缺省值改变用于组件的属性。在改变后,隐藏属性下拉菜单,禁止进一步改变组件的属性。
尽管已经描述了实施例,但是本领域技术人员将理解在不背离其精神和范围的情况下可以进行变化和修改。
Claims (28)
1.一种增强在其中执行包括编译代码的软件应用的计算环境中的特征的方法,所述方法包括:
将至少一个内容对象插入到所述软件应用的画布页中,每个所述内容对象包括定义归附于所述内容对象的功能的代码,响应于与所述内容对象的交互而执行所述内容对象代码,由此为软件应用功能补充所归附的功能。
2.如权利要求1所述的方法,其中,所归附的功能包括在所述软件应用中不可获得的功能。
3.如权利要求2所述的方法,进一步包括:
通过在所述插入前从组件库选择多个功能组件中的一个,来创建每个内容对象。
4.如权利要求3所述的方法,进一步包括:
将每个所创建的内容对象存储在库中,其中,在所述插入期间,从所述库拖每个所述内容对象并将其放在所述画布页上。
5.如权利要求3所述的方法,其中,在所述创建期间,将所选择的组件放在内容对象创建页上,第一被选组件充当容器组件,该容器组件负责合并形成所述内容对象的随后被选的组件。
6.如权利要求1所述的方法,进一步包括:
在所述插入后,变更所述内容对象的所归附的功能。
7.如权利要求6所述的方法,其中,所述变更包括:
将消息传送到所述内容对象;以及
执行所述消息,由此变更所述代码。
8.如权利要求7所述的方法,其中,所述消息是脚本。
9.如权利要求1所述的方法,进一步包括:
在窗口内的所述画布页上显示所插入的内容对象。
10.如权利要求9所述的方法,进一步包括:
响应于与所述内容对象的交互,变更所述窗口的外观。
11.如权利要求1所述的方法,其中,所述内容对象在执行所述代码后创建至少一个新的内容对象,所述新的内容对象被插入到所述画布页中。
12.如权利要求1所述的方法,其中,所述内容对象在执行所述代码后生成到一个或多个其他内容对象的消息。
13.如权利要求1所述的方法,其中,所述内容对象响应于在所述内容对象上产生的资源对象放事件而执行所述代码。
14.如权利要求13所述的方法,其中,所述内容对象在执行所述代码后复制所放的资源对象的最少的部分。
15.一种待插入到软件应用的画布页的内容对象,所述内容对象包括:
至少一个组件,其与内容对象功能相关联并包括至少一个例程;
处理机,其响应于与所述内容对象的交互而执行所述例程;以及
通信接口,其使得能够在所述内容对象和所述软件应用之间进行通信,所述内容对象在运行时被创建以补充所述软件应用的功能。
16.如权利要求15所述的内容对象,其中,每个组件与不同的内容对象功能相关联。
17.如权利要求16所述的内容对象,其中,所述处理机响应于所述源代码例程的执行而生成用于所述主机软件应用的指令。
18.如权利要求16所述的内容对象,进一步包括用于每个所述组件的处理机。
19.如权利要求16所述的内容对象,其中,所述内容对象的源代码被发布成SWF文件。
20.如权利要求15所述的内容对象,其中,所述处理机响应于在所述内容对象上进行的资源对象放事件而执行所述例程。
21.一种向编译软件应用添加特征的方法,包括:
创建一个或多个内容对象,每个所述内容对象可被插入到所述软件应用中并具有指定的功能;
将一个或多个所创建的内容对象插入到所述软件应用中;以及
与一个或多个所插入的所创建的内容对象交互,以在所述软件应用内调用其功能。
22.如权利要求21所述的方法,其中,所述指定的功能在所述插入后可改变。
23.如权利要求21所述的方法,其中,在所述创建期间,通过从组件库选择多个功能组件中的一个来创建每个内容对象。
24.如权利要求21所述的方法,进一步包括:
将每个所创建的内容对象存储在库中,其中,在所述插入期间,从所述库拖每个所述内容对象,并将其放在所述软件应用中。
25.如权利要求21所述的方法,进一步包括:
在窗口内显示所插入的内容对象。
26.如权利要求25所述的方法,进一步包括:
响应于与所述内容对象的交互,变更所述窗口的外观。
27.如权利要求21所述的方法,其中,所述交互包括执行与一个或多个所插入的所创建的内容对象相关的鼠标事件。
28.如权利要求27所述的方法,其中,所述鼠标事件是资源对象拖放事件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US79272406P | 2006-04-17 | 2006-04-17 | |
US60/792,724 | 2006-04-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101427216A true CN101427216A (zh) | 2009-05-06 |
Family
ID=38608998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007800139313A Pending CN101427216A (zh) | 2006-04-17 | 2007-04-17 | 增强软件应用特征的方法和内容对象 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9098179B2 (zh) |
EP (1) | EP2008175A4 (zh) |
KR (1) | KR20090034307A (zh) |
CN (1) | CN101427216A (zh) |
AU (1) | AU2007240079A1 (zh) |
CA (1) | CA2643837A1 (zh) |
MX (1) | MX2008013415A (zh) |
WO (1) | WO2007118315A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762647A (zh) * | 2018-05-21 | 2018-11-06 | 深圳市富途网络科技有限公司 | 一种股票行情交互联动的方法及系统 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9128727B2 (en) * | 2006-08-09 | 2015-09-08 | Microsoft Technology Licensing, Llc | Generation of managed assemblies for networks |
KR101492603B1 (ko) * | 2012-07-25 | 2015-02-12 | 모글루(주) | 전자문서 제작 시스템과 그 제어 방법 |
CN103677777B (zh) * | 2012-09-19 | 2018-02-02 | 腾讯科技(深圳)有限公司 | 调用应用程序组件的方法及装置 |
US9355193B2 (en) | 2012-11-06 | 2016-05-31 | Rockwell Automation Technologies, Inc. | Object design data model |
US9563861B2 (en) | 2012-11-06 | 2017-02-07 | Rockwell Automation Technologies, Inc. | Integration of workflow and library modules |
US8898634B2 (en) | 2012-11-06 | 2014-11-25 | Rockwell Automation Technologies, Inc. | Customized object design for industrial automation application |
US9031975B2 (en) | 2012-11-06 | 2015-05-12 | Rockwell Automation Technologies, Inc. | Content management |
US9135000B2 (en) * | 2012-11-06 | 2015-09-15 | Rockwell Automation Technologies, Inc. | Runtime process diagnostics |
KR102157327B1 (ko) * | 2013-05-09 | 2020-09-17 | 삼성전자주식회사 | 이미지 형식의 객체를 텍스트 형식으로 변환하는 전자 장치 및 방법 |
US9800458B1 (en) | 2013-05-14 | 2017-10-24 | Google Inc. | Dynamic, interactive objects for posting |
US9727354B2 (en) * | 2014-05-02 | 2017-08-08 | Kofax International Switzerland Sarl | System and methods for loading an application and its modules in a client device |
US10564939B2 (en) * | 2017-06-05 | 2020-02-18 | Devfactory Fz-Llc | Method and system for arbitrary-granularity execution clone detection |
CN108600852B (zh) * | 2018-04-28 | 2020-12-15 | 北京酷我科技有限公司 | 一种弹幕效果的实现方法 |
US11487643B1 (en) * | 2018-11-12 | 2022-11-01 | Xilinx, Inc. | Debugging for integrated scripting applications |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6259446B1 (en) * | 1992-12-23 | 2001-07-10 | Object Technology Licensing Corporation | Menu state system |
AU6161594A (en) * | 1993-02-26 | 1994-09-14 | Taligent, Inc. | Collaborative work system |
US6263492B1 (en) | 1997-06-06 | 2001-07-17 | Microsoft Corporation | Run time object layout model with object type that differs from the derived object type in the class structure at design time and the ability to store the optimized run time object layout model |
US6208345B1 (en) * | 1998-04-15 | 2001-03-27 | Adc Telecommunications, Inc. | Visual data integration system and method |
US6032248A (en) | 1998-04-29 | 2000-02-29 | Atmel Corporation | Microcontroller including a single memory module having a data memory sector and a code memory sector and supporting simultaneous read/write access to both sectors |
US6434740B1 (en) * | 1998-07-15 | 2002-08-13 | International Business Machines Corporation | Apparatus and method for visual construction simplification |
US6604196B1 (en) * | 1998-08-18 | 2003-08-05 | International Business Machines Corporation | Apparatus and method for component role fulfillment based on environment context |
US6714219B2 (en) * | 1998-12-31 | 2004-03-30 | Microsoft Corporation | Drag and drop creation and editing of a page incorporating scripts |
US6948120B1 (en) * | 2000-11-14 | 2005-09-20 | Sas Institute Inc. | Computer-implemented system and method for hosting design-time controls |
US20050188294A1 (en) * | 2004-02-23 | 2005-08-25 | Kuchinsky Allan J. | Systems, tools and methods for constructing interactive biological diagrams |
US7367028B2 (en) * | 2001-08-14 | 2008-04-29 | National Instruments Corporation | Graphically deploying programs on devices in a system |
WO2003019523A1 (en) * | 2001-08-23 | 2003-03-06 | Fei Company | Graphical automated machine control and metrology |
AUPR947701A0 (en) * | 2001-12-14 | 2002-01-24 | Activesky, Inc. | Digital multimedia publishing system for wireless devices |
EP1426857A1 (en) * | 2002-11-05 | 2004-06-09 | Orimos S.A. | Component-based development of software |
US6954197B2 (en) | 2002-11-15 | 2005-10-11 | Smart Technologies Inc. | Size/scale and orientation determination of a pointer in a camera-based touch system |
US8056008B2 (en) * | 2004-09-14 | 2011-11-08 | Adobe Systems Incorporated | Interactive object property region for graphical user interface |
US8694953B2 (en) * | 2006-08-14 | 2014-04-08 | Payman Khodabandehloo | Tool and methodology for enterprise software applications |
US8904342B2 (en) * | 2007-05-25 | 2014-12-02 | Zoot Enterprises, Inc. | System and method for rapid development of software applications |
-
2007
- 2007-04-17 WO PCT/CA2007/000622 patent/WO2007118315A1/en active Application Filing
- 2007-04-17 KR KR1020087027778A patent/KR20090034307A/ko not_active Application Discontinuation
- 2007-04-17 CN CNA2007800139313A patent/CN101427216A/zh active Pending
- 2007-04-17 EP EP07719549A patent/EP2008175A4/en not_active Withdrawn
- 2007-04-17 AU AU2007240079A patent/AU2007240079A1/en not_active Abandoned
- 2007-04-17 MX MX2008013415A patent/MX2008013415A/es active IP Right Grant
- 2007-04-17 US US12/305,940 patent/US9098179B2/en active Active
- 2007-04-17 CA CA002643837A patent/CA2643837A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762647A (zh) * | 2018-05-21 | 2018-11-06 | 深圳市富途网络科技有限公司 | 一种股票行情交互联动的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20090034307A (ko) | 2009-04-07 |
US9098179B2 (en) | 2015-08-04 |
MX2008013415A (es) | 2009-02-06 |
EP2008175A1 (en) | 2008-12-31 |
WO2007118315A1 (en) | 2007-10-25 |
EP2008175A4 (en) | 2009-12-30 |
US20110252402A1 (en) | 2011-10-13 |
AU2007240079A1 (en) | 2007-10-25 |
CA2643837A1 (en) | 2007-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101427216A (zh) | 增强软件应用特征的方法和内容对象 | |
US9910567B2 (en) | Providing a user interface | |
US10592211B2 (en) | Generation of application behaviors | |
US7614052B2 (en) | System and method for developing and deploying computer applications over a network | |
CN101390081B (zh) | 用于在带有选项卡的浏览器内选择一选项卡的系统和方法 | |
US5745759A (en) | Window kernel | |
US11048484B2 (en) | Automated responsive grid-based layout design system | |
US20060225094A1 (en) | Enabling customization and personalization of views in content aggregation frameworks | |
Beaudouin-Lafon et al. | The architecture and implementation of CPN2000, a post-WIMP graphical application | |
US20060200760A1 (en) | Method and system for displaying and interacting with paginated content | |
Oney et al. | ConstraintJS: programming interactive behaviors for the web by integrating constraints and states | |
CN101344848A (zh) | 显示界面中的图标管理 | |
CN101849228A (zh) | 用于创建面向IT的基于服务器的Web应用的方法和系统 | |
CN103197827A (zh) | 用于提供用户界面的方法 | |
CN112445564B (zh) | 界面显示方法及电子设备、计算机可读存储介质 | |
CN110506267A (zh) | 数字组件背景渲染 | |
US20060259869A1 (en) | Providing a user interface | |
CN113391808A (zh) | 页面的配置方法、装置及电子设备 | |
US20060259868A1 (en) | Providing a user interface | |
US9760381B2 (en) | Configurable toolbar | |
Lewis et al. | Native mobile development: a cross-reference for iOS and Android | |
US20100042919A1 (en) | Windowless cross platform program, method and environment | |
CN112445501A (zh) | 数据烧录方法及设备、计算机可读存储介质 | |
KR102228241B1 (ko) | 웹 상에서의 가상 입력 방법 및 시스템 | |
CN117707670A (zh) | 应用程序的数据处理方法、装置、存储介质和电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20090506 |