仅仅依靠Authorware 6.0本身的功能和它所提供的系统函数,来提高Authorware多媒体程序的灵活性是不够的。有些时候,用户需要利用其他的开发工具来生成用户自定义函数,用来拓展程序的功能。本章向大家展示的就是有关于这方面的应用。
1 概述
1.1 什么是用户自定义函数
UCD的全名是User Code Dll,是用户自定义函数的缩写。目前任何一种软件都难以满足用户各方面的需要,Windows的功能实在是太强大了,Authorware所提供的系统函数不可能将Windows下所能实现的功能都包括在内,因为它只是一个基于操作系统的多媒体开发平台,而且Authorware又是定位在非程序员的使用上,本身不必包罗万象。Windows 的主要优势和特点是共享资源,我们可以直接利用操作系统本身的功能来达到这个目的,因此Authorware采用开放式结构(MOA),提供一个通用的接口标准,给用户留下一个充分发挥能力的空间,让用户自己编写一些外部函数,以满足特殊功能的需要,从而实现对计算机更深层次、更广泛的控制。
利用C语言,程序员可以设计出能够为Authorware使用的DLL文件,但Windows的DLL是为专业编程人员创建的,标准的DLL格式和调用规则通常需要用户参考程序员的文档和Windows的API(Application Program Interface,应用程序接口)调用,对非程序员来说建立和使用都不方便。为避开这些,Authorware支持对于普通DLL的透明的扩充,这种方式就是UCD。编写Authorware中使用的DLL的C程序员,可以使用UCD来自动载入Authorware需要的信息,.包括函数名、参数、返回值的类型、语法模块和联机描述等,以便Authorware识别和链接DLL,而这些附加的自动载入的信息可以存储在DLL中,或分开存储,并且这些信息对于其他程序来说仍是透明的。这样就可以像调用系统函数那样,在Authorware的应用程序中调用外部函数,而无须去了解函数文件的底层信息。
我们常用的UCD一般有两个文件名相同而后缀名不同的文件,其后缀名分别是UCD和U32。实际上UCD和U32是相互对应的,后缀名为UCD的文件用在Windows3.x这样的16位操作系统环境下,而以U32为后缀名的文件则适用在Windows95/98/NT这样的32位操作系统环境下。
1.2 如何调用自定义函数
在使用自定义函数之前,首先要载入这个自定义函数。之所以要加载自定义函数,目的是使Authorware能知道存放该函数的地点,从而能够直接从磁盘上读取该函数。当一个自定义函数被加载后,就可以像使用Authorware所提供的系统一样来使用自定义函数了。调用自定义函数有两种方法:
(1)在计算图标中直接输入使用该函数的语句,在关闭计算图标时Authorware会弹出查找相应函数的对话框,通过该对话框来查找对应的UCD文件。(在第9章中已有介绍)
(2)先加载自定义函数,然后在需要时再将自定义函数插入到需要使用的地方(和系统函数一样使用)。
下面主要介绍在Authorware应用程序中加载自定义函数的操作步骤:
1.在Authorware中打开函数列表框,选择Category项中当前Authorware应用程序的程序名,比如Untitled.a6p,如图1所示。
图1 Authorware的函数列表框
2.这时左下角的Load按钮变得可以使用了。单击Load按钮,弹出选择UCD文件对话框,如图2所示。
图2 选择UCD文件对话框
在Authorware的安装目录下有一些Authorware自带的UCD,如winapi.u32等。在对话框中的“搜寻”列表中找到Authorware的安装目录,选中UCD文件,如winapi.u32。单击“打开”按钮后,会弹出如图3所示的对话框,该UCD文件包含的用户函数的列表显示在左边的Name域。当选中某个函数后,在右边的Description域中就会列出相应的使用说明。
图3 UCD文件包含的用户函数的列表及其使用说明
3.如Windows中的操作一样,.按住Shift键或Ctrl键,可以一次选择多个要加载的用户函数。选中所需函数后,单击Load按钮,这样就可以将这些用户函数加载到当前的Authorware应用程序中,并且可以在函数列表框中看到引入的函数,如图4所示。
图4 引入了外部函数后的函数列表框
4.这时,加载到函数列表框中的UCD函数就像Authorware提供的系统函数一样,下方的Description域同样也有该函数的使用说明、参数说明等,这些信息就是Authorware可以识别的信息。有了这些信息之后,用户就能够在Authorware应用程序中“透明”地使用这些函数了。
1.3 在使用UCD时要注意的问题
在Authorware 6.0程序中使用某个UCD文件,最好将该文件拷贝到Authorware应用程序所在目录下或拷贝到Authorware的安装目录下,然后通过调用自定义函数的方式来使用它们。另外,在发布Authorware应用程序时,必须将这些UCD函数文件放到该应用程序可以查找到的目录中(比如打包后的EXE文件所在目录),同时设置好应用程序的搜索路径。
1.4 在Authorware 6.0中使用DLL
在实际应用中,可以使用VC++,Delphi等编程工具编写自定义函数。编写完毕并调试之后,将之编译成DLL(动态链接库)文件以供Authorware或其他应用程序调用。和UCD不同的是,Authorware无法自动识别DLL文件中的函数信息,必须对调用的DLL非常了解。不过,这些需要Windows程序员的水平才可以做到。
在Authorware中调用DLL中函数的步骤如下:
1.在Authorware中打开函数列表框,在Category域中选择当前Authorware应用程序的文件名,比如Untitled.a6p,如图1所示。
2.单击Load按钮后,弹出选择源文件对话框,如图2所示。选择相应的DLL文件,然后单击“打开”按钮。
3.这时弹出调用DLL函数的对话框,要求输入要调用的函数名、.参数及返回值类型等,并给出注释,如图5所示。
图5 设置DLL中的函数的对话框
4.在对话框中正确输入之后,单击Load按钮就可以将此DLL中的指定函数加载到Authorware应用程序中使用了。
5.和UCD一样,如果在Authorware应用程序中使用了某个DLL中的函数,则在发布该Authorware程序时,也必须将使用了的DLL文件放到能够查找到的目录中。