"春有百花夏有雨,秋有涼風冬有雪",四季更替謂之"年",在這"年"的概念里隱藏著一個"四年一閏"的說法,也就是所謂的"閏年"。現在世界通行的公歷,平年365天,閏年366天,每四年一閏,每滿百年少閏一次,到第四百年再閏,即每四百年中有97個閏年。閏年的判斷算法雖然簡單,卻是計算機編程里的一個經典問題,常被程序員編制為通用函數進行各種場合的調用,今天我們就把它引入到authorware 6.5里,定制一個authorware的閏年判斷函數!
authorware 6.5是目前的最新版本,在這個6.5新版本中最引人注目的就是開始支持自定義函數功能,它允許把內部計算圖標代碼或者存儲在外部文本文件的腳本,甚至是字符串自定義為函數--盼望已久的自定義函數功能終于浮現在廣大authorware愛好者面前!雖然相對于高級語言開發平臺來說,authorware 6.5的自定義函數功能顯得相對"幼稚",但是它的出現無疑使authorware的腳本語句變得更加靈活強大,易于管理!我們馬上來嘗嘗鮮,編寫一個閏年判斷函數for authorware版本。
計算圖標定義方式
根據內部計算圖標代碼定義函數是最基本方法,啟動authorware 6.5,開始創建一個具有非凡意義的自定義函數--閏年判斷函數leapyear。
1、 新建工程,命名自定義函數
新建一個"leapyearfunction.a6p"文件;拖動一個計算圖標到流程線上,并命名為"leapyear",這個名字將成為即將誕生的自定義函數的名稱。函數命名需要注意唯一性,不能和其它圖標或者函數同名,否則將不能正常調用執行。
2、 編寫閏年判斷函數leapyear
目前公認的閏年判斷算法,滿足下列二者之一,即為閏年:
① 能被4整除,但不能被100整除
② 能被4整除,且能被400整除
根據這個算法,我們就可以在程序中實現閏年的邏輯判斷。打開計算圖標"leapyear",在里面寫入以下代碼:
if mod(args@"leapyear",400)=0|(mod(args@"leapyear",4)=0 & mod(args@"leapyear",100)<>0) then
result@"leapyear":=true
else
result@"leapyear":=false
end if
打開計算圖標"leapyear"的屬性對話框(ctrl+i),把contains script function選項勾上(如圖1),這意味著告訴系統把"leapyear"封裝為自定義函數。確定后返回流程,發現計算圖標"leapyear"的圖標變化了(如圖2),這樣自定義函數"leapyear"就宣告誕生!
圖1設置"leapyear"的屬性對話框
圖2 函數"leapyear"的圖標變化
圖3 自定義函數"leapyear"
3、 調用自定義函數leapyear
函數編寫封裝的目的就是為主程序服務,我們立馬派遣"leapyear"上崗。authorware 6.5中是通過系統函數callscripticon來調用內部計算圖標腳本方式定義的函數的。我們編寫的閏年判斷函數leapyear為一返回型函數,返回值為true(1)或者false(0),true表示為閏年,false則相反。
我們繼續在計算圖標"leapyear"后添加一交互圖標"showyear",拖動一計算圖標到其右邊,選擇為文本輸入響應交互,并命名為"*"(即接受任何文本輸入);打開該計算圖標并輸入以下代碼:
if callscripticon(@"leapyear",entrytext)=true then
ifleapyear:="是"
else
ifleapyear:="否"
end if
最后我們設置一下顯示界面,雙擊打開交互圖標"showyear",用文本工具輸入{ ifleapyear },并勾選"update displayed variables"顯示屬性,存盤后即完成函數的調用工作。
[1] [2] 下一頁
新聞熱點
疑難解答