任何一个开发软件都有所为有所不为,Authorware当然也既有它的优势,也有它的弱项甚至是缺陷,例如声音同步问题、数据库高级应用方面等等,但是通过开放的外部扩展接口(ActiveX、DLL、U32、Xtras),Authorware可以实现许多高级功能或者一些系统底层功能。同时越来越多的第三方扩展开发厂商也在为Authorware开发外部扩展函数插件,这无疑为Authorware注入了一剂强心针!
下面将给大家介绍Authorware外部扩展函数插件相关使用的基础知识。
一、极其丰富的ActiveX资源
ActiveX是由微软公司在1996年正式命名的一项内容广泛的技术概念。它的理论基础是Microsoft的组件对象模型(COM),经历了OLE、VBX和ActiveX三个发展阶段。目前的ActiveX控件类型内容也包罗万象,渗透到计算机程序应用的方方面面。ActiveX控件是一个模块化的灵活对象,它使得开发者无须重写代码程序,只要灵活地插入一个具有特定功能的ActiveX控件即可实现特定的功能,优势不言而喻!在Authorware 6.5平台中使用ActiveX控件进行开发,更可大大地减少开发时间和强度,完成各种难以想象的功能。
ActiveX控件必须在Windows中成功注册后方可在Authorware 6.5等应用程序中使用,我们可通过人工注册或者程序注册两种方式。
Windows系统提供了一个"Regsvr32.exe"的命令用于控件的人工注册,下面以注册魔岩自己利用Visual Basic 6.0 编写的RockTime.ocx控件为例进行说明:
1.首先把"RockTime.ocx"控件复制到【Windows / System】(Windows 98系统)或者【WINNT / System32】(Windows 2K系统)子目录下
2.在【开始】]菜单的【运行】里输入执行注册命令行:regsvr32 RockTime.ocx
3.如果注册成功,系统将弹出如图1右下所示的提示对话框。必须重新启动Authorware,执行Authorware菜单【Insert】|【Control】|【ActiveX…】后,在出现的系统控件注册列表对话框中就可以找到刚刚注册的ActiveX控件名称:RockStudio.Time。
图1
技巧提示:
如果某一个ActiveX控件不再被任何应用程序使用了,推荐在系统中卸载此ActiveX控件,避免导致系统的臃肿,造成系统速度下降。我们可以运行以下命令行进行卸载(以卸载RockTime.ocx为例):regsvr32 RockTime.ocx /u
程序注册方式一般运用于客户机器的ActiveX控件安装与否的判断上,使用程序注册方式注册ActiveX控件首先必须知道该ActiveX控件的唯一ClassID,即一个32位类别标识码,如果获取?假设在开发程序时我们已经利用手动方式成功注册了某一ActiveX控件,那么我们可以通过执行菜单【Insert】|【Control】|【ActiveX…】调出系统注册控件列表对话框,用鼠标双击选择该控件,在弹出的ActiveX控件属性对话框中选择【URL…】按钮得到相关ActiveX控件的ClassID,如图2所示。例如上面提到的RockTime.ocx控件其ClassID为:
{6D414588-354C-4CCB-90CA-E32804173805}

图2
获取ActiveX控件的ClassID,我们就可以设计如图3所示的自动判断注册ActiveX控件的程序流程。其中使用了两个条件交互分支,响应条件分别为:
ActiveXControlQuery("{6D414588-354C-4CCB-90CA-E32804173805}")=0 --//尚未注册
ActiveXControlQuery("{6D414588-354C-4CCB-90CA-E32804173805}")=-1 --//已经注册
条件表达式中的系统函数ActiveXControlQuery("CLASSID")可以用来检查某个ClassID是否存在,如果该函数找到了ClassID,不管安装的控件是什么版本,都返回-1,否则就返回0。
假如在客户机器上发现没有安装相应版本的ActiveX控件,那么可以用系统函数ActiveXControlRegister()进行注册,例如注册当前文件目录下的RockTime.ocx控件为例,其代码为:
ActiveXControlRegister(FileLocation^"RockTime.ocx") --//注册RockTime.ocx控件