实例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所有可以处理(间接或直接的)类型的多媒体对象全部演示。由于各种对象运行消耗大量系统资源,在使用时要注意一定的方法和技巧,在实际应用中,多种媒体一起同时使用还是比较少见的。
新闻热点
疑难解答