在布應(yīng)用程序前必須將其打包為可執(zhí)行文件,打包后不允許再修改。打包前必須盡可能排除其中的錯誤,為此authorware提供了調(diào)試手段和調(diào)試工具。
1)語法錯誤
指錯誤地拼寫函數(shù)、變量或設(shè)計圖標名,遺漏了必要的參數(shù)和符號,如缺少“)”、“end if”等。authorware可發(fā)現(xiàn)語法錯誤,并在關(guān)閉設(shè)計圖標或設(shè)計圖標屬性對話框時提出警告。
2)運行期錯誤
指在運行期間無法定位所需的外部函數(shù)文件,外部多媒體數(shù)據(jù)或外部庫文件,此時authorwae將提示出錯。
3)邏輯錯誤
指程序執(zhí)行流程中不能正確地反映設(shè)計者意圖的錯誤,如錯誤設(shè)置某個響應(yīng)的激活條件,造成該響應(yīng)永遠不可能匹配?;蛘咴谝粋€循環(huán)執(zhí)行的決策判斷分支結(jié)構(gòu)中錯誤設(shè)置退出分支結(jié)構(gòu)的條件,造成程序無法繼續(xù)執(zhí)行等。邏輯錯誤隱蔽性較大,可能存在于打包的程序中。
避免出現(xiàn)各種錯誤應(yīng)該從程序設(shè)計期間著手,在編寫程序時付出的少量努力可大幅度減輕后期的調(diào)試工作量。避免程序出現(xiàn)錯誤的有效的手段有以下幾種。
1)程序流程模塊化
使用“群組”設(shè)計圖標組合實現(xiàn)某一邏輯功能的多個設(shè)計圖標,然后賦予其一個能夠切實反映其功能的標題,可大大增加程序的可讀性。
2)分塊管理程序代碼
在同一個“運算”設(shè)計圖標中盡量避免使用過多的語句??赏ㄟ^建立多個“運算”設(shè)計圖標,并集中放置實現(xiàn)同一邏輯功能的語句,有利于定位代碼中出現(xiàn)的錯誤。
3)添加注釋信息
為“群組”設(shè)計圖標增加,或在一個功能模塊前面放置一個包含注釋信息的“運算”設(shè)計圖標,詳細地說明模塊中每個設(shè)計圖標的作用,模塊的功能等,這有助于調(diào)試和維護程序。在“運算”設(shè)計圖標中,最好為關(guān)鍵性語句分別加是注釋。
4)為設(shè)計圖標上色
當設(shè)計窗口和設(shè)計圖標數(shù)量均比較多時,為設(shè)計圖標上色將有利于開發(fā)人員區(qū)分不同的功能模塊。
5)嵌入變量
通過在“顯示”或“交互作用”設(shè)計圖標中嵌入變量,可跟蹤變量值。將程序中使用的關(guān)鍵性變量嵌入到文本對象中后將對應(yīng)的設(shè)計圖標設(shè)置為“顯示變量更新”方式,可使變量的當前值始終顯示在“演示”窗口中,便于跟蹤程序的執(zhí)行。調(diào)試結(jié)束后,從文本對象中刪除變量。
在多媒體交互作用程序的編制過程和程序設(shè)計完成后,都需要對程序的各模塊和整個程序進行調(diào)試。根據(jù)用戶的需求和編程人員的表現(xiàn)目的來對程序中的錯誤和不合理的地方進行修改調(diào)整。
程序的調(diào)試是一個交互作用應(yīng)用程序設(shè)計中的重要一環(huán)。在程序的調(diào)試過程中,調(diào)試人員要模擬用戶的各種狀態(tài),輸入不同的內(nèi)容和動作,來測試程序的健壯性和使用的靈活性、便利性。如果最終用戶對程序的使用方法非常模糊、甚至某些誤操作會導(dǎo)致整個軟件系統(tǒng)的崩潰,這些都標志著該應(yīng)用程序的失敗。
所以,我們在程序的編制過程中,要全面地測試各程序模塊實現(xiàn)的功能和與其他模塊之間的通信暢通與正確,還有對用戶誤操作的預(yù)防和處理。
在程序的編制過程中,編程人員需要隨時觀察程序的效果,在大多數(shù)傳統(tǒng)的編程語言中,編程人員要耗費大量的時間用到對源程序的編譯和連接上,最終目的僅僅是為了看一看一個小小的改動對程序的影響。這種將大量的時間耗費在重復(fù)的編譯連接上是非常無意義的。
多媒體的開發(fā)靠的是對圖形和動畫的精心組織、交互結(jié)構(gòu)的精心設(shè)計和多種媒體的結(jié)合使用。媒體和動畫都有很大的時效性,對于一個多媒體程序,開發(fā)的時間越短,其時效性就越好。如果將大量的時間耗費在程序的編制和調(diào)試上,多媒體產(chǎn)品開發(fā)周期不斷拉長,則對多媒體產(chǎn)品的損失就越大。
authorware為開發(fā)人員提供了豐富的調(diào)試工具和檢測工具。在傳統(tǒng)的編程工具中,如果開發(fā)人員希望對程序中間的某一部分修改來看看修改的結(jié)果,必須無數(shù)次執(zhí)行程序前一段的無意義內(nèi)容才能夠看到所修改的結(jié)果。而使用authorware編程,開發(fā)人員可以執(zhí)行程序流程線上任一部分的內(nèi)容,無須執(zhí)行前一段或后一段的內(nèi)容,單獨執(zhí)行修改過的內(nèi)容即可。
authorware實現(xiàn)的多媒體編程的完全可視化,開發(fā)人員可以在設(shè)計窗口的流程線上控制和觀察程序的流程,不同的設(shè)計按鈕來完成不同的功能,豐富的函數(shù)和變量為authorware程序設(shè)計提供了廣闊的舞臺。
在該部分內(nèi)容中讓我們學(xué)習(xí)authorware為開發(fā)人員提供的靈活的設(shè)計和調(diào)試程序的工具。主要有以下內(nèi)容。
1)“開始”和“停止”旗幟的使用:開始和停止旗幟可以放置到程序流程線上的任意位置,用來控制程序的執(zhí)行起始位置和停止位置。使用這兩個旗幟,開發(fā)人員可以執(zhí)行整個應(yīng)用程序的一部分。
2)authorware的跟蹤窗口:authorware的跟蹤窗口可以用來跟蹤哪些設(shè)計按鈕正在執(zhí)行和監(jiān)控變量設(shè)置的值等。在使用跟蹤窗口前,讀者必須首先熟悉如下內(nèi)容。
①單步特性。
②進入特性。
③重置特性。
④暫停和恢復(fù)特性。
⑤ 對跟蹤窗口中產(chǎn)生信息的含義進行學(xué)習(xí)。
一、兩種旗幟介紹
在設(shè)計按鈕調(diào)色板中有兩個可以在設(shè)計中使用的旗幟。
1)“開始”是一個白色的小旗,可以用于在流程線上建立一個執(zhí)行點。
如果在【調(diào)試】菜單中選擇【從標志旗處運行】命令或使用【ctrl+alt+r】快捷鍵來執(zhí)行程序時,則程序從“開始”旗幟所在處執(zhí)行,而不是從流程線上程序的起點開始執(zhí)行。在開始旗幟的輔助下,可以連續(xù)地執(zhí)行作品中的一小部分,而不必每次都從程序的開始執(zhí)行。這在程序的開發(fā)過程中對部分內(nèi)容的調(diào)試有很大幫助。如果每一次調(diào)試都從頭開始運行作品,則要花費大量的時間來運行到修改的點。
技巧:在一般情況下,我們在程序的開始要設(shè)置一些變量,這些變量要控制程序中的相關(guān)內(nèi)容。例如激活菜單或匹配響應(yīng)等。但是,如果程序是從“開始”旗幟所在處開始執(zhí)行的話,則程序就不能執(zhí)行變量的設(shè)置,這樣的話,就有可能對程序的控制失控。為了解決這個問題,讀者可以在“開始”旗幟后使用一個“運算”設(shè)計按鈕,將變量的值臨時設(shè)置在該“運算”設(shè)計按鈕內(nèi)。一旦程序的調(diào)試完畢,請將該“運算”設(shè)計按鈕刪除掉,以免程序出現(xiàn)混亂。
2)“停止”旗幟是一個黑色的小旗,用于在程序的設(shè)計流程線上停止作品的執(zhí)行。程序運行到“停止”旗幟所在位置停止運行
當執(zhí)行到程序的流程線上的“停止”旗幟后,則authorware停止應(yīng)用程序的執(zhí)行。這同“等待”設(shè)計按鈕的功能類似,不同之處是沒有活動的【繼續(xù)】按鈕?!暗却痹O(shè)計按鈕單擊【繼續(xù)】按鈕可以繼續(xù)執(zhí)行程序,而“停止”旗幟需要執(zhí)行authorware中【調(diào)試】菜單中的【播放】命令來繼續(xù)執(zhí)行應(yīng)用程序。
與“開始”旗幟類似,“停止”旗幟也可以用來控制執(zhí)行程序的一部分。在程序的開發(fā)設(shè)計過程中,我們可以使用該工具來保證我們在編輯某一設(shè)計按鈕之前不運行后面的設(shè)計按鈕或設(shè)計按鈕組。例如在程序中,有一個對象需要在“顯示”設(shè)計按鈕中顯示,同時要使用“移動”設(shè)計按鈕使該顯示對象在展示窗口上按照一定的方式移動。
在該程序中,為了在顯示設(shè)計按鈕中定位顯示對象的位置,而不希望執(zhí)行下面的移動設(shè)計按鈕,我們可以在移動設(shè)計按鈕前設(shè)置一個“停止”旗幟,當程序執(zhí)行到顯示設(shè)計按鈕后,停止程序的執(zhí)行,這時我們可以對展示窗口中的顯示對象進行調(diào)整和控制。對顯示對象調(diào)整好后,我們再去掉“停止”旗幟,重新運行程序來觀察運行的結(jié)果。
注意:“開始”旗幟和“停止”旗幟是authorware為程序設(shè)計時所提供的工具。無論讀者是否從流程線上去掉它們,當程序最終打包發(fā)行給用戶的時候,所有的旗幟將被忽略,而不必擔(dān)心是否去掉了小旗。
技巧:在一個應(yīng)用程序的設(shè)計過程中,只能分別有一個“開始”旗幟和一個“停止”旗幟出現(xiàn)在程序的設(shè)計窗口中。
“等待”設(shè)計按鈕和“停止”旗幟的功能非常相似,在程序的設(shè)計調(diào)試過程中,我更喜歡使用“等待”設(shè)計按鈕,因為“等待”設(shè)計按鈕可以有【繼續(xù)】命令按鈕,使程序的暫停比較明顯。
二、程序設(shè)計中旗幟的應(yīng)用
在流程線上設(shè)置和移動旗幟和其他設(shè)計按鈕相同,不同的是在設(shè)計按鈕調(diào)色板上,旗幟設(shè)計按鈕各只有一個,其他的設(shè)計按鈕有無數(shù)多個。如果我們在設(shè)計窗口中放置了“開始”旗幟和“停止”旗幟,則設(shè)計按鈕調(diào)色板中(紅色矩形框內(nèi))這兩種旗幟的位置會出現(xiàn)空缺,如圖7-1所示。

圖7-1 程序設(shè)計中旗幟的應(yīng)用
1)使用“開始”旗幟和“停止”旗幟的步驟如下。
① 用鼠標拖曳“開始”旗幟到程序流程線上需要程序開始執(zhí)行的位置。
② 拖曳一個“停止”旗幟到程序流程線上需要暫停的位置點上。
③ 如果希望程序從“開始”旗幟所在位置執(zhí)行,使用【調(diào)試】菜單中的【從標志旗處運行】命令(或用【ctrl+alt+r】快捷鍵),否則使用【調(diào)試】菜單中的【重新開始】命令(或用【ctrl+r】快捷鍵)來運行程序。
當一個應(yīng)用程序從“開始”旗幟所在處開始執(zhí)行程序后,authorware將清理展示窗口,并將所有的變量設(shè)初值,和作品從流程線上的起始點開始運行一樣。
技巧:在程序的設(shè)計和編輯過程中,我們并不需要同時使用兩種旗幟,我們可以單獨使用“停止”旗幟和“開始”旗幟。使用“開始”旗幟從特定的位置來開始執(zhí)行程序到末尾??梢允褂谩就V埂科鞄脧淖铋_始來執(zhí)行程序到停止位置。還可以同時使用兩種旗幟來設(shè)定執(zhí)行應(yīng)用程序的一部分。
④ 當authorware遇到“停止”旗幟停止執(zhí)行程序后,設(shè)計者可以回到流程線上進一步編輯流程線上的設(shè)計按鈕,也可以在展示窗口中編輯窗口中的顯示對象。在這兩種情況下,設(shè)計者都可以在編輯完成后,使用【調(diào)試】菜單的【播放】命令從程序停止處繼續(xù)執(zhí)行應(yīng)用程序。
2)取消流程線上的“開始”旗幟和“停止”旗幟的方法如下。
①從設(shè)計窗口中將流程線上的“開始”旗幟或“停止”旗幟拖曳到設(shè)計按鈕調(diào)色板上它們的位置上。
②用鼠標單擊設(shè)計按鈕調(diào)色板上旗幟位置的空缺處,旗幟會自動從設(shè)計窗口流程線上取消。
3)旗幟在流程線上位置改變的方法如下。
① 用鼠標拖動旗幟到需要的位置釋放即可。
② 如果旗幟在程序的流程線上的某個位置,用戶不能很快地找到,用戶可以先使用上述方法2)使旗幟回到調(diào)色板上,然后再拖動旗幟到流程線上合適的位置釋放。
4)使用“開始”旗幟和“停止”旗幟進行程序的調(diào)試,方法如下。
在程序的設(shè)計過程中,我們可以使用旗幟來調(diào)試程序,以便定位程序錯誤所在的位置。例如,我們在程序的運行過程中發(fā)現(xiàn)作品的運行進程和我們設(shè)計的不一樣,或者在展示窗口中的顯示內(nèi)容同我們的期待內(nèi)容不同。如果出現(xiàn)上述情況,我們可以使用旗幟來定位問題的所在處。
設(shè)計者可以首先使用“停止”旗幟,使程序定位在出現(xiàn)問題的位置,也就是,確定在“停止”旗幟位置前的程序部分引起的錯誤。然后使用“開始”旗幟來縮小錯誤的范圍,逐步進行,就可以將錯誤的范圍縮小到一個小的范圍,然后再使用跟蹤窗口來觀察這小范圍程序的執(zhí)行,從而定位錯誤的原因,然后解決問題。
5)在程序的運行過程中修改程序,方法如下。
當我們使用“等待”設(shè)計按鈕或“停止”旗幟使應(yīng)用程序暫停運行后,我們有可能需要對程序中的某些內(nèi)容進行修改。下面我們來介紹如何對不同的修改對象進行不同的操作,從而來修改程序中的對象。
① 修改顯示在展示窗口中的正文或圖片。
只需用鼠標雙擊需要修改的對象,此時,authorware的“圖形工具箱”便出現(xiàn)在展示窗口中,并且該對象所屬的設(shè)計按鈕的圖標也出現(xiàn)在“圖形工具箱”左邊的區(qū)域中。利用“圖形工具箱”中的工具按鈕編輯對象,完成后,使用【調(diào)試】菜單的【播放】命令繼續(xù)執(zhí)行應(yīng)用程序。
② 修改程序中的響應(yīng)類型。
只需用鼠標雙擊流程線上的響應(yīng)類型圖標,打開響應(yīng)分支屬性對話框,在該對話框中可以設(shè)置響應(yīng)的類型等多種選項和設(shè)置。然后單擊【確定】命令按鈕結(jié)束對該分支結(jié)構(gòu)的設(shè)置。使用【調(diào)試】菜單的【播放】命令繼續(xù)執(zhí)行應(yīng)用程序。
③ 修改“等待”設(shè)計按鈕屬性設(shè)置。
首先選擇【調(diào)試】菜單的【停止】命令,然后雙擊“等待”設(shè)計按鈕,打開“等待”設(shè)計按鈕屬性對話框。在該對話框中設(shè)置“等待”設(shè)計按鈕的相關(guān)屬性。
④ 修改“交互作用”設(shè)計按鈕中的熱區(qū)響應(yīng)。
首先選擇【調(diào)試】菜單的【停止】命令,然后雙擊要編輯的熱區(qū)對象,調(diào)整熱區(qū)的大小和在展示窗口中的位置,設(shè)置完畢后,選擇【調(diào)試】菜單中的【播放】命令繼續(xù)執(zhí)行。
技巧:如果當前內(nèi)容的是“交互作用”設(shè)計按鈕中的內(nèi)容,并且其中含有熱區(qū)或熱對象。要編輯這樣的對象,必須首先選擇【調(diào)試】菜單的【停止】命令,然后用鼠標雙擊要編輯的熱對象或熱區(qū)。編輯完畢后,選擇【調(diào)試】菜單中的【播放】命令繼續(xù)執(zhí)行。
以上內(nèi)容是使用“開始”旗幟和“停止”旗幟來調(diào)試和編輯程序的總體介紹,在今后實際的應(yīng)用中往往是用上述各種方法的結(jié)合來進行程序的設(shè)計和調(diào)試。
新聞熱點
疑難解答