Authorware5.0提供了Motion運(yùn)動(dòng)圖標(biāo),它可以提供五種運(yùn)動(dòng)功能,但要實(shí)現(xiàn)像時(shí)針這類的旋轉(zhuǎn)移動(dòng),Motion運(yùn)動(dòng)圖標(biāo)則無(wú)能為力,這就要借助Authorware的函數(shù)來(lái)實(shí)現(xiàn)這一類運(yùn)動(dòng),下面以制作時(shí)鐘為例,這個(gè)例子中我們要用到以下幾個(gè)函數(shù):
Line(Pensize, x1, y1, x2, y2):畫(huà)線函數(shù),其中Pensize是線的寬度,x1, y1線的起點(diǎn)坐標(biāo),x2, y2線的終點(diǎn)坐標(biāo)。
RGB(R, G, B):顏色函數(shù),R(紅色)、G(綠色)、B(藍(lán)色)取值范圍是0~255。
圖1 建立鐘表圖形
SetFill(Flag [,Color]):設(shè)置填充顏色,F(xiàn)lag為T(mén)rue填充,F(xiàn)lag為 False不填充,Color為RGB函數(shù)產(chǎn)生的顏色。
SetFrame(Flag [, Color]):設(shè)置邊框顏色,F(xiàn)lag為 True填充,F(xiàn)lag為False不填充,Color為RGB函數(shù)產(chǎn)生的顏色。
SetLine(Type):設(shè)置線條的形狀,Type 可以取0、1、2、3。取0沒(méi)有箭頭,取1起始端有箭頭,取2結(jié)束端有箭頭,取3兩端都有箭頭。制作過(guò)程如下:
1、 拖曳一個(gè)顯示圖標(biāo)到流程線上,命名為表盤(pán),打開(kāi)此圖標(biāo)在其中繪制圖1的圖形。
2、 拖曳一個(gè)顯示圖標(biāo)到流程線上,命名為系統(tǒng)時(shí)間,打開(kāi)此圖標(biāo)在其中用文本工具輸入{FullTime} ( FullTime是系統(tǒng)變量,記錄系統(tǒng)時(shí)間,格式為hh∶mm∶ss),將該圖標(biāo)屬性中Options中的Update Displayed Variables項(xiàng)選中。
3、 拖曳一個(gè)計(jì)算圖標(biāo)到流程線上,命名為設(shè)置參數(shù)。打開(kāi)該圖標(biāo)在里面輸入clockslice:=2*Pi/60 (設(shè)置時(shí)間片)radius:=(DisplayWidth@"表盤(pán)"/2)-10 (設(shè)置時(shí)鐘半徑,DisplayWidth@"表盤(pán)"取得的值是表盤(pán)圖標(biāo)的寬度)。
4、 拖曳一個(gè)決策判斷圖標(biāo)到流程線上,命名為循環(huán)。在其屬性框的Repeat框中選中Until True在其下的值框中輸入0。
5、 拖曳一個(gè)群組圖標(biāo)到循環(huán)圖標(biāo)右邊(如圖2),打開(kāi)群組圖標(biāo)在其中建立如圖3所示的各圖標(biāo)。
在繪制時(shí)針計(jì)算圖標(biāo)中輸入以下內(nèi)容:
SetFrame(1,RGB(0,0,255))
increment:=Hour*clockslice*5
angle:=Pi/2-increment
Line(3,DisplayX@"表盤(pán)"-p*COS(angle),DisplayY@"表盤(pán)"+p*SIN(Pi/2+increment),(radius-sh-h)*COS(angle)
+DisplayX@"表盤(pán)",DisplayY@"表盤(pán)"-(radius-sh-h)*SIN(angle))
注:Hour是系統(tǒng)變量,用來(lái)記錄當(dāng)前時(shí)間前面的時(shí)位是多少小時(shí)。
將1秒等待圖標(biāo)屬性中所有復(fù)選框全部不選中,將Time Limit后面的輸入框中輸入1秒。
在繪制分針計(jì)算圖標(biāo)中輸入以下內(nèi)容:
SetFrame(TRUE,RGB(0,255,200))
increment:=Minute*clockslice
angle:=Pi/2-increment
SetLine(0)
Line(3,DisplayX@"表盤(pán)"-p*COS(angle),DisplayY@"表盤(pán)"+p*SIN(angle),(radius-sh)*COS(angle)+
圖2 程序流程圖
DisplayX@"表盤(pán)",DisplayY@"表盤(pán)"-(radius-sh)*SIN(angle))
SetFill(TRUE,RGB(0,255,0))
Circle(2, DisplayX@"表盤(pán)"-2, DisplayY@"表盤(pán)"-2,DisplayX@"表盤(pán)"+2, DisplayY@"表盤(pán)"+2)
注:Minute是系統(tǒng)變量,用來(lái)記錄當(dāng)前時(shí)間中中間的分位是多少分。
在繪制秒針計(jì)算圖標(biāo)中輸入以下內(nèi)容:
SetFrame(1,RGB(255,0,0))
increment:=Sec*clockslice
angle:=Pi/2-increment
SetLine(2)
Line(1,DisplayX@"表盤(pán)"-p*COS(angle),DisplayY@"表盤(pán)"+p*SIN(angle), radius*COS(angle)+DisplayX@"表盤(pán)",
DisplayY@"表盤(pán)"-radius*SIN(angle))
SetFill(TRUE,RGB(0,255,0))
Circle(1, DisplayX@-2, DisplayY@"表盤(pán)"-2,DisplayX@"表盤(pán)"+2, DisplayY@"表盤(pán)"+2)
圖3 在群體圖標(biāo)中建立的圖標(biāo)
注:Sec是系統(tǒng)變量,用來(lái)記錄當(dāng)前時(shí)間中后面的秒位是多少秒。
6、 將文件保存,運(yùn)行試試看。