图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控件
图3
图4
2.下面我们就来导入windows api函数库shell32.dll中的shellexecute函数。欲导入windows api函数库中封装的函数,我们必须知道这些函数的具体类型声明(可以参考微软的msdn中api部分内容),例如shellexecute函数在vb中的函数类型声明如下:
declare function shellexecute lib "shell32.dll" alias "shellexecutea" (byval hwnd as long, byval lpoperation as string, byval lpfile as string, byval lpparameters as string, byval lpdirectory as string, byval nshowcmd as long) as long
从类型声明中我们可以知道shellexecute函数的原型是shellexecutea,其参数类型按顺序依次为long,string,string,string,string,long,函数返回类型为long。因此我们在图4所示对话框的【function name】域中填入函数名shellexecutea,【arguments】域中填入参数声明类型long,string,string,string,string,long,【return】域中填入函数返回类型long,然后单击按钮【load】,成功导入函数后,在对话框的左下角有一提示文字:successfully loadded "shellexecutea",如图5所示。最后单击按钮【done】返回authorware设计窗口或者继续导入其它的api函数。
图5
3. 导入api函数后就可以直接在程序中使用了,例如在计算图标里执行以下代码可以自动打开系统默认的邮件发送程序:
shellexecutea(windowhandle, "open","mailto:hellrock@163.net","","",5)
dll函数虽然功能强大,但是对于没有编程基础的authorware初学者来说,必须知道很多复杂dll函数的类型知识,似乎显得困难了点,这个时候u32(ucd)发挥作用了。实际上u32(ucd)也是dll,只不过是符合authorware特有的usercode扩展标准的动态链接库,方便不熟悉dll的用户使用。它包括16位版本的ucd和32位版本的u32,目前流行的操作系统都为32位(如windows 9x/2k),因此一般都只使用u32进行系统开发。u32扩展了authorware的使用开发范围,使得用它开发出来的多媒体程序功能更加强大,实现了许多高级语言编程才能实现的功能。
和dll一样,使用u32里的函数也必须事先导入,方法和dll大同小异:执行菜单命令【window】|【functions】或快捷键ctrl+shift+f调出函数列表对话框,在【category】域中选择当前的文件分类,此时对话框左下的按钮【load…】变为可用;单击【load…】按钮浏览选择相应的u32文件,此时会弹出一个该u32全部函数列表的对话框,选择一个或多个函数导入即可,如图6所示。导入后的u32函数就可以和系统函数一样随心所欲地使用了。当然程序打包的时候切记附带发行相关的u32函数库。
图6
功能齐全的xtras
macromedia公司为旗下的多媒体制作软件director和authorware设计了xtras,使得它们的功能得到第三方的扩展而增强。xtras在开发上遵循特定的规范,包括有适合于32位操作系统平台(如windows 9x/2k)的x32和适合于16位操作系统平台(如windows 3.x)的x16两种文件后缀扩展。xtras功能齐全,包括了authorware开发的方方面面,例如有的专门用于转场过渡效果,有的专门用于数据库操作,有的专门负责文件的存取操作,也有的专门用于音频视频的播放控制等等。在authorware中使用xtras,首先必须安装xtras,一般只需要把相关的x32(x16)插件及其相关支持文件拷贝到authorware安装目录下的【xtras】子目录内,重启authorware后就可使用xtras提供的相关功能了。有的xtras也提供完整的setup程序,把xtras安装到authorware安装目录下【xtras】子目录内即可。
xtras在authorware 6.5中的使用一般视其功能而言,例如提供转场过渡效果的xtras一般在显示图标、交互图标等的【transition】属性域里出现;有的xtras提供相关的控制函数,可以在function函数列表对话框里查找到;也有的xtras提供了可视化的设置界面,例如directmedia xtra,安装后在菜单【insert】里多了一个【tabuleiro xtras】|【directmediaxtras】的菜单选项,如图7所示;单击选择后,此时在程序流程就自动插入一个sprite图标"directmediaxtra",同时进入它的设置界面,如图8所示。最后还需要提醒一下,使用了外部扩展的xtras,在程序打包发行时也必须一起附带上,拷贝到打包文件的【xtras】目录下即可。
图7
图8
终于把authorware外部扩展函数插件相关使用的基础知识介绍完毕,大家是否有一个初步的印象了?接下来如何灵活地运用authorware 6.5的外部扩展函数插件,就必须靠自己的勤于实践和摸索了。
新闻热点
疑难解答