首页 > 设计 > 媒体动画 > 正文

Authorware类和函数:丰富地扩展函数插件--Authorware6.5随意学专题(六)

2020-09-19 18:44:55
字体:
来源:转载
供稿:网友
authorware 6.5 轻松学
  第六部分 丰富的扩展函数插件  任何一个开发软件都有所为有所不为,authorware当然也既有它的优势,也有它的弱项甚至是缺陷,例如声音同步问题、数据库高级应用方面等等,但是通过开放的外部扩展接口(activex、dll、u32、xtras),authorware可以实现许多高级功能或者一些系统底层功能。同时越来越多的第三方扩展开发厂商也在为authorware开发外部扩展函数插件,这无疑为authorware注入了一剂强心针!

  本节专题魔岩将给大家介绍authorware外部扩展函数插件相关使用的基础知识。

   本节导读:

 一、极其丰富的activex资源

  activex控件是一个灵活的模块化对象,它使开发者无须重写代码程序,只要灵活地插入一个具有特定功能的activex控件即可实现特定的功能,优势不言而喻!在authorware 6.5平台中使用activex控件进行开发,更可大大地减少开发时间和强度,完成各种难以想象的功能。

 二、功能强大的dll函数

  dll全称是dynamic link library,中文翻译为"动态链接库"。dll是一种在运行时连接的可执行代码或数据模块,它是windows系统的重要组成元素,可以为windows程序共享使用。windows通过动态链接库提供了功能强大的windows api函数和资源,为软件开发人员创造了良好的编程环境。authorware 6.5同样可以调用windows系统中dll所封装的函数,但使用前必须先导入相关的函数,即类似高级语言编程的函数声明。

  三、特有的u32(ucd)函数

  dll函数虽然功能强大,但是对于没有编程基础的authorware初学者来说,必须知道很多复杂dll函数的类型知识,似乎显得困难了点,这个时候u32(ucd)发挥作用了。实际上u32(ucd)也是dll,只不过是符合authorware特有的usercode扩展标准的动态链接库,方便不熟悉dll的用户使用。u32扩展了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控件


图3


二、功能强大的dll函数

  dll全称是dynamic link library,中文翻译为"动态链接库"。dll是一种在运行时连接的可执行代码或数据模块,它是windows系统的重要组成元素,可以为windows程序共享使用。windows通过动态链接库提供了功能强大的windows api函数和资源,为软件开发人员创造了良好的编程环境。authorware 6.5同样可以调用windows系统中dll所封装的函数,但使用前必须先导入相关的函数,即类似高级语言编程的函数声明,导入方法步骤如下(以导入windows api函数库shell32.dll中的shellexecute函数为例):

  1.执行菜单命令【window】|【functions】或快捷键ctrl+shift+f调出函数列表对话框,在【category】域中选择当前的文件分类,此时对话框左下的按钮【load…】变为可用;单击【load…】按钮浏览选择shell32.dll文件,注意此dll位于【windows / system】(windows 98系统)或者【winnt / system32】(windows 2k系统)子目录下。选择了shell32.dll后将弹出如图4所示的对话框。


图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)三、特有的u32(ucd)函数

  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的外部扩展函数插件,就必须靠自己的勤于实践和摸索了。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表