●在Authorware中调用外部程序 |
在不少报刊杂志上看到这方面的讨论,不少人用C写DLL来实现。其实Authorware有这样的函数(在想实现某一功能时先多看看函数和变量的帮助!)
JumpOut和JumpOutReturn可以调用外部程序,它们不同于JumpFile,JumpFileReturn,后者只能调用Authoreware自己的文件。带Return的函数可以返回调用文件继续运行。
JumpOut的JumpOutReturn可以加调用参数,语法是: JumpOut("程序名","文档名") ,其中文档名是要程序打开的文档,也可以把用程序执行的参数加在这里,比如调用ScreenCam做成的自执行电影时可以加参数/s禁止ScreenCam的Logo,这样即可:
JumpOutReturn("play。exe","/s")--假设play。exe是自执行电影文件名.
这个功能有时用起来不听话,比如我自已编了一个BMP打印程序,用来在Authorware下打印BMP图片,参数是要打印的文件,可是如果用JumpOutReturn("prtbmp。exe","1。bmp")的方法调用时,Authorware自动调用了与BMP关联的画图程序打开了这幅图片,而不是用我的程序,所以如果你要用其它语言编写供Authorware调用的可执行程序时建议你参数的格式为这样"/参数",有了这个"/",参数就可以正常传递了,我的程序调用方法就是这样:
JumpOutReturn("prtbmp。exe","/1。bmp"),就行了!
其它调用外部程序的函数是JumpPrintReturn(),可用于调用外部程序打印文档.参数用法也差不多。 |
● 如何在Authorware中制作不中断的音乐
|
如何在Authorware中制作不中断的音乐?
首先要看您所用的音乐是什么样的格式,MIDI或WAV?
若使用前者,可以先在流程线的最上端放置一个计算图示(Caculation Icon),里面使用MIDIPlay函数,如此会在程式执行前播第一次音乐。
但如果音乐播完了,怎么办呢?
在计算图示下放置一个永久(Perpetual)的修件式(Conditional)。交谈条件请设~SoundPlaying, 附著图示仍为计算图示。计算图示中先放置MIDIStop函数,再放置MIDIPlay函数即可在音乐停止后立即重复播映音乐。
WAV格式的音乐制作方式与上者大致相同。
流程线的最上端放置的是音乐图示(Sound Icon),请设定音乐图示只播映一次,接著在音乐图示下放置一个永久(Perpetual)的修件式(Conditional)。交谈条件仍然为为~SoundPlaying,附著图示为音乐图示,设定音乐图示只播映一次。
如此即会在程式执行的过程中不停地重覆播映音乐。
|
●图文滚动条的制作 |
说到滚动条的制作,不少人都知道Authorware提供了文字滚动的功能,但是这里我们要做的是图文滚动的效果。
做图文滚动的关键在于使用永久型动画,下面我们做一个能随滑块移动而移动的滚动物体。
1)放一个图标在流程线上,设计其中的内容,可以是图,也可以是文字,反正愿意放什么就放什么,这是要滚动的内容;
2)放另一个图标在流程线上,起名为"slide",画上一个滑块,也可以导入一个漂亮的滑块图片,设定它为在Path上移动,然后设定起止值为0和100(默认值),这样滑块就可以在一条直线上被移动了;
3)放一个动画图标,设定物体为要滑动的图标(第一个图标),设定动画方式为按路径,设定起止位置及起止值为0和100,关键的一步是设定目标值为PositionX@"slide",方式为永久,这样,只要slide的位置一变化,这个永久动画就被触发运动到新的目的地,此外动画的时间设为0,即立即运动到目的地;
4)通过设定起止值的顺序可以设置滚动内容与滑块的移动方向,相反则相反运动,相同则同向运动。(当然做滚动条要相反运动了)
通过这个例子可以举一反三,比如使一个物体跟随另一物体在一定区域内容移动(这样要用PositionX,PositionY两个变量,方式也变成区域动画),我在一个CAI中做过一个AVI播放器,可以随意拖动播放器的外框,中间的影片也一起动。 |
●巧用按键交互实现文本输入交互
|
使用过文本交互的朋友往往觉得它不太适合自己的要求,以前我就为多个文本输入交互不能用TAB切换苦思冥想过,有一次我做一个多媒体查询系统时要用到磁卡机,结果发现Authorware的文本交互不能接受磁卡机自动发送的回车键,结果是划完卡用户还要手动地按一下小键盘上的回车键。最后我用按键交互实现了,之后我很少使用文本输入交互了(是不是很偏激?对于CAI题材来说文本交互还是不错的),因为用按键交互也能实现,只是要自己处理的东东多了(不过我宁愿这样,因为灵活)。
用按键交互的关键在于设一个字串,初始化为"",然后在每个按键交互里追加所按的字符,在BACKSPACE按键中删去最后一个字符。输入完成后该字串就是输入的内容。
|
●多文件调用时共享变量 |
如果要做的系统太大,为了编辑方便和执行效率,应该把项目分成多个文件来做,如主画面做一个文件打包成EXE文件,各个分系统分成几个文件,分别打包成APP文件,由主文件调用(JumpFileReturn)。但是在Authorware中各个文件中的变量不能在文件自动共享,即到新文件中后原文件中的变量全没了,所以要手动传送。一开始我把变量存到文件中,在新文件中取回,后来发现JumpFile,JumpFileReturn可以带参数,如JumpFile("new",
"var1,var2","c:\mynew" ) ,var1和var2就是要保持值的变量名。
当我们把一个项目分成多个文件来做时,用JumpFileReturn是最好的,因为被调用的文件结束时用Quit(0)会返回调用文件继续运行。如果用JumpFile的话被调用文件要回到调用文件还要反过来再用JumpFile调用主文件,调来调去太不方便而且一旦文件调用关系变化了必须一个一个改。另外为了减小空间,只有主文件打包成EXE文件,其它文件打成APP就行了。不要把所有的文件都打成EXE,然后用JumpOut和JumpOutReturn来当成Windows可执行程序来调用,这样的效率很低!而且文件间也不能共享变量!-----
一句话,注意JumpOut和JumpOutReturn不同于JumpFile,JumpFileReturn!一种是调用Windows程序一种是调用Authorware包文件。
|
●HTTP链接的使用 |
Authorware也可以做WEB多媒体,因为有Shockware for Authorware插件,但没有Director和Flash的那么有名气。在要链接的地方加上GoToNetPage("http://person。zj。cninfo。net/~studybk/")即可,注意这样的文件不能打包成EXE文件而应是APP文件,然后用AfterBurner生成AAM文件。在页面中这样写:
<html>
<head>
</head>
<body>
<embed src="test。aam" width=640 height=480 window=onTop
palette=Background>
</embed>
</body>
</html>。
浏览时要安装Shockware for Authorware插件,否则看不到AAM文件。
|
●Language使用中要注意的问题 |
Authorware中的语句是不能跨图标作用的,举个例子:
1,在一个计算图标中有以下内容:
a:=0
b:=0
JumpOutReturn("c:\\test。exe")
a:=1
b:=2
有没有问题呢?运行一下就知道了,a、b的值还是0!因为中间有跳转语句使得操作跨出了本图标,返回后直接返回到这个计算图标的下一图标运行了,解决方法是将JumpOutReturn后面的语句另外放一个计算图标跟在后面,类似的一些操作也要注意。
返回
|