程序实现思路:程序运行后首先从磁盘中找出存放相片的各个相册名(文件夹),用户选择(单击)其一后,接着给出不同的浏览方式(随机、按序循环、手动控制),如果你选择前两项,程序将按要求不停地播放图片,直至你想停止或重新选择相册为止。另外,如果你有新相片,只须加入相应的相册即可,不用更改源程序。
相册位置:为叙述方便,本例中将各个相册放在与该程序同位置的文件夹“我的相册”中(图一)
构成程序的模块如下(限于篇幅,只介绍自动浏览部分):(图二)
各模块的说明:
一.“选择相册”交互项:
1.附加在交互项上的运算图标内容:
Initialize(t,pic_num,pic_name)
--初始化自定义变量,t用来决定各按钮的显示状态;pic_num为相片的号码;pic_name为相片的名称。
pic_dir:=Catalog(FileLocation^"我的相册","D")
--pic_dir代表相册名。
2.双击交互图标,选择文字工具,分别输入“请选择相册”和{pic_dir},调整好文字框大小,一定要注意使热区“记录相册名称”的区域与此相同。(图三)
3.“记录相册名称”热区交互项上的属性设置:[Branch]域中选择Exit Interaction项,其余默认。其中的运算图标中的内容为:
pic_dir:=WordClicked
--取得用户单击的相册名
二.“观看方式”交互项:.
1.附加在交互上的运算图标内容:
pics:=Catalog(FileLocation^"我的相册\"^pic_dir,"F")
--变量pics为用户单击的相册中所有的相片名。
total_pic:=LineCount(pics)
--该变量代表相片的总数。
2.该交互中共有四个按钮交互项,其中属性设置为:
“随机”和“循环按序”按钮:[Active If]域中输入t=0,[Branch]域中选择Try Again项。
“重选相册”按钮:[Active If]域中输入t=1,[Scope]域中选择Perpetual。
“退出”按钮按钮:[Scope]域中选择Perpetual。
3.“重选相册”交互中的运算图标内容为:GoTo(IconID@"选择相册")
4.“退出”交互中的运算图标内容为:Quit()
三.打开“随机”交互中的组图标(图四)
1.“定义按钮状态”运算图标中内容为:
t:=1
--使“随机”按钮不可用
2.在“随机浏览”交互中只有一个时间交互项,该时间交互中的属性设置为:[Interruption]域中选择Continue Timing项;[Option]域中选中Restart for each try;[Branch]域中设为Try Again;[Time Limit]设为3(可自己调整)。
3.打开“图片”组图标(图五):
(1)“读相片名”运算图标中内容为:
pic_num:=Random(1,total_pic,1)
--随机产生一个相片号。
pic_name:=GetLine(pics,pic_num)
--取出该相片的名称。
(2)双击“显示相片”显示图标,从菜单中选择Insert/Image,此时你可看到弹出一个属性窗口,挪动窗口至适当位置还可看到画面上有一个“X”型的图形,此即为你输入的图片。
在属性窗口上单击Image按钮,在[File]域中输入(此为程序的关键部分,除汉字外,其它字符一定要在英文状态下输入):
=FileLocation^"我的相册\"^pic_dir^"\"^pic_name#p#分页标题#e#
单击[Layout]按钮,在[Display]域中选择As Is(正常显示)项。
关闭该属性窗口,调整好“X”框的大小,在此你还可设置图片显示时的效果。
注:如果你想在运行中知道该相册中相片的数目,及时了解此时所显示的相片名,可选取文字工具输入以下内容:相册名:{pic_dir},共有{total_pic}张相片,现在是第{pic_num}张,名称为{pic_name}。.
(3)Wait图标中你可输入等待的时间。
(4)“擦除”图标用来擦除刚才的图片,可设置一种擦除方式。
四.“按序循环”组图标中的流程同“随机图标”,只须将“读相片名”的运算图标中的内容改为以下内容即可:
pic_num:=pic_num+1
if pic_num>total_pic then pic_num:=1
--如果所有的相片都已播放,再从第一张开始。
pic_name:=GetLine(pics,pic_num)
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交