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