邵雨舟
(北京經(jīng)濟(jì)管理職業(yè)學(xué)院,北京 100102)
現(xiàn)在有許多電子相冊(cè),可以實(shí)現(xiàn)對(duì)圖像的不同的顯示效果,但它們大都使用的固定圖像源,在設(shè)計(jì)時(shí)已經(jīng)將要播放的圖像添加在電子相冊(cè)中,用戶在使用時(shí)不能根據(jù)自己的需要選擇其它的圖像源。
結(jié)合Authorware自身的特點(diǎn),利用它具有程序設(shè)計(jì)的功能,我們實(shí)現(xiàn)了可以在運(yùn)行時(shí)由用戶選擇自己需要播放的圖像源,而且可以選擇不同的播放方式,使用起來(lái)靈活方便。
在運(yùn)行時(shí)可以允許用戶通過(guò)交互操作,選擇要播放的圖像源,為了方便圖像的瀏覽,首先將用戶選擇的播放圖像文件名存儲(chǔ)在一個(gè)數(shù)組中。
先獲取要播放圖片的路徑,如果是首次運(yùn)行,則默認(rèn)打開(kāi)當(dāng)前程序所在的目錄,否則打開(kāi)上一次瀏覽圖像時(shí)使用的目錄。
然后將選擇目錄下滿足條件的圖像文件名保存在數(shù)組中,供隨后的播放使用,同時(shí)記載滿足條件的圖像文件個(gè)數(shù)。
在“打開(kāi)文件選擇對(duì)話框”交互分支中“獲取文件夾全部圖像”計(jì)算圖標(biāo)中添加如下代碼,可以選擇目錄并將選中的圖片文件添加到數(shù)組中,供下一步播放使用。
pic_list:=[] --數(shù)組初始化
if openstate=TRUE then--如果先前曾經(jīng)打開(kāi)過(guò)文件夾,則獲取該文件夾的路徑
beginfolder:=path
else
beginfolder:=FileLocation--否則打開(kāi)當(dāng)前路徑
end if
path:=tMsBrowseFolder(WindowHandle,"選擇:","請(qǐng)選擇文件夾",beginfolder)
--調(diào)用函數(shù)獲取要播放圖片的文件夾名稱
openstate:=TRUE
--openstate代表選擇過(guò)文件夾,true代表選擇過(guò),false代表沒(méi)有選擇過(guò)
total:=Catalog(path,"f")--獲取指定目錄下全部文件信息
n:=LineCount(total,Return)--獲取全部文件個(gè)數(shù)
p:=0 --用p變量記錄滿足條件的圖像文件個(gè)數(shù)
pic_list:=[] --保存圖像文件名的數(shù)組初始化
repeatwith k:=1 to n --用循環(huán)程序依次檢查獲取的每個(gè)文件名
f1:=GetLine(total,k)--取文件名
len:=CharCount(f1)
dot_pos:=RFind(".",f1)
ext:=UpperCase(SubStr(f1,dot_pos+1,len))--取擴(kuò)展名
if ext="JPG"|ext="BMP"then--如果當(dāng)前文件的擴(kuò)展名滿足格式要求
p:=p+1 --將滿足條件的文件個(gè)數(shù)累加
pic_list[p]:=f1--將文件名添加到數(shù)組中
end if
end repeat
if p>0 then
GoTo(IconID@"播放方式選擇界面圖")else
SystemMessageBox(WindowHandle,"沒(méi)有可選擇的圖像! ","提示 ",#yes)
GoTo(IconID@"選擇文件夾")end if
這段程序運(yùn)行結(jié)束后,在pic_list數(shù)組中就保存了需要播放的全部圖像文件名。主流程線如下:
圖1 選擇播放文件
在完成了播放圖像的選擇之后,就可以根據(jù)需要確定播放方式了,本程序一共定義了三種不同的播放方式供使用者選擇:
手動(dòng)控制播放:實(shí)現(xiàn)向前、向后的方式控制播放;
幻燈片方式自動(dòng)播放:連續(xù)循環(huán)自動(dòng)播放;
用戶自己選擇播放:用戶在播放列表中自己選擇查看某張圖片;
單擊手動(dòng)控制熱區(qū)域,進(jìn)入對(duì)應(yīng)分支。
圖2 手動(dòng)控制播放設(shè)計(jì)流程線
3.1.1 在計(jì)算圖標(biāo)中設(shè)置播放的圖片文件名和完整路徑
i:=1
filw:=path^"\"^pic_list[i]
3.1.2 在計(jì)算圖標(biāo)中設(shè)置實(shí)現(xiàn)前后翻頁(yè)效果的交互按鈕代碼
第一幅
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]
單擊自動(dòng)播放熱區(qū)域,進(jìn)入對(duì)應(yīng)分支。
圖3 自動(dòng)播放方式的設(shè)計(jì)流程線
3.2.1 變量初始化
通過(guò)設(shè)置變量stop分別為0和1,來(lái)決定決策圖標(biāo)的執(zhí)行和停止。首先在計(jì)算圖標(biāo)中設(shè)置變量stop為0,當(dāng)單擊鼠標(biāo)右鍵時(shí)設(shè)置stop變量為1,停止決策圖標(biāo)的重復(fù)運(yùn)行。然后設(shè)置播放的圖片文件名和完整路徑。
3.2.2 設(shè)置決策圖標(biāo)的屬性
設(shè)置決策圖標(biāo)的屬性,采用“重復(fù)直到判斷值為真”的方式,條件設(shè)置為“stop=1”停止自動(dòng)循環(huán)播放。
當(dāng)單擊鼠標(biāo)右鍵時(shí),在計(jì)算圖標(biāo)中將stop變量設(shè)置為1。
3.2.3 設(shè)置特效分支
用不重復(fù)的方式,隨機(jī)產(chǎn)生一個(gè)播放分支入口,進(jìn)入該分支播放當(dāng)前圖片,每個(gè)分支有不同的播放特效。
圖4 實(shí)現(xiàn)不同特效顯示效果的設(shè)計(jì)流程線
通過(guò)隨機(jī)函數(shù)產(chǎn)生一個(gè)隨機(jī)數(shù),作為5個(gè)分支的入口值。計(jì)算特效入口計(jì)算圖標(biāo)中代碼如下:x:=Random(1,5,1)。
利用不重復(fù)方式的決策圖標(biāo)進(jìn)入某個(gè)分支,x作為變量獲取分支入口。
每個(gè)分支的播放設(shè)置:
顯示圖標(biāo)“圖像”用于顯示一個(gè)變量表示的圖像,且為該顯示圖標(biāo)設(shè)置了一種顯示特效,5個(gè)分支分別設(shè)置了5種不同的顯示特效,這樣可以保證圖像進(jìn)入某個(gè)分支是隨機(jī)的,而且可以為不同分支的顯示圖標(biāo)設(shè)置不同的顯示特效。
單擊選擇播放熱區(qū)域,進(jìn)入對(duì)應(yīng)分支。
圖5 用于實(shí)現(xiàn)用戶選擇播放方式的設(shè)計(jì)流程線
具體實(shí)現(xiàn)方法如下:
添加一個(gè)ActiveX控件listbox,然后將前面獲取的文件名加入到該列表框中。
在下列計(jì)算圖標(biāo)中,為列表框添加要播放的圖像名。
圖6 將要播放的文件名從數(shù)組中添加到列表框控件中
然后通過(guò)“事件”的交互方式,對(duì)列表框單擊事件進(jìn)行交互分支。
圖7 交互布標(biāo)的屬性面板
用戶在對(duì)列表框中的圖片名單擊后,產(chǎn)生交互,進(jìn)入“單擊圖片名”分支。
圖8 顯示特效設(shè)計(jì)流程線
在“計(jì)算特效入口”計(jì)算圖標(biāo)中,獲取單擊的完整圖片文件名和特效分支入口。
圖9 獲取選擇的文件名的計(jì)算圖標(biāo)代碼
其它產(chǎn)生特效和顯示的方法和自動(dòng)播放的方式相同。此程序具有較好的靈活性和觀賞型,再配合使用背景音樂(lè),就能設(shè)計(jì)出一個(gè)個(gè)性化的圖片瀏覽器。
[1]宋一兵.多媒體技術(shù)應(yīng)用教程[M].北京:人民郵電出版社2009.
[2]王愛(ài)民.A uthorware多媒體課件制作技術(shù)[M].北京:中國(guó)水利水電出版社,2007.
[3]李京文.A uthorware案例教程[M].北京:中國(guó)水利水電出版社,2010.
[4]梅申信.A uthorware中的函數(shù)使用[J].安徽農(nóng)業(yè)大學(xué)學(xué)報(bào),2004,31(2):242-245.
[5]楊迎新,郝鳳肖.基于A uthorware環(huán)境的多媒體課件的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2004,25(9):1627-1629.
[6]尹功勛.A uthorware使用操作500問(wèn)[M].北京:人民郵電出版社,2003.