邵雨舟
(北京經濟管理職業學院,北京 100102)
現在有許多電子相冊,可以實現對圖像的不同的顯示效果,但它們大都使用的固定圖像源,在設計時已經將要播放的圖像添加在電子相冊中,用戶在使用時不能根據自己的需要選擇其它的圖像源。
結合Authorware自身的特點,利用它具有程序設計的功能,我們實現了可以在運行時由用戶選擇自己需要播放的圖像源,而且可以選擇不同的播放方式,使用起來靈活方便。
在運行時可以允許用戶通過交互操作,選擇要播放的圖像源,為了方便圖像的瀏覽,首先將用戶選擇的播放圖像文件名存儲在一個數組中。
先獲取要播放圖片的路徑,如果是首次運行,則默認打開當前程序所在的目錄,否則打開上一次瀏覽圖像時使用的目錄。
然后將選擇目錄下滿足條件的圖像文件名保存在數組中,供隨后的播放使用,同時記載滿足條件的圖像文件個數。
在“打開文件選擇對話框”交互分支中“獲取文件夾全部圖像”計算圖標中添加如下代碼,可以選擇目錄并將選中的圖片文件添加到數組中,供下一步播放使用。
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 選擇播放文件
在完成了播放圖像的選擇之后,就可以根據需要確定播放方式了,本程序一共定義了三種不同的播放方式供使用者選擇:
手動控制播放:實現向前、向后的方式控制播放;
幻燈片方式自動播放:連續循環自動播放;
用戶自己選擇播放:用戶在播放列表中自己選擇查看某張圖片;
單擊手動控制熱區域,進入對應分支。

圖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 自動播放方式的設計流程線
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種不同的顯示特效,這樣可以保證圖像進入某個分支是隨機的,而且可以為不同分支的顯示圖標設置不同的顯示特效。
單擊選擇播放熱區域,進入對應分支。

圖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.