亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 媒體動畫 > 正文

Authorware基礎教程:authorware7程序設計基本的教學文章--動態構造程序代碼(2)

2024-09-08 19:26:43
字體:
來源:轉載
供稿:網友
編程實例:制作一個時鐘

在本節中,將應用aws語言,制作一個顯示當前時間的時鐘。在開始前,先把制作過程中將要用到的系統函數和系統變量進行一下簡單的介紹。

1.系統函數

(1)rgb(r,g,b):該函數為其他繪圖函數設置繪圖時使用的顏色。每一種顏色都是由紅、綠、藍(r,g,b)三原色混合而成,顏色分量r,g,b的取值范圍為0~255。函數rgb(255,0,0)將繪圖色設置為紅色。

(2)setframe(flag, color):設置在繪制線段或邊框時使用的顏色。參數flag為true時,繪制出的圖形帶有邊框,否則沒有邊框。如果想要以指定顏色繪制線段,則flag必須設置為true。

(3)setline(type):設置線段樣式,樣式由參數type指定:0表示無箭頭,1表示線段起點處有箭頭,2表示線段終點處有箭頭,3表示線段兩端都有箭頭。

(4)line(pensize, x1, y1, x2, y2):使用由參數pensize指定的線寬在【演示】窗口中從坐標(x1,y1)到坐標(x2,y2)繪制一條線段。線寬以像素為單位。

(5)sin(x):計算出x的正弦值。

(6)cos(x):計算出x的余弦值。

(7)min(list):計算出list列表中的最小數值。

(8)goto(iconid@"icontitle"):使程序跳轉到指定設計圖標處繼續執行。

2.系統變量

(1)displayx:包含當前設計圖標中顯示對象的中心距離【演示】窗口左邊界的像素數,即中心點的橫坐標。使用displayx@"icontitle"返回指定設計圖標中顯示對象的中心點的橫坐標。

(2)displayy:包含當前設計圖標中顯示對象的中心距離【演示】窗口上邊界的像素數,即中心點的縱坐標。使用displayy@"icontitle"返回指定設計圖標中顯示對象的中心點的縱坐標。

(3)fulltime:包含當前的系統時間,以時、分、秒格式表示,例如1:30:55。

(4)sec:包含當前系統時間中的秒數,取值范圍為0~59。

(5)minute:包含當前系統時間中的分鐘數,取值范圍為0~59。

(6)hour:包含當前系統時間中的小時數,取值范圍為0~23。

有了上述準備知識之后,就可以開展設計工作了。首先進入authorware,建立一個新的程序文件,將【演示】窗口的大小調整到適當的尺寸,然后按照以下步驟進行操作。

與本例對應的范例程序是chapter03文件夾下的clock.a7p。

 

1.制作表盤

向【設計】窗口中的流程線上拖放一個顯示設計圖標,將其命名為“表盤”,如圖3-54所示,然后在“表盤”設計圖標中繪制一個圓形對象。在本例中,這個圓形對象將作為表盤使用。

2.制作刻度

向流程線上“表盤”設計圖標之后的位置拖放一個【顯示】設計圖標,將其命名為“刻度”,然后在“刻度”設計圖標中創建一系列代表時間刻度值的文本對象:從1到12。為了將時間刻度同上一步驟中創建的表盤對齊,可以在按下shift鍵的同時依次雙擊“表盤”設計圖標和“刻度”設計圖標,此時兩個設計圖標中的所有顯示對象都出現在【演示】窗口中,如圖3-55所示。把所有文本對象擺放妥當之后,將它們組合成為一個顯示對象,這樣就使文本對象之間的相對位置不再發生變化。

 

圖3-54  繪制表盤

圖3-55  繪制刻度

3.初始化變量

使用變量面板創建5個自定義變量: r_sec,r_min,r_hou,timeslice和span。變量r_sec、r_min和r_hou分別用于設置秒針、分針和時針的長度,由于表針走動的過程其實是以表針長度為半徑畫圓的過程,因此這三個變量的名稱以半徑的縮寫“r”開頭,其值可以看成是畫圓時采用的半徑。變量timeslice表示每經過1秒鐘秒針轉動的角度,以弧度為單位。變量span表示表針與水平方向的夾角,以弧度為單位。

向流程線上“刻度”設計圖標之后的位置拖放一個【運算】設計圖標,將其命名為“變量初始化”,在這個設計圖標中,將對本程序使用的自定義變量進行初始化操作。向“變量初始化”設計圖標中輸入如圖3-56所示的程序語句,其中:

timeslice:=2*pi/60

表示秒針轉動一次的弧度是2*pi/60,這是因為秒針轉動一周(經過2*pi弧度)需要擺動60次。表達式displaywidth@"表盤"和displayheight@"表盤"分別計算出表盤的高度和寬度,程序語句:

r_sec:=min(displaywidth@"表盤", displayheight@"表盤")/2

將秒針的長度設置為與表盤較短軸的半徑相等(因為很可能繪制出的圓形是一個橢圓)。

圖3-56  初始化變量

4.繪制秒針

在這一步驟中將使用畫線函數繪制一個紅色的秒針,而且秒針的方向應該與當前的時間相吻合。

向流程線上“變量初始化”設計圖標之后的位置拖放一個【運算】設計圖標,將其命名為“繪制秒針”,如圖3-57所示。雙擊打開該設計圖標,在【運算】窗口中輸入以下程序語句:

圖3-57  繪制秒針

setframe( 1, rgb(255,0,0) )                  --設置線段為紅色

setline(0)                                         --設置線段為無箭頭樣式

span:=(sec-15) * timeslice                --計算秒針與水平方向的夾角。

line(1, displayx@"表盤", displayy@"表盤", r_sec * cos(span) +﹁

displayx@"表盤", r_sec * sin(span) + displayy@"表盤")

在上述代碼中,程序語句

setframe(1, rgb(255, 0, 0 ) )

setline(0)

后第3行程序語句計算當前秒針的方向,由于秒針從0位置起要經過15秒鐘才能到達水平方向,因此必須從當前秒數中減去15再同變量timeslice相乘,算出秒針與水平方向的夾角。在繪制秒針之前,必須計算出線段的起點坐標和終點坐標,線段的起點坐標很明顯就是表盤的中心,即(displayx@"表盤", displayy@"表盤"),而終點坐標可以根據秒針的長度和方向計算出來,即(r_sec * cos(span) + displayx@"表盤", r_sec * sin(span) + displayy@"表盤")。最后,使用畫線函數繪制一條1像素寬的線段。

在工具欄中單擊【運行】按鈕,此時程序運行結果如圖3-58所示??梢詫φ债斍跋到y時間看一看秒針指示的時間是否正確。

由圖中可以看出,秒針的指向、顏色都符合要求,但是長度有些過長,幾乎超出了表盤的范圍。雙擊打開流程線上的“變量初始化”設計圖標,對秒針的長度進行修改,同時對分針和時針的長度進行設置,如圖3-59所示。分別將秒針的長度設置為比表盤的短軸半徑短10個像素,分針的長度比秒針的長度短10個像素,且時針的長度比分針的長度短10個像素。表針的長度可以根據表盤的大小進行調整,只要能夠明顯區分出秒針、分針、時針即可。


圖3-59  設置表針的長度

5.繪制分針

向流程線上“繪制秒針”設計圖標之后的位置拖放一個[運算]設計圖標,將其命名為“繪制分針”,如圖3-60所示。雙擊打開該設計圖標,在【運算】窗口中輸入以下程序語句:

setframe(1, rgb(0,0,255 ) )

setline(2)

span:=(minute-15) * timeslice

line(2, displayx@"表盤", displayy@"表盤", r_min * cos(span) + ﹁

   displayx@"表盤", r_min * sin(span) + displayy@"表盤")

這些程序語句將分針設置為藍色、末端帶箭頭的樣式,寬度為2個像素,并指向與系統變量minute對應的時鐘刻度。

圖3-60  繪制分針

6.繪制時針

向流程線上“繪制分針”設計圖標之后的位置拖放一個【運算】設計圖標,將其命名為“繪制時針”,如圖3-61所示。雙擊打開該設計圖標,在【運算】窗口中輸入以下程序語句:

span:=((hour + (minute / 60)) * 5 - 15) * timeslice

line(2, displayx@"表盤", displayy@"表盤", r_hou * cos(span) + ﹁

 displayx@"表盤", r_hou * sin(span) + displayy@"表盤")

因為時針轉動一周表示經過12個小時,而分針轉動一周表示經過60分鐘,因此在計算時針的指向時應將當前的小時數乘以系數5。這里沒有使用函數對線段的顏色和樣式進行重新設置,因此時針仍然保持藍色,末端帶箭頭的樣式。

圖3-61  繪制時針

在流程線最前面的位置增加一個名為“time”的【顯示】設計圖標,并在其中創建一個文本對象,如圖3-62所示,在文本對象中嵌入系統變量fulltime,這樣在程序運行時,演示窗口中將以數字格式顯示出當前的系統時間。

圖3-62  顯示當前系統時間

 

chapter03文件夾內提供了一種數字液晶字體digifacewide.ttf。讀者可以在系統中安裝這種字體,增強時間的顯示效果。

運行程序,此時【演示】窗口中顯示出當前的系統時間,并且時鐘也指示出正確的時間,如圖3-63所示,但是這些內容并沒有隨著時間的流逝而發生改變——它們靜止在那里,僅顯示出剛才單擊運行【按鈕】那一刻的時間。

圖3-63  程序運行結果

要使時鐘真正運轉起來,不能僅僅繪制程序開始運行的時間,而是必須為每一秒鐘進行同樣的繪制工作,因此,需要在程序中設置一個循環繪制表針的過程。

7.建立循環

循環繪制表針的過程應該是這樣的:

(1)根據當前的時間繪制表針。

(2)將繪制的內容保持1秒鐘。

(3)擦除第1步中繪制的表針,再跳轉到第1步繼續執行。

根據以上的分析,首先在“繪制時針”設計圖標之后插入一個【等待】設計圖標,將其命名為“1 sec”。打開該設計圖標,進行如圖3-64所示的設置:關閉【key press】和【show button】復選框,同時設置程序暫停時間為1秒。

然后在“1 sec”設計圖標之后插入一個【運算】設計圖標,并將其命名為“擦除表針”,如圖3-65所示,打開該設計圖標,向其中輸入以下程序語句:

圖3-64  設置時間間隔

圖3-65  擦除表針

eraseicon(@"繪制秒針")      --擦除由“繪制秒針”設計圖標繪制的線段

eraseicon(@"繪制分針")      --擦除由“繪制分針”設計圖標繪制的線段

eraseicon(@"繪制時針")      --擦除由“繪制時針”設計圖標繪制的線段

這樣就可以將已經顯示在演示窗口中的時針、分針和秒針擦除。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区在线播放免费观看| 热久久美女精品天天吊色| 精品视频9999| 91久久综合亚洲鲁鲁五月天| 91在线网站视频| 久久69精品久久久久久国产越南| 91欧美精品午夜性色福利在线| 亚洲激情电影中文字幕| 美女少妇精品视频| 午夜精品福利在线观看| 91精品视频在线播放| 91免费人成网站在线观看18| 亚洲欧美中文日韩v在线观看| 欧美性视频网站| 欧美激情精品久久久久久变态| 久久久精品电影| 国产999精品久久久影片官网| 欧美激情中文网| 久久精品成人欧美大片古装| 亚洲最大av在线| 日韩av片免费在线观看| 丝袜美腿精品国产二区| 亚洲电影成人av99爱色| 国产极品精品在线观看| 免费不卡欧美自拍视频| 欧美成人午夜激情在线| 国模私拍视频一区| 久久精品2019中文字幕| 亚洲第一网中文字幕| 亚洲欧美中文日韩在线v日本| 国产成人精品免高潮费视频| 国产一区二区黑人欧美xxxx| 欧美裸体xxxx极品少妇| 97香蕉超级碰碰久久免费的优势| 精品国产户外野外| 97激碰免费视频| 亚洲免费伊人电影在线观看av| 日韩激情视频在线| 亚洲精品国产精品国自产在线| 日韩av在线高清| 欧美性xxxxxxxxx| 91午夜理伦私人影院| 国产女精品视频网站免费| 亚洲国产精品va在线看黑人动漫| 日韩成人网免费视频| 欧美精品日韩三级| 国产精品白嫩美女在线观看| 国产精品扒开腿做爽爽爽的视频| 亚洲欧美国产va在线影院| 国产精品v日韩精品| 久久久久久久999精品视频| 日韩欧美一区二区三区久久| 亚洲iv一区二区三区| 国产一区二区在线免费| www.欧美免费| 国产中文字幕日韩| 久久久久女教师免费一区| 亚洲人成电影在线观看天堂色| 亚洲天堂网在线观看| 亚洲欧洲xxxx| 亚洲欧美色婷婷| 国产精品无码专区在线观看| 人人做人人澡人人爽欧美| 日韩精品免费在线视频观看| 日韩av高清不卡| 最新亚洲国产精品| 欧美性猛交xxxx久久久| 国产成人在线播放| 日韩成人av网| 91在线网站视频| 中文字幕亚洲欧美日韩在线不卡| 青青青国产精品一区二区| 久久视频国产精品免费视频在线| 欧美精品video| 欧美日韩国产一区在线| 精品香蕉一区二区三区| 国产欧美va欧美va香蕉在| 成人午夜黄色影院| 国产a∨精品一区二区三区不卡| 伊人伊人伊人久久| 国产成人97精品免费看片| 成人疯狂猛交xxx| 欧美大肥婆大肥bbbbb| 亚洲国产精品人久久电影| 欧美最猛性xxxxx亚洲精品| 亚洲国产精品成人va在线观看| 欧美麻豆久久久久久中文| 国产欧美亚洲视频| 亚洲尤物视频网| 精品久久久在线观看| 国自在线精品视频| 国产精品第3页| 日韩美女在线观看| 亚洲xxx自由成熟| 亚洲福利影片在线| 91国产一区在线| 91av在线网站| 黑人巨大精品欧美一区二区三区| 亚洲综合av影视| 在线成人激情视频| 国产一级揄自揄精品视频| 欧美日韩不卡合集视频| 亚洲久久久久久久久久| 欧美人与性动交a欧美精品| 亚洲精品免费在线视频| 国产精品吹潮在线观看| 亚洲精品视频久久| 国产日韩欧美91| 欧美性在线观看| 日韩中文字幕网站| 欧美日韩成人在线播放| 欧美激情国产日韩精品一区18| 欧美一区二区三区精品电影| 欧美日韩国产页| 国产精品日韩电影| 日韩国产中文字幕| 午夜精品久久久久久久久久久久| 性欧美xxxx交| 欧美日本在线视频中文字字幕| 国产日韩欧美在线看| 日韩乱码在线视频| 日韩中文字幕免费看| 亚洲国产精品悠悠久久琪琪| 国产亚洲欧美aaaa| xxxxx91麻豆| 国产午夜精品免费一区二区三区| 欧美午夜性色大片在线观看| 久久久久久久久国产精品| 亚洲美女精品成人在线视频| 久久精品国产91精品亚洲| 国产精品日韩欧美综合| 成人免费视频在线观看超级碰| 欧美激情伊人电影| 欧美大片在线免费观看| 成人av番号网| 久久久久国色av免费观看性色| 久久综合久久88| 国产激情综合五月久久| 亚洲精品电影在线观看| 久久久久久久久中文字幕| 欧美日韩在线观看视频| 欧美日韩在线一区| 69影院欧美专区视频| 欧美日韩精品在线| 国产精品一区久久久| 欧美疯狂xxxx大交乱88av| 成人福利免费观看| 国产精品一区av| 美日韩丰满少妇在线观看| 亚洲欧美国产精品| 国语自产精品视频在线看抢先版图片| 大伊人狠狠躁夜夜躁av一区| 91精品久久久久久久久中文字幕| 91精品国产成人| 国产日产久久高清欧美一区| 亚洲精品免费一区二区三区| 国模吧一区二区三区| 日韩免费在线免费观看| 久色乳综合思思在线视频| 久久久成人精品视频| 欧美性69xxxx肥| 国产又爽又黄的激情精品视频| 亚洲伊人久久综合| 日韩av理论片|