Authorware作为一种主要面向非程序员的多媒体创作工具,具有简单易用、编程灵活的特点,但其软件功能相对比较简单。为了满足一些高级设计人员进行复杂程序创作的需要,Authorware从4.0版本开始提供了对ActiveX控件的支持,允许用户在Authorware文件中嵌入ActiveX控件,与其它支持ActiveX控件的环境中一样方便快捷地使用。由于有许多软件厂商支持ActiveX技术,所以大多数功能都能找到相应的ActiveX控件。这意味着在Authorware中,通过调用ActiveX控件来直接使用现成的程序模块,从而省掉许多繁琐的编程工作。所能使用的ActiveX控件,除了Windows操作系统本身提供的以外,.还可以根据需要,利用编程语言如VB、VC、Delphi等,制作具有特殊功能的ActiveX控件,然后在Authorware中使用它们。
1 ActiveX的基本知识
1.1 Activex简介
ActiveX是Microsoft的元素软件标准。简单地说,ActiveX技术是一种共享程序数据和功能的技术。它由微软提出并大力推广,并已成为事实上的标准。
ActiveX技术是Microsoft对OLE技术的更新和发展,Microsoft公司为了适应网络的高速发展把它的OLE技术和OCX技术融为一体并加以改进形成联合标准,改进之后赋予新名字ActiveX。也就是说,ActiveX中涵盖了OLE的所有技术和功能,同时又具有许多新的特性,以适应网络发展的需要。
ActiveX指的是一组包括控件、DLL和ActiveX文档的组件,它通常以动态链接库的形式存在,其设计思想是将一个程序(比如Flash动画)嵌入到另一个程序中(这个程序通常被称做容器,比如Authorware、Delphi、VB、VC、Internet Explorer等)。借助这种技术使得用户在一个程序中所创建的信息可以被集成到其它程序所产生的文档中。.这样就可使它(如Flash动画)可以随意地应用到各种场合。
ActiveX控件的数据输入和函数功能执行都必须通过容器,因此ActiveX控件和容器之间必须有一些特定的接口协议。ActiveX控件必须具备如下的性能机制:
属性和方法:ActiveX控件必须提供属性的名称、方法的名称及参数,通过这项机制,容器可以存取和改变ActiveX控件的属性参数。
事件:ActiveX控件由这项机制通知容器在ActiveX控件中发生的事件,比如属性参数的改变,用户按下鼠标左键等。
虽然在本质上ActiveX和OLE是同一种技术(实现不同程序的数据和功能的共享),但其目的有所差别。ActiveX的目的主要是共享程序模块之间的计算功能,生成一些专门的可以嵌入其他程序中的“小程序”,例如Microsoft web浏览器控件可以使得别的应用程序能够浏览(仅仅是浏览而不是创建)Web网页。
ActiveX控件是一个模块化的灵活对象,如果某个应用程序或网页需要增加一项特殊的功能,则无须重写整个程序,只要灵活地插入一个具有此项功能的ActiveX控件即可实现,ActiveX的优势还在于它的动态可交互性,用户可以动态地在使用过程中,通过改变它的属性和参数,在应用程序中实现自己的特殊要求。
1.2 使用ActiveX
作为一个外部程序,ActiveX控件在Authorware中的使用与普通图标的使用有很大区别。总的来说,使用ActiveX控件要涉及到以下内容。
1.2.1 安装注册控件
如果要使用自己编写的控件或者使用其他人提供的控件,就先要在Windows中进行注册。同样如果我们的程序中使用了控件又要交给用户使用,最好必须先检测用户机中是否注册了该控件,若没有就要进行注册。
注册的方法有两种:
1.手动注册
方法是:单击Windows的开始菜单,选择运行命令,在打开的对话框中输入以下命令:
regsvr32 <ActiveX控件的文件名>
regsvr32.exe是Windows自带的ActiveX注册工具,可以在Windows的系统目录中找到,假定要注册一个自建的控件New.ocx,那么就输入如下命令:regsvr32 new.ocx,如图1所示。
图1 运行窗口
单击确定按钮,如果注册成功,将会出现如图2所示的对话框,提示成功,否则会出现如图3所示的对话框,提示没有注册成功,原因一般是已经注册过该控件或控件本身有问题。
图2 注册成功对话框
图3 注册失败对话框
若要解除某一个ActiveX控件的注册,则格式如下:
regsvr32 /u <ActiveX控件的文件名>
比如要删除刚才.注册的控件new.ocx,就可以在运行窗口输入以下命令:
regsvr32 /u new.ocx
然后单击确定按钮,如果删除成功,将出现对话框来提示成功删除,如图4所示。
图4 控件删除成功对话框
2.在Authorware中自动注册
方法是利用Authorware 中的Xtra ActiveX 里的函数来进行注册。
对ActiveX控件注册的格式如下:
ActiveXControlRegister("<ActiveX控件的文件名>")
如要注销该控件,格式如下:
ActiveXControlUnregister("<ActiveX控件的文件名>")
同样以new.ocx为例(通常首先要检测当前系统是否支持控件注册):
注册控件:
if ActiveXInstalled()=-1 then
result:= ActiveXControlRegister(FileLocation^"new.ocx")
end if
这里假定new.ocx是放在程序文件所在目录中。result是自定义变量,用来记录函数ActiveXControlRegister的返回值的,若注册成功则返回值为-1,.否则为0。
注销控件:
if ActiveXInstalled()=-1 then
result:= ActiveXControlUnregister(FileLocation^"new.ocx")
end if
具体的用函数注册控件和删除控件在后面相应的实例中均有介绍。