程序實現思路:程序運行后首先從磁盤中找出存放相片的各個相冊名(文件夾),用戶選擇(單擊)其一后,接著給出不同的瀏覽方式(隨機、按序循環、手動控制),如果你選擇前兩項,程序將按要求不停地播放圖片,直至你想停止或重新選擇相冊為止。另外,如果你有新相片,只須加入相應的相冊即可,不用更改源程序。
相冊位置:為敘述方便,本例中將各個相冊放在與該程序同位置的文件夾“我的相冊”中(圖一)
構成程序的模塊如下(限于篇幅,只介紹自動瀏覽部分):(圖二)
各模塊的說明:
一.“選擇相冊”交互項:
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
單擊[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)
好!一個你自己創作的電子相冊就完成了,你可以在“圖片”組圖標中多設置幾個顯示圖標來豐富顯示效果,加入運動圖標使圖片運動,你還可以在程序的啟動部分載入音樂、加入其它內容等。