实例演练Authorware(2)

4/8/2006来源:Authorware教程人气:8680

实例2、光驱开关控制


实例说明:


利用第三方屏幕检测模块alTools.u32(由于现在操作的平台都是32位的,所以对16位的UCD不再做说明)检测屏幕分辨率,动态将提示放在系统托盘上方,通过对GIF小图像的变换形象地控制光驱开关,类似用普通编程控制光驱。
注意:在使用UCD文件时,要将文件拷贝到Authorware目录下面,通过调用自定义函数来使用,在程序打包发行时,UCD是外置的外部文件,必须将要使用到的UCD文件复制在程序同一目录下运行。
操作步骤:


1、首先在流程线上放置一计算图标,里面写上以下内容(--后面内容作说明):
w:=GetIconPRoperty(@"cdrom", #videowidth)--用来检测GIF图像的宽度
h:=GetIconProperty(@"cdrom", #videoheight)--用于检测GIF图像的高度
ResizeWindow(w,h)--设定显示窗口的大小(和GIF图像一样大小)
x:=ScreenWidth--利用alTools.U32的alChangeRes函数里面的ScreenWidth变量计算屏幕的宽度。
y:=ScreenHeight--利用alTools.U32的alChangeRes函数里面的ScreenHeight变量计算屏幕的高度
MoveWindow(y-w-20,x-h-10)--定位显示窗口放置位置,+-的数字是用来做小位置调整(见图19)。


加载UCD先点击工具条上面的函数小图标,在“Category”属性里面选现在制作的a6p文件,点击“Load...”按钮,选择要装载的UCD,这是会出现相关的UCD的属性,在这程序中选择装载“alTool.u32”的“alChangeRes”函数和“a5wmme.u32”的“CDRetract()”和“CDEject()”函数。
虽然alTools.U32里面的alChangeRes函数没有直接使用,但使用了它里面的2个变量ScreenWidth和ScreenHeight,所以运行时要有这UCD 支持。


2、选择在主菜单的“Insert”的“Tabuleiro Xtras”里面的“DirectMediaXeras”,在流程线上出现一个插件图形,改名字为“cdrom”,用它作CDROM开关的图形显示,笔者现在使用的这个DirectMediaXeras是2.0版本。在这图标的“Display”属性里面Mode(模式)选择“Transparent”透明效果。


3、在图标属性里面点击“Options...”打开“DirectMediaXeras”属性设置。(见图20)


在“Digital Video File”里面浏览文件并作选定,DirectMediaXeras本身系统说明支持MPEG, AVI, Quicktime, WAV, AIF, MP2和MIDI文件,如果系统安装了Windows Media Player,你还可以打开ASF、 WMV、 WMA等流媒体格式文件,但实际上它还支持动态GIF、JPG、BMP等一部分的图像文件,笔者就是利用它来打开一幅动态GIF图片的。要打开的GIF图片运行一遍的时间为2900ms(毫秒),其中0-1900ms段为打开部分,1900-2900ms段为关闭CDROM图像段。其他的设定按省缺值。


4、在流程线上放置一计算图标“close_gif”,写上:
CallSprite(@"cdrom",#videoplaysegment, 0,1900)--设定配合关闭CDROM设定GIF图像的片段
程序运行时,先关闭CDROM,这0-1900ms便是关闭的过程。
由于关闭是利用第三方的UCD文件A5wmme.u32里面的函数,它不是直接开关CDROM的函数,它关闭有一个短时间过渡,所以在流程线下还加一个计算图标,设定等待1秒。


5、流程线加一计算图标“clolse_rom”,写上:
CDRetract()--利用A5WMME的函数关闭CDROM
A5WMME.U32的函数CDRetract()和CDEject(),是可以用来关闭和开启CDROM的。
A5wmme.u32包含的自定义函数实现以下几种媒体格式文件的控制:动画文件(*.mmm)、CD音乐、MCI(媒体控制接口) 调用、MIDI音乐、WAV文件。在这里只使用开关光驱的2个函数。
6、在流程线下拖放进一交互图标“开关”,在下面继续放进2个群组图标和一个计算图标。这3个图标都设定为“Hot Object”热对象交互,并且热对象都是图标“cdrom”。对于将Xtras控件作为热对象,你只要一运行,它自动会提示你选择热对象,这时你调整画面点击准备运行的Xtras,就可以选择好热对象了。前2个群组图标的交互响应属性设定基本相同,在“Match”属性选择“Single-Click”,在“Cursor”里面选择你需要的光标指针,以便在单击时明显表现出变化。(见插图2-4)
在“Response”属性里面,“Scope”不用点选“Perpetual”,“Erase”选“After next entry”,“Branch”选择“Try again”。
这2个群组图标“开”和“关”,关键在于设定响应交互的激活。“开”图标在“Active if”设定“b=0”,“关”图标设定为“b=1”,初始值设定为0。群组图标下层设置为2个计算及中间一个等待图标(作用同步骤4),“开”群组第一个计算图标写上:
CallSprite(@"cdrom",#videoplaysegment, 1900, 3200)--运行GIF图形"cdrom"的1900-3200ms段内容(打开光驱动态过程)


第二个计算图标写上:
CDEject()--打开光驱
b:=1
“关”群组第一个计算图标写上:
CallSprite(@"cdrom",#videoplaysegment, 0, 1900)--运行GIF图形"cdrom"的0-1900ms段内容(关闭光驱动态过程)


第二个计算图标写上:
CDRetract()--关闭光驱
b:=0
点击的热对象就只有一个,这2个计算图标与响应条件相配合,使到点击变换执行开关命令,这是设计技巧关键所在。
右边的计算图标,它响应“Double-click”,里面写上退出程序函数:quit()。由于前2个交互执行的前效性,它实际是没效果的,所以要使用一个快捷键“Esc”退出程序,由于执行窗口小,不适用其他方法退出。主流程线见图21)


程序关键在于通过赋予变量b的变化和击活响应的条件来达到设计的目的。 实例3、声音和视频对象播放的方法和技巧


实例说明:
在一屏内,理论上可以将Authorware所有可以处理(间接或直接的)类型的多媒体对象全部演示。由于各种对象运行消耗大量系统资源,在使用时要注意一定的方法和技巧,在实际应用中,多种媒体一起同时使用还是比较少见的。