利用AuthorWare设计一个图片浏览器
2013-08-06邵雨舟
邵雨舟
(北京经济管理职业学院,北京 100102)
1.引言
现在有许多电子相册,可以实现对图像的不同的显示效果,但它们大都使用的固定图像源,在设计时已经将要播放的图像添加在电子相册中,用户在使用时不能根据自己的需要选择其它的图像源。
结合Authorware自身的特点,利用它具有程序设计的功能,我们实现了可以在运行时由用户选择自己需要播放的图像源,而且可以选择不同的播放方式,使用起来灵活方便。
2.在运行时由使用者实时选择要播放的图像源
在运行时可以允许用户通过交互操作,选择要播放的图像源,为了方便图像的浏览,首先将用户选择的播放图像文件名存储在一个数组中。
2.1 设计思路
先获取要播放图片的路径,如果是首次运行,则默认打开当前程序所在的目录,否则打开上一次浏览图像时使用的目录。
然后将选择目录下满足条件的图像文件名保存在数组中,供随后的播放使用,同时记载满足条件的图像文件个数。
2.2 具体实现代码
在“打开文件选择对话框”交互分支中“获取文件夹全部图像”计算图标中添加如下代码,可以选择目录并将选中的图片文件添加到数组中,供下一步播放使用。
pic_list:=[] --数组初始化
if openstate=TRUE then--如果先前曾经打开过文件夹,则获取该文件夹的路径
beginfolder:=path
else
beginfolder:=FileLocation--否则打开当前路径
end if
path:=tMsBrowseFolder(WindowHandle,"选择:","请选择文件夹",beginfolder)
--调用函数获取要播放图片的文件夹名称
openstate:=TRUE
--openstate代表选择过文件夹,true代表选择过,false代表没有选择过
total:=Catalog(path,"f")--获取指定目录下全部文件信息
n:=LineCount(total,Return)--获取全部文件个数
p:=0 --用p变量记录满足条件的图像文件个数
pic_list:=[] --保存图像文件名的数组初始化
repeatwith k:=1 to n --用循环程序依次检查获取的每个文件名
f1:=GetLine(total,k)--取文件名
len:=CharCount(f1)
dot_pos:=RFind(".",f1)
ext:=UpperCase(SubStr(f1,dot_pos+1,len))--取扩展名
if ext="JPG"|ext="BMP"then--如果当前文件的扩展名满足格式要求
p:=p+1 --将满足条件的文件个数累加
pic_list[p]:=f1--将文件名添加到数组中
end if
end repeat
if p>0 then
GoTo(IconID@"播放方式选择界面图")else
SystemMessageBox(WindowHandle,"没有可选择的图像! ","提示 ",#yes)
GoTo(IconID@"选择文件夹")end if
这段程序运行结束后,在pic_list数组中就保存了需要播放的全部图像文件名。主流程线如下:
图1 选择播放文件
3.根据需要确定播放方式
在完成了播放图像的选择之后,就可以根据需要确定播放方式了,本程序一共定义了三种不同的播放方式供使用者选择:
手动控制播放:实现向前、向后的方式控制播放;
幻灯片方式自动播放:连续循环自动播放;
用户自己选择播放:用户在播放列表中自己选择查看某张图片;
3.1 手动控制播放
单击手动控制热区域,进入对应分支。
图2 手动控制播放设计流程线
3.1.1 在计算图标中设置播放的图片文件名和完整路径
i:=1
filw:=path^"\"^pic_list[i]
3.1.2 在计算图标中设置实现前后翻页效果的交互按钮代码
第一幅
i:=1
file:=path^"\"^pic_list[i]
前一幅
if i>1 then
i:=i-1
else
i:=1
end if
file:=path^"\"^pic_list[i]
下一幅
if i
i:=i+1
else
i:=p
end if
file:=path^"\"^pic_list[i]
最后幅
i:=p
file:=path^"\"^pic_list[i]
3.2 自动方式播放
单击自动播放热区域,进入对应分支。
图3 自动播放方式的设计流程线
3.2.1 变量初始化
通过设置变量stop分别为0和1,来决定决策图标的执行和停止。首先在计算图标中设置变量stop为0,当单击鼠标右键时设置stop变量为1,停止决策图标的重复运行。然后设置播放的图片文件名和完整路径。
3.2.2 设置决策图标的属性
设置决策图标的属性,采用“重复直到判断值为真”的方式,条件设置为“stop=1”停止自动循环播放。
当单击鼠标右键时,在计算图标中将stop变量设置为1。
3.2.3 设置特效分支
用不重复的方式,随机产生一个播放分支入口,进入该分支播放当前图片,每个分支有不同的播放特效。
图4 实现不同特效显示效果的设计流程线
通过随机函数产生一个随机数,作为5个分支的入口值。计算特效入口计算图标中代码如下:x:=Random(1,5,1)。
利用不重复方式的决策图标进入某个分支,x作为变量获取分支入口。
每个分支的播放设置:
显示图标“图像”用于显示一个变量表示的图像,且为该显示图标设置了一种显示特效,5个分支分别设置了5种不同的显示特效,这样可以保证图像进入某个分支是随机的,而且可以为不同分支的显示图标设置不同的显示特效。
3.3 用户自己选择播放
单击选择播放热区域,进入对应分支。
图5 用于实现用户选择播放方式的设计流程线
具体实现方法如下:
添加一个ActiveX控件listbox,然后将前面获取的文件名加入到该列表框中。
在下列计算图标中,为列表框添加要播放的图像名。
图6 将要播放的文件名从数组中添加到列表框控件中
然后通过“事件”的交互方式,对列表框单击事件进行交互分支。
图7 交互布标的属性面板
用户在对列表框中的图片名单击后,产生交互,进入“单击图片名”分支。
图8 显示特效设计流程线
在“计算特效入口”计算图标中,获取单击的完整图片文件名和特效分支入口。
图9 获取选择的文件名的计算图标代码
其它产生特效和显示的方法和自动播放的方式相同。此程序具有较好的灵活性和观赏型,再配合使用背景音乐,就能设计出一个个性化的图片浏览器。
[1]宋一兵.多媒体技术应用教程[M].北京:人民邮电出版社2009.
[2]王爱民.A uthorware多媒体课件制作技术[M].北京:中国水利水电出版社,2007.
[3]李京文.A uthorware案例教程[M].北京:中国水利水电出版社,2010.
[4]梅申信.A uthorware中的函数使用[J].安徽农业大学学报,2004,31(2):242-245.
[5]杨迎新,郝凤肖.基于A uthorware环境的多媒体课件的设计与实现[J].计算机工程与设计,2004,25(9):1627-1629.
[6]尹功勋.A uthorware使用操作500问[M].北京:人民邮电出版社,2003.