麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

Authorware基礎教程:authorware7程序設計基本的教學文章--代碼運用

2024-09-08 19:26:44
字體:
來源:轉載
供稿:網友

3.2  代碼應用

在authorware中,表達式和程序語句一般應用于以下3類場合:

(1)用于【運算】設計圖標和附屬【運算】設計圖標中。

(2)嵌入到文本對象中。將表達式用花括號({})括起來后嵌入到文本對象中,當該文本對象被顯示在【演示】窗口中時,花括號連同其中的內容就會被轉換為相應的計算結果顯示出來。

(3)用于各種屬性檢查器中。可以使用表達式靈活地控制各種對象的屬性,例如設置激活條件或定位坐標。

3.2.1  嵌入文本對象

如果需要在【演示】窗口中顯示出變量的值或者函數和表達式的計算結果,就必須將它們嵌入到文本對象中。

嵌入到文本對象中的表達式必須包圍在花括號({})之中,當authorware顯示該文本對象時,將對花括號中的表達式進行運算,并且顯示運算結果,圖3-24描述的是同一個文本對象處在兩種不同狀態時顯示出的內容。如果不使用花括號,authorware將顯示出變量名、函數名或表達式本身,而不對它們進行運算,這一點很容易從圖3-24(b)中觀察到。

對于嵌入到文本對象中的數值型表達式,authorware允許設置其運算結果的顯示精度。選中文本對象之后,執行text>number format菜單命令,可以調出【number format】(【數字格式】)對話框,如圖3-25所示。在這里設計人員可以設置所需的數字格式:是否顯示小數部分,是否顯示千位分隔符,以及小數點后保留幾位有效數字等。在這里進行的設置僅影響數值型表達式運算結果的顯示精度,在實際運算時,authorware總是使用最大的精度。

在【number format】對話框中,將小數點后保留的有效數位設置為6位時,上述文本對象的顯示結果如圖3-26所示。

 

(a)編輯狀態                                   (b)非編輯狀態

圖3-24  向文本對象中嵌入表達式示意圖

                                            

                           圖3-25  【數字格式】對話框窗口

向文本對象中嵌入變量或函數最常用的方式是使用【變量】面板窗口或【函數】面板窗口。首先進入文本對象編輯狀態,將插入點光標定位在需要插入變量或函數的位置,然后在【變量】面板窗口或【函數】面板窗口中雙擊所需的變量或函數,對應的變量或函數就被粘貼在文本對象中插入點光標所在的位置,并且自動被包圍在花括號之中,如圖3-27所示。

如果在向【顯示】設計圖標或【交互作用】設計圖標中粘貼變量或函數時,沒有進入文本對象編輯狀態,則authorware為被粘貼的變量或函數創建一個新的文本對象。

也可以不通過【變量】面板窗口或【函數】面板窗口而采用直接輸入的方法,在文本對象中嵌入變量、函數和表達式,此時必須手工輸入花括號,注意花括號不能嵌套使用。

圖3-26  調整數值顯示精度

    

圖3-27  向文本對象中粘貼變量

在默認情況下,程序只在運行到某個設計圖標時,才對該設計圖標中包含的文本對象進行計算和顯示。如果文本對象中內嵌的變量的值或表達式的計算結果在后來發生變化,那么除非程序再次執行該設計圖標,否則【演示】窗口中依然顯示先前的內容。通過打開設計圖標屬性檢查器中的【update displayed variables】復選框,可以使程序在運行期間自動根據嵌入到文本對象中的變量的當前值,更新文本對象的顯示結果。這里有一個最典型的例子:通過在文本對象中嵌入反映系統當前時間的系統變量fulltime,并設置對應設計圖標的【update displayed variables】屬性,可以實現在【演示】窗口中實時顯示當前時間的功能,如圖3-28所示。

圖3-28  自動更新文本對象的顯示

上述文本對象存在于chapter03文件夾內的范例程序textobject.a7p中。

3.2.2  控制對象屬性

在各種屬性檢查器中,許多屬性可以通過變量、函數或表達式進行設置,利用這一特性,在程序運行過程中可以使用表達式對各種對象(設計圖標、顯示對象等)的屬性進行靈活設置。如圖3-29所示,“graphic”設計圖標之中包含有一個具有不規則形狀的幾何圖形(由一個圓形對象和一個多邊形對象組成),在【顯示】設計圖標屬性檢查器中,按照以下方式將設計圖標初始定位坐標設置為:

random(displaywidth/2,windowwidth-1-displaywidth/2,1)       --initial x

random(displayheight/2,windowheight-1-displayheight/2,1)     --initial y

其中windowwidth、windowheight分別是【演示】窗口當前的寬度與高度。displaywidth、displayheight分別是設計圖標占據的顯示區域的寬度和高度。因此表達式displaywidth/2和displayheight/2分別計算出能夠保證幾何圖形得以完全顯示的最小橫坐標與縱坐標,表達式windowwidth-1-displaywidth/2和windowheight-1-displayheight/2分別計算出能夠保證幾何圖形得以完全顯示的最大橫坐標與縱坐標。再通過函數random()在上述坐標范圍內產生一個隨機坐標之后,程序每次執行到該設計圖標時,幾何圖形所處的位置均不相同,同時無論【演示】窗口的大小如何改變,幾何圖形總是顯示在【演示】窗口的內部(絕不會超出【演示】窗口的范圍)。

chapter03文件夾下的范例程序random.a7p演示了如何實現這一過程。

 

圖3-29  隨機定位顯示對象

另一個比較典型的例子是使用變量控制【等待】設計圖標暫停的時間,如圖3-30所示,在【等待】設計圖標屬性檢查器中的【timelimit】文本框中輸入變量icontitle,以后就可以在設計窗口中直接修改【等待】設計圖標的暫停時間——不必反復打開設計圖標屬性檢查器,只需修改設計圖標的名稱即可,這一措施可以大大提高設計效率。圖3-30中所示的【等待】設計圖標其暫停時間已經被設置為2秒,如果在【timelimit】文本框中使用自定義變量,在程序運行期間就可以根據具體情況,對變量賦予不同的數值,靈活控制程序暫停的時間。

  

圖3-30  利用變量設置暫停時間


第三種典型的應用是使用表達式控制設計圖標鏈接的外部多媒體文件。例如在制作多媒體程序時,設計人員總是希望能夠使【演示】窗口占據整個屏幕,除了將【演示】窗口設置為use full screen,還需要根據屏幕分辨率選擇不同分辨率的背景圖像。假設程序文件所在的文件夾中有一系列不同分辨率的圖像,從a12801024.jpg到a640480.jpg,分別用于5種常用的屏幕分辨率(1 280×1 024、1 152×864、1 024×768、800×600和640×480),利用以下條件語句可以實現根據屏幕分辨率選擇圖像文件的功能:

if screenwidth=1280&screenheight=1024 then filename:= "a12801024 "

else if screenwidth=1152&screenheight=864 then filename:= "a1152864"

          else if screenwidth=1024&screenheight=768 then filename:= "a1024768"

           else if screenwidth=800&screenheight=600 then filename:= "a800600"

            else filename:= "a640480"

end if

然后在圖像對象的【file】屬性中輸入表達式=filelocation^filename^".jpg"就可以達到目的了。但是這并不是一種好的解決辦法,原因有兩個:一是程序中可能有許多圖像對象需要根據屏幕分辨率選擇不同的圖像文件(包括同一設計圖標中的多個圖像對象),如果為每個圖像對象都創建一個變量,會使代碼維護工作量大為增加。二是上述代碼無法輸入到圖像對象屬性對話框的【file】文本框中,必須為每個圖像對象都創建一個【運算】設計圖標容納這些代碼,這同樣增加了代碼維護工作量,同時也造成了代碼和數據不恰當地分離。

實際上,上述代碼應該和圖像對象捆綁在一起,只要將它們由多行轉換為一行,就可以保存在圖像對象的【file】屬性之中。利用test函數可以實現這種轉換要求,只需在【file】文本框內輸入(如圖3-31所示)。

圖3-31  由圖像對象選擇不同的圖像文件

=filelocation^"a"^test(screenwidth=1280&screenheight=1024, "12801024", ﹁

test(screenwidth=1152&screenheight=864, "1152864", ﹁

test(screenwidth=1024&screenheight=768, "1024768", ﹁

test(screenwidth=800&screenheight=600,  "800600", "640480"))))^".jpg"

【file】文本框最大可以容納長達255個字符的表達式(路徑的最大長度可達410個字符),因此保存這一行代碼不會遇到任何問題。

chapter03文件夾中提供了與本例對應的范例程序dynamicbackground.a7p和圖像文件。另外,在光盤的/materials/image/background文件夾內,提供了從a到f共6個系列的背景圖像。

分離字符"a"的目的是便于在不同的圖像系列之間進行切換,只要在【file】文本框中將字符"a"替換為字符"c",就可以使用c系列的背景圖像,按照同樣的命名規則,讀者可以制作應用于更多屏幕分辨率的圖像。只要為各種可能的屏幕分辨率都準備了專用的圖像文件,就可以將【file】文本框中的表達式簡化為:

=filelocation^"a"^screenwidth^screenheight^".jpg"

不是所有對象的屬性都可以通過表達式進行控制,圖像對象就是一個例子。人們一直期望能夠通過表達式控制圖像對象的縮放比例,但即使在authorware 7.0中,圖像對象的【size】和【scale】屬性仍然不能使用表達式進行控制。本例實際上提供了對于圖像縮放問題的解決方法:由圖像對象自己選擇不同大小的圖像文件。

3.2.3  引用設計圖標

對于不同的設計圖標,圖標變量可以有不同的取值,因此在許多情況下,設計人員需要對特定的設計圖標進行引用,以讀取或設置相應圖標變量的值。例如在一個【顯示】設計圖標“graphic”中包含一組顯示對象,而在一個【數字化電影】設計圖標“movie”中包含了一段數字化電影,如圖3-32所示,此時(displayx@"graphic", displayy@"graphic")將返回“graphic”設計圖標中顯示對象的中心坐標,而(displayx@"movie", displayy@"movie")將返回“movie”設計圖標中數字化電影的中心坐標。

圖3-32  引用設計圖標

通常是利用引用符號"@"和設計圖標的名稱來完成對特定設計圖標的引用,因此,以該方式被引用的設計圖標其名稱在整個程序中必須是惟一的,否則將導致錯誤出現。

如果通過設計圖標名稱建立了圖標變量與設計圖標之間的引用關系,則在程序設計期間,authorware始終監視著被引用的設計圖標,一旦其名稱被改動,authorware立即將新的名稱更新到所有的引用表達式之中,程序設計人員不必對此存在額外的擔心。如果刪除了存在引用關系的設計圖標,則在所有的引用表達式中該設計圖標的名稱將自動被“deletedicon”所代替,以指出這是一個無效的引用。

如果想阻止上述自動更新操作,可以將設計圖標的標題包圍在一對括號之內,例如表達式displayx@("graphic"),這時無論是刪除“graphic”設計圖標還是對其進行重命名,都無法影響該表達式。這一功能主要用于在不同程序文件之間復制設計圖標和程序代碼時保持固定的引用關系。

在引用設計圖標時,可以使用變量或表達式代替設計圖標的標題,程序語句

result:=displayx@"graphic"

和下面的程序語句是等效的:

title:= "圖形"

result:= displayx@title

或者

id:=iconid@"圖形"

result:= displayx@id

如果圖標變量引用的是自身所在的設計圖標(這種情況在圖標變量嵌入到文本對象中或在附屬【運算】設計圖標內使用時經常出現),此時就可以省略引用符號和設計圖標的名稱(請參閱圖3-9)。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 男女做性免费网站 | 黄污污网站 | 欧美成年人在线视频 | 成人在线不卡 | 日本精品久久久一区二区三区 | 久久久久久久.comav | 久久99精品久久久久久国产越南 | 又黄又爽免费无遮挡在线观看 | 精品久久久久久久久久久久久久 | 国产色片在线观看 | 亚州综合一区 | 欧美在线成人影院 | 久久99精品久久久久久小说 | 毛片大全免费 | 国产做爰全免费的视频黑人 | 欧美精品一级 | 视频一区二区国产 | 国产伦精品一区二区三区在线 | 国产女同玩人妖 | 少妇淫片免费一级毛片 | 黄色av.com| 国产精品99爱 | 久久17| 免费一级欧美大片视频 | 午夜视频在线看 | 精品国产一区二区亚洲人成毛片 | 亚洲天堂岛国片 | 久久国产成人午夜av浪潮 | 福利在线小视频 | 久久精品国产亚洲7777 | 免费黄色成人 | 日韩理论电影网 | 久久久久久免费 | 久久久国产一级片 | 欧美成年性h版影视中文字幕 | 12av毛片| 国产成人77亚洲精品www | 91羞羞| 特级无码毛片免费视频尤物 | 成人宗合网 | av噜噜噜噜|