本節(jié)導(dǎo)讀:
一、變量的相關(guān)知識
變量通常是用來存儲程序執(zhí)行過程中涉及的數(shù)據(jù)。變量可以存儲的數(shù)據(jù)類型有:數(shù)值型、字符型、邏輯型,當(dāng)然也可以存儲以數(shù)組、列表等形式存在的數(shù)據(jù)。變量的加入,使authorware的交互編程更加靈活多變。
(一)變量的基本定義
(二)變量的分類
系統(tǒng)變量 自定義變量 邏輯變量
(三)變量的應(yīng)用場合
在文本框、計算圖標(biāo)代碼編輯器、顯示圖標(biāo)或交互圖標(biāo)中使用變量
二、函數(shù)的相關(guān)知識
函數(shù)通常指能夠?qū)崿F(xiàn)某種指定功能的程序語句段,并通過一個代號(函數(shù)名)來表示,當(dāng)程序設(shè)計過程中需要實現(xiàn)某一功能時,只需調(diào)用事先編寫好的具有實現(xiàn)該功能的函數(shù),而無須重新編寫,這無疑有利于程序的結(jié)構(gòu)化與模塊化。authorware 6.5開始支持用戶的自定義函數(shù)功能,是一個革命性的創(chuàng)新。
(一)函數(shù)的基本定義
(二)函數(shù)的分類
系統(tǒng)函數(shù) 外部擴(kuò)展函數(shù) authorware自定義函數(shù)
(三)函數(shù)的使用知識
使用authorware 6.5的內(nèi)部系統(tǒng)函數(shù)和用戶自定義函數(shù)不需要調(diào)入,直接在計算圖標(biāo)等函數(shù)使用場所內(nèi)直接按格式粘貼使用即可,而外部擴(kuò)展函數(shù)則需要導(dǎo)入,否則無法正常工作,本節(jié)將介紹常用的u32(ucd)和dll的函數(shù)導(dǎo)入方法步驟。
三、實例剖析
每年除夕夜人們總有“守歲”的習(xí)慣,借此總結(jié)自己一年來的得與失,迎接新的農(nóng)歷年的到來。讓我們把計算機(jī)的系統(tǒng)時間調(diào)整為2003年1月31日,利用authorware 6.5一起來設(shè)計制作這個電子"羊年倒計時"程序。文章末尾提供源文件下載。
一、變量的相關(guān)知識
(一)變量的基本定義
變量通常是用來存儲程序執(zhí)行過程中涉及的數(shù)據(jù)。變量可以存儲的數(shù)據(jù)類型有:數(shù)值型、字符型、邏輯型,當(dāng)然也可以存儲以數(shù)組、列表等形式存在的數(shù)據(jù)。變量的加入,使authorware的交互編程更加靈活多變。
(二)變量的分類
在authorware 6.5中,變量可以劃分為系統(tǒng)變量、自定義變量和邏輯變量三種類型。這三種變量的使用一般都必須遵循一定的約定,下面就給大家具體講解一下變量類型分類的相關(guān)知識。
1.系統(tǒng)變量
authorware 6.5內(nèi)部提供了一系列的系統(tǒng)變量,它們包括cmi(計算機(jī)管理教學(xué))、decision(決策)、file(文件)、framework(框架)、general(常規(guī))、graphics(圖形)、icons(圖標(biāo))、interaction(交互)、network(網(wǎng)絡(luò))、time(時間)、video(視頻)等共11大類,如圖1所示。這些系統(tǒng)變量不但能夠"各司其職",完成各自的功能任務(wù);更可以"有機(jī)結(jié)合",協(xié)同完成復(fù)雜的程序需求。
圖 1
對于某些特殊的系統(tǒng)變量,使用時后面要有一個"@"字符再加上一個圖標(biāo)標(biāo)題,例如"movable@"icontitle" :=false"的格式,這種語句稱為引用變量,此賦值語句表示在程序執(zhí)行過程不允許用戶對"icontitle"圖標(biāo)進(jìn)行任何的移動。
提示與技巧
time(時間)類系統(tǒng)變量中的"fulltime"是一個非常有用的系統(tǒng)變量,這個變量的不同之處在于它是一個時時變化的時間變量,且不斷地隨計算機(jī)系統(tǒng)時間的改變而改變,正是這種特殊的變化性質(zhì),在程序交互設(shè)計中顯得十分有用。authorware本身有一個毛病,那就是在某些情況下對函數(shù)或變量的值的變化根本不起響應(yīng)反應(yīng),例如某些場合下設(shè)計一個永久條件交互分支,設(shè)置返回類型為"return",響應(yīng)條件表達(dá)式為a=0,那么本來程序只要在a=0條件下均會響應(yīng)并執(zhí)行該永久分支的內(nèi)容,可恰恰authorware經(jīng)常在這個時候發(fā)病,并不自動去檢測a表達(dá)式值的變化,怎么辦?此時如果我們把響應(yīng)條件改為a+ fulltime=0+ fulltime,情況就大不一樣了,看上去fulltime似乎顯得多余,但正是這個不斷變化的系統(tǒng)變量強(qiáng)迫了authorware去檢查整個表達(dá)式的值而決定分支的執(zhí)行與否,實在妙哉!
2.自定義變量
自定義變量是用戶根據(jù)程序設(shè)計與執(zhí)行的需求而自己添加定義的變量。在authorware 6.5中可以通過調(diào)出變量分類窗口(執(zhí)行菜單【window】/【variables】或快捷鍵ctrl+shift+v)后選擇【new】按鈕進(jìn)行新建自定義變量操作,如圖2所示;亦可在任何的變量使用場合下直接定義變量,如計算圖標(biāo)代碼編輯器里,確定后系統(tǒng)會自動判斷該變量為何類型變量,如果為用戶自定義則提示新建之。變量名通常用英文字母+數(shù)字來表示,但是不可以出現(xiàn)和系統(tǒng)變量或已有自定義變量同名的情況,即要保證變量名表示的唯一性,否則會出現(xiàn)錯誤提示,如圖3所示。
圖 2
圖 3
提示與技巧
在對自定義變量進(jìn)行字符串賦值時,經(jīng)常會出現(xiàn)字符串超長而無法直接一次性給變量賦值的情況,此時可以把長字符串拆分為幾小段,然后通過連接符號"^"把它們連接起來進(jìn)行賦值,例如下列程序代碼最后longstring的值即為字符串"hello,i am rock! how are you?":
longstring:="hello,i am rock!"
longstring:=longstring^"how are you?"
3.邏輯變量
邏輯變量十分簡單,authorware系統(tǒng)使用的是正邏輯,即只有true(1)或false(0)兩種邏輯值代表真與假。邏輯變量經(jīng)常使用于某些判斷語句或函數(shù)返回值中。(三)變量的應(yīng)用場合
了解變量的類型后,我們繼續(xù)來研究變量的應(yīng)用場合。一般變量在authorware中的使用場合主要可以分為以下三種情況:
1.在屬性對話框的文本框中使用變量
在設(shè)置屬性對話框中,經(jīng)常會遇到條件等文本框,定義的變量即可在文本框內(nèi)使用,例如圖4所示的電影圖標(biāo)屬性對話框,其中的【play】域的條件文本框內(nèi)即可輸入包含變量的條件表達(dá)式。類似的應(yīng)用場合還包括條件響應(yīng)的條件表達(dá)式等等。
圖 4
2.在計算圖標(biāo)代碼編輯器中使用變量
最普遍的應(yīng)用場合莫過于在計算圖標(biāo)的代碼編輯器內(nèi)使用變量了,這也是變量得以靈活運用的核心表現(xiàn)場所。變量在其中發(fā)揮了其應(yīng)有的功能:存儲數(shù)據(jù)、限制條件等等,充當(dāng)了authorware程序設(shè)計的重要成員角色。
圖 5
3.在顯示圖標(biāo)或交互圖標(biāo)中使用變量
在顯示圖標(biāo)或者交互圖標(biāo)內(nèi)也可以進(jìn)行變量的顯示與計算,如圖6所示,變量在顯示圖標(biāo)或者交互圖標(biāo)內(nèi)"引用"都必須使用花括號{}括起來,否則系統(tǒng)會默認(rèn)為普通文本字符串而不作為變量使用對待。若顯示變量時,需根據(jù)變量值的變化時時更新顯示結(jié)果,則需要勾選顯示圖標(biāo)或交互圖標(biāo)屬性的"update displayed variables"。
圖 6二、函數(shù)的相關(guān)知識
(一)函數(shù)的基本定義
函數(shù)通常指能夠?qū)崿F(xiàn)某種指定功能的程序語句段,并通過一個代號(函數(shù)名)來表示,當(dāng)程序設(shè)計過程中需要實現(xiàn)某一功能時,只需調(diào)用事先編寫好的具有實現(xiàn)該功能的函數(shù),而無須重新編寫,這無疑有利于程序的結(jié)構(gòu)化與模塊化。大部分的函數(shù)都有自己的參數(shù),每一個參數(shù)都代表不同的意義,因此在調(diào)用函數(shù)時往往需要傳遞實際參數(shù),告訴函數(shù)實現(xiàn)哪一部分功能。authorware 6.5開始支持用戶的自定義函數(shù)功能,是一個革命性的創(chuàng)新。
(二)函數(shù)的分類
authorware的函數(shù)功能無論大小,歸納起來有三大類型的函數(shù):系統(tǒng)函數(shù)、外部擴(kuò)展函數(shù)、authorware自定義函數(shù),我們就一起來了解這方面的內(nèi)容吧!
1.系統(tǒng)函數(shù)
authorware的系統(tǒng)函數(shù)有300多個,按其函數(shù)功能可分為18類:character(字符)、file(文件)、cmi(計算機(jī)管理教學(xué))、framework(框架)、general(常規(guī))、graphics(圖形)、icons(圖標(biāo))、jump(跳轉(zhuǎn))、math(數(shù)學(xué))、ole(對象鏈接和嵌入)、platform(平臺)、time(時間)、video(視頻)、language(語句)、list(列表)、network(網(wǎng)絡(luò))、target(目標(biāo)對象)、xtras等。如圖7所示為
圖7
2.外部擴(kuò)展函數(shù)
外部擴(kuò)展函數(shù)一般指第三方擴(kuò)展開發(fā)商利用編程語言和開發(fā)工具如vc、bcb、delphi等開發(fā)的外部擴(kuò)展u32(ucd)、dll(動態(tài)鏈接庫)、xtras,封裝在它們內(nèi)部的函數(shù)可以供authorware調(diào)入使用。通常外部擴(kuò)展函數(shù)都是實現(xiàn)一些系統(tǒng)控制功能,彌補authorware在某些方面的不足。在authorware 6.5的安裝目錄下就可以找到macromedia公司開發(fā)的幾款外部擴(kuò)展u32(ucd)。
3.a(chǎn)uthorware自定義函數(shù)
這是authorware 6.5開始支持的一個全新的函數(shù)定義方式:它支持把某一計算圖標(biāo)內(nèi)的程序代碼或者是存儲于外部文本文件的程序代碼,甚至是一段字符串程序語句,authorware 6.5都支持把它們定義為函數(shù)形式,增強(qiáng)了程序代碼的結(jié)構(gòu)化和重復(fù)使用性。如圖7流程所示,其中計算圖標(biāo)"hello"的程序代碼為:
systemmessagebox(windowhandle, "hello,world!!", "information", 64)
把計算圖標(biāo)"hello"的程序代碼定義為函數(shù)形式,只要快捷鍵ctrl+i打開該計算圖標(biāo)的屬性對話框,勾選"contains script function"即可,其調(diào)用函數(shù)名自然就為"hello",調(diào)用函數(shù)時使用以下語句調(diào)用即可:callscripticon(@"hello")
至于外部文本文件或一段字符串的函數(shù)自定義方式和上述的是大同小異了,唯一不同的是調(diào)用時分別使用callscriptfile和callscriptstring系統(tǒng)函數(shù)進(jìn)行調(diào)用。(三)函數(shù)的使用知識
使用authorware 6.5的內(nèi)部系統(tǒng)函數(shù)和用戶自定義函數(shù)不需要調(diào)入,直接在計算圖標(biāo)等函數(shù)使用場所內(nèi)直接按格式粘貼使用即可,而外部擴(kuò)展函數(shù)則需要導(dǎo)入,否則無法正常工作,如何導(dǎo)入外部擴(kuò)展函數(shù)?
下面我們介紹常用的u32(ucd)和dll的函數(shù)導(dǎo)入方法步驟。
1.執(zhí)行菜單【window】/【functions】或快捷鍵ctrl+shift+f打開函數(shù)列表窗口,在【category】函數(shù)分類列表下選擇欲導(dǎo)入函數(shù)的a6p或a6l文件,此時按鈕"load…"變?yōu)榭捎脿顟B(tài)。
2.單擊按鈕"load…"后選擇欲導(dǎo)入的函數(shù)庫,即u32(ucd)或者dll文件。
3.假如是導(dǎo)入u32(ucd)內(nèi)封裝的函數(shù),則會出現(xiàn)如圖8所示的界面,此時選擇好欲導(dǎo)入的函數(shù)后單擊按鈕"load"導(dǎo)入即可。如果要在函數(shù)列表中同時導(dǎo)入多個函數(shù),可以按住"ctrl"同時用鼠標(biāo)進(jìn)行點選。假如是導(dǎo)入dll內(nèi)封裝的函數(shù),則會出現(xiàn)如圖9所示的界面,輸入相關(guān)的函數(shù)名和參數(shù)類型后單擊按鈕"load"即可,成功導(dǎo)入后在窗口的左下角有一提示信息。如此重復(fù)導(dǎo)入其它的dll函數(shù),導(dǎo)入完畢后單擊按鈕"done"結(jié)束dll函數(shù)導(dǎo)入工作。
圖 8
圖 9
好,終于把authorware 6.5的變量和函數(shù)的相關(guān)知識介紹完畢,為了加深大家的印象,我們親自動手來制作一個"羊年倒計時"吧!
三、函數(shù)變量使用范例
(一)范例設(shè)計說明
每年除夕夜人們總有一個"倒計"的習(xí)慣,借此總結(jié)自己一年來的得與失,迎接新的農(nóng)歷年的到來。讓我們把計算機(jī)的系統(tǒng)時間調(diào)整為2003年1月31日,利用authorware 6.5一起來設(shè)計制作這個電子"羊年倒計時"程序。程序執(zhí)行預(yù)覽如圖10所示。
圖 10
(二)范例流程設(shè)計
"羊年倒計時"的完整程序流程如圖11所示,下面我們來剖析一下制作過程。
圖 11
1.程序初始化與背景設(shè)計
首先我們需要確定的是農(nóng)歷癸未年(羊)大年初一是2003年2月1日,因此我們在計算圖標(biāo)"spring festival"內(nèi)首先設(shè)定此時間,輸入代碼:spring:=datetonum(1,2,2003)
其中datetonum系統(tǒng)函數(shù)是把時間轉(zhuǎn)換為數(shù)字表示形式,方便后面程序流程的時間比較。接著當(dāng)然是設(shè)計導(dǎo)入一背景:顯示圖標(biāo)"showtime",如何設(shè)計看讀者自己喜好。
2.時間的計算判斷交互設(shè)計
如圖11所示我們需要設(shè)計兩個條件交互分支,分別響應(yīng)"到達(dá)羊年"與"未到達(dá)羊年"兩個時間判斷事件。
其中"未到達(dá)羊年"分支的響應(yīng)條件設(shè)置為:year<2003|(year=2003&month<2)
即當(dāng)時間未到2003年2月1日時響應(yīng),其響應(yīng)分支二級流程的計算圖標(biāo)"settext1"代碼如下:
chnyear:="農(nóng)歷壬午年【馬】" --//當(dāng)前的農(nóng)歷年提示
showtip:="距農(nóng)歷癸未年【羊】還有:"
nowday:=datetonum(day, month, year) --//轉(zhuǎn)換當(dāng)前時間為數(shù)字表示形式
stepday:=spring-nowday --//計算距離羊年的時間間隔(數(shù)字形式)
這里的"chnyear"、"showtip"、"nowday"、"stepday"均為自定義變量,在程序執(zhí)行倒計過程中存儲一些時間的相關(guān)提示信息。
而二級流程中的顯示圖標(biāo)"horse"顯示的就是最后的時間倒計信息,如圖12所示,其中用文本工具寫入的是距離農(nóng)歷羊年的剩余時間計算表達(dá)式,即倒計時間:
{stepday-1}天{23-hour}小時{59-minute}分鐘{60-sec}秒
為了保證這個倒計時間時時更新,當(dāng)然你需要把顯示圖標(biāo)"horse"的"update displayed variables"勾選上。
圖 12
繼續(xù)"到達(dá)羊年"的交互分支,其響應(yīng)條件設(shè)置為:year>2003|(year=2003&month>=2)
即當(dāng)時間到達(dá)2003年2月1日零點時響應(yīng),其響應(yīng)分支二級流程的計算圖標(biāo)"settext2"代碼如下:
eraseicon(iconid@"horse") --//擦除舊歷馬年圖標(biāo)
displayicon(iconid@"showtime") --//更新背景時間顯示
chnyear:="農(nóng)歷癸未年【羊】" --//當(dāng)前的農(nóng)歷年提示
showtip:=""
農(nóng)歷羊年到啦,顯示圖標(biāo)"sheep"設(shè)計導(dǎo)入的就是一副新年喜慶圖。
3.全部流程設(shè)計完畢,存盤后按"f12"一鍵發(fā)布,此時就可以執(zhí)行測試一下咯,如圖13所示是"倒計"結(jié)束,到達(dá)羊年時的顯示界面。
圖13
源文件下載
新聞熱點
疑難解答