打開程序,屏幕上顯示如圖28-1所示的程序流程圖和如圖28-2所示的程序運(yùn)行主畫面。

圖28-1 程序流程圖 圖28-2 程序運(yùn)行主畫面
在圖28-1中,【run to view documentation】設(shè)計(jì)圖標(biāo)完成發(fā)布一個(gè)聲明并運(yùn)行程序到主畫面的功能,其余設(shè)計(jì)圖標(biāo)則完成運(yùn)行程序?qū)嵗墓δ堋?/font>
在如圖28-2所示的主畫面中有如下3個(gè)按鈕:
l 【introduction】——程序簡介
l 【a help system】——程序流程圖標(biāo)設(shè)計(jì)說明
l 【run the example】——運(yùn)行實(shí)例
單擊【run the example】按鈕,程序進(jìn)入實(shí)例演示分支,其運(yùn)行畫面如圖28-3所示。
畫面上顯示一個(gè)【activate help】按鈕,單擊此按鈕,畫面左側(cè)顯示出3行幫助系統(tǒng)目錄,右側(cè)顯示出3個(gè)按鈕,如圖28-4所示。
鼠標(biāo)移至目錄上變?yōu)槭中危瑔螕裟承心夸洠嬅骘@示出與本目錄相關(guān)的內(nèi)容。單擊【help topics】按鈕,恢復(fù)如圖28-4所示畫面。
單擊【find】按鈕,彈出查找對話框,輸入欲查找的關(guān)鍵字。再單擊【find】按鈕,查找到的相關(guān)頁標(biāo)題顯示在查找對話框中。單擊選中某頁,單擊【go to page】按鈕進(jìn)入該頁,畫面顯示該頁內(nèi)容。所查關(guān)鍵字以高亮顯示。
單擊【close help】按鈕,關(guān)閉幫助系統(tǒng)畫面,返回如圖28-3所示的畫面。

圖28-3 實(shí)例運(yùn)行畫面 圖28-4 進(jìn)入幫助系統(tǒng)畫面
打開【activate help】群組圖標(biāo),其下級流程如圖28-5所示。

圖28-5 【activate help】下級流程圖
【help topics】框架圖標(biāo)下設(shè)置下4個(gè)設(shè)計(jì)圖標(biāo),構(gòu)成了本框架內(nèi)的4頁。其中首頁為【help topic menu】群組圖標(biāo),其他3頁均為顯示圖標(biāo)。3個(gè)顯示圖標(biāo)中分別輸入了與幫助目錄相關(guān)的內(nèi)容。
本幫助系統(tǒng)的設(shè)計(jì)思路是將幫助的題目設(shè)置成一個(gè)列表并顯示于屏幕上,用戶單擊目錄中的某一行便跳轉(zhuǎn)到相關(guān)頁面中去。這一功能是在框架圖標(biāo)的首頁【help topic menu】群組圖標(biāo)中完成的。該群組的下級流程圖如圖28-6所示。

圖28-6 首頁的下級流程圖
【build topic list】運(yùn)算圖標(biāo)中的代碼創(chuàng)建了幫助系統(tǒng)目錄表,其代碼如圖28-7所示。

圖28-7 【build topic list】創(chuàng)建目錄表代碼
及時(shí)點(diǎn)評 用repeat with語句創(chuàng)建了helptopiclist列表變量,且列表中的3個(gè)元素名稱就是“help topics”框架圖標(biāo)中的第2頁、第3頁和第4頁的標(biāo)題。這是一個(gè)設(shè)計(jì)技巧,并且由于每個(gè)元素中加入了“return”符,因此,helptopiclist列表變量顯示出來時(shí)菹螄允荊疵扛鱸兀刻醢鎦柯跡└髡家恍小?/span>
如圖28-6所示的流程圖中設(shè)計(jì)了一個(gè)【select topic】交互響應(yīng)圖標(biāo),其下僅含一個(gè)熱物體交互響應(yīng)分支。由如圖28-8所示的熱物體交互響應(yīng)屬性設(shè)置對話框可知,幫助系統(tǒng)目錄表被設(shè)置成為熱物體。因此,用戶單擊目錄表,響應(yīng)匹配,進(jìn)入本分支。

圖28-8 【jump to help topic】熱物體交互屬性設(shè)置
分支下的導(dǎo)航圖標(biāo)有一個(gè)附屬運(yùn)處圖標(biāo),其中代碼為:
helptopic:=getline(helptopiclist, lineclicked)
helptopic變量中將保存用戶單擊的目錄表某一行的字符,也就是說,helptopic變量中保存了“hint for using find”、“how to add a topic”和“topic3”這3個(gè)標(biāo)題中的某一個(gè)。
【jump to help topic】導(dǎo)航圖標(biāo)屬性設(shè)置對話框如圖28-9所示。

圖28-9 【jump to help topic】導(dǎo)航圖標(biāo)屬性設(shè)置對話框
由圖28-9可知,該導(dǎo)航圖標(biāo)導(dǎo)航走向?yàn)橛?jì)算方式,計(jì)算表達(dá)式中應(yīng)用了eval系統(tǒng)函數(shù),該函數(shù)的功能是計(jì)算其后面表達(dá)式的值。
由于helptopic變量中保存了目錄表中的一行目錄,而目錄名稱與框架圖標(biāo)中第2~4頁的設(shè)計(jì)圖標(biāo)名稱一致,因此eval計(jì)算表達(dá)式的結(jié)果將是框架圖標(biāo)中某頁的id碼,因此,導(dǎo)航圖標(biāo)根據(jù)計(jì)算結(jié)果跳轉(zhuǎn)到框架的某頁中。
及時(shí)點(diǎn)評 本例幫助系統(tǒng)的建立與運(yùn)行經(jīng)過了如下幾個(gè)步驟:
(1)將框架中第2~4頁的設(shè)計(jì)圖標(biāo)名稱作為幫助目錄表的元素項(xiàng)。
(2)在圖標(biāo)中嵌入目錄表變量使幫助目錄顯示于畫面上。
(3)設(shè)置目錄表為熱物體,單擊它可產(chǎn)生交互響應(yīng)。
(4)應(yīng)用getline函數(shù)取得用戶單擊目錄表中的具體目錄。
(5)通過導(dǎo)航圖標(biāo)跳轉(zhuǎn)到目錄相關(guān)頁面。
框架圖標(biāo)本身由輸入和輸出層組成。并且程序進(jìn)入框架時(shí)首先執(zhí)行輸入層的流程,然后自動(dòng)進(jìn)入首頁。【help topics】框架的輸入和輸出層流程如圖28-10所示。

圖28-10 【help topics】框架輸入層流程
設(shè)框架輸入層是由一個(gè)交互響應(yīng)圖標(biāo)和3個(gè)導(dǎo)航圖標(biāo)組成的按鈕響應(yīng)分支構(gòu)成。其中,【find】導(dǎo)航分支屬性設(shè)置對話框如圖28-11所示。

圖28-11 【find】導(dǎo)航分支屬性設(shè)置對話框
由圖28-11可知,本分支在當(dāng)前框架中尋找與某關(guān)鍵詞相匹配的頁并跳轉(zhuǎn)到該頁中去。
【close help】導(dǎo)航分支屬性設(shè)置如圖28-12所示。

圖28-12 【close help】導(dǎo)航分支屬性設(shè)置對話框
由圖28-12可知,本分支將退出框架,關(guān)閉幫助系統(tǒng)畫面,程序返回主流程【activate help】交互響應(yīng)入口處。
【help topics】導(dǎo)航分支屬性設(shè)置對話框如圖28-13所示。

圖28-13 【help topics】導(dǎo)航分支屬性設(shè)置對話框
由圖28-13可知,本分支使程序跳轉(zhuǎn)到框架第1頁,即再次進(jìn)入幫助系統(tǒng)目錄頁,等待用戶再一次選擇目錄。
及時(shí)點(diǎn)評 框架輸入層的3個(gè)按鈕設(shè)計(jì),實(shí)現(xiàn)了框架內(nèi)查找瀏覽的管理,并且通過導(dǎo)航圖標(biāo)的跳轉(zhuǎn)設(shè)置,完成再次進(jìn)入目錄頁和退出框架的功能。
【find】、【close help】和【help topics】這3個(gè)按鈕均設(shè)置為進(jìn)入框架后永久有效,且分支跳轉(zhuǎn)都是“return”, 即返回調(diào)用處。
及時(shí)點(diǎn)評 按鈕“永久有效”的設(shè)置使得3個(gè)按鈕在程序進(jìn)入框架運(yùn)行的整個(gè)期間都是有效存在的,因此用戶可隨時(shí)單擊它們而進(jìn)入各自分支執(zhí)行。并且3個(gè)分支跳轉(zhuǎn)均為return的設(shè)置,保證了程序在執(zhí)行完本分支后返回調(diào)用處繼續(xù)程序。
本程序設(shè)計(jì)了兩類導(dǎo)航跳轉(zhuǎn):一是框架輸入層中的導(dǎo)航跳轉(zhuǎn);二是框架輸入層外的導(dǎo)航跳轉(zhuǎn)。
框架輸入層中共設(shè)置了3個(gè)導(dǎo)航圖標(biāo),它們分別完成在本框架內(nèi)“查找與某關(guān)鍵詞相匹配的頁”并跳轉(zhuǎn)到該頁、跳轉(zhuǎn)到首頁以及退出框架的功能。而如圖28-6所示,【jump to help topic】導(dǎo)航圖標(biāo)是框架輸入層以外的導(dǎo)航圖標(biāo)。用戶單擊幫助目錄熱物體后進(jìn)入該導(dǎo)航圖標(biāo)執(zhí)行導(dǎo)航跳轉(zhuǎn)。
該導(dǎo)航圖標(biāo)的屬性設(shè)置如圖28-9所示。
由設(shè)置可知,【jump to help topic】導(dǎo)航走向?yàn)橛?jì)算式,其計(jì)算表達(dá)式如下:
eval("iconid/""helptopic"/"")
該表達(dá)式的運(yùn)算結(jié)果是獲得字符串變量helptopic 中存儲(chǔ)的內(nèi)容所代表的設(shè)計(jì)圖標(biāo)的id標(biāo)識(shí)。由于helptopic 變量中保存的是幫助目錄中的一行,而幫助目錄表又與框架第2~4頁設(shè)計(jì)圖標(biāo)名稱一致,因此,導(dǎo)航圖標(biāo)將跳轉(zhuǎn)到框架中第2~4頁的某一頁。
及時(shí)點(diǎn)評 在流程線的任何位置均可放一個(gè)導(dǎo)航圖標(biāo),并且通過設(shè)置使程序從此處跳轉(zhuǎn)到需要的頁中去。但程序中必須存在有框架頁結(jié)構(gòu),因?yàn)閷?dǎo)航跳轉(zhuǎn)是針對頁圖標(biāo)而不是其他任何圖標(biāo)。
靈活設(shè)置框架與導(dǎo)航的配合,可實(shí)現(xiàn)程序的復(fù)雜跳轉(zhuǎn)。
本實(shí)例通過框架頁管理設(shè)計(jì),實(shí)現(xiàn)了一個(gè)簡單的在線幫助系統(tǒng)的功能。即用戶通過單擊幫助目錄,使程序跳轉(zhuǎn)到相關(guān)頁面瀏覽。
本例中主要應(yīng)用了如下技術(shù):
l 框架頁結(jié)構(gòu)設(shè)計(jì)
l 框架輸入層流程設(shè)計(jì)
l 幫助目錄表的創(chuàng)建
l 設(shè)置目錄表為熱物體的設(shè)計(jì)
l 取得單擊目錄表中某一行的設(shè)計(jì)
l 導(dǎo)航圖標(biāo)跳轉(zhuǎn)到表達(dá)式鏈接的頁的設(shè)計(jì)
新聞熱點(diǎn)
疑難解答