国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 媒體動(dòng)畫 > 正文

Authorware類和函數(shù):Eval與EvalAssign函數(shù)地運(yùn)用

2024-09-08 19:24:38
字體:
供稿:網(wǎng)友
作者:hellrock @汕大4u2v工作室

  精通authorware的開發(fā)應(yīng)用,從某種程度上說取決于是否熟悉掌握運(yùn)用函數(shù)和變量。可是,在眾多的authorware系統(tǒng)函數(shù)中,你是否挖掘過eval和evalassign這兩個(gè)系統(tǒng)函數(shù)呢?下面我們就一起來見識(shí)一下eval和evalassign這一對(duì)兄弟函數(shù)的“絕活”吧。

  eval和evalassign這兩個(gè)系統(tǒng)函數(shù)的功能十分相似,只是用法存在差異而已,因此我們稱它們?yōu)椤靶值芎瘮?shù)”。

eval的表達(dá)式如下:

result := eval("expression"[, "decimal", "separator"])

  eval函數(shù)的功能是計(jì)算表達(dá)式expression的值,并將該值賦給result,在該函數(shù)的expression表達(dá)式中,不能包含賦值操作符“:=”。

eval的“兄弟函數(shù)”evalassign的表達(dá)式如下:

result := evalassign("expression" [, "decimal", "separator"])

  evalassign函數(shù)的功能同eval相似,計(jì)算表達(dá)式expression的值,并將該值賦給result,在該函數(shù)的expression表達(dá)式中,可以包含賦值操作符“:=”。

  由此可見,和eval函數(shù)相比,evalassign的參數(shù)中可以帶賦值號(hào)“:=”,即它的參數(shù)可以是一個(gè)賦值語句,而eval函數(shù)則不行。下面我們簡(jiǎn)單介紹一下eval函數(shù)與evalassign函數(shù)的具體用法。

(一)eval的簡(jiǎn)單用法



圖1.1 eval簡(jiǎn)單用法范例

  這里我們引用一個(gè)范例來說明eval的簡(jiǎn)單用法。我們要實(shí)現(xiàn)一個(gè)簡(jiǎn)單的計(jì)算:提示用戶輸入一個(gè)代數(shù)表達(dá)式,然后計(jì)算出并得出該表達(dá)式的值。程序流程圖如上圖1.1,開始的計(jì)算圖標(biāo)是設(shè)置演示屏幕的大小,接下來的顯示圖標(biāo)“輸入提示”提示用戶輸入一個(gè)代數(shù)表達(dá)式,文本輸入交互“*”可接受用戶的任意一個(gè)字符串輸入,然后求值。在這個(gè)范例的核心問題就是:用文本交互接受的用戶輸入“entrytext”是一個(gè)字符串,然后怎樣將該字符串轉(zhuǎn)化為一個(gè)代數(shù)表達(dá)式,并求出其值?通過eval函數(shù),我們可以很容易的解決這個(gè)問題,如圖1.2和圖1.3所示,計(jì)算圖標(biāo)的表達(dá)式如下:

statment:=entrytext^"="^eval(entrytext)
  這里求出的用戶自定義變量statement是一個(gè)字符串,有三部分組成:用戶輸入的原字符串、“=”符號(hào)、結(jié)果值,三部分是通過連接符號(hào)“^”連接起來的。至于顯示圖標(biāo)“顯示結(jié)果”,只是實(shí)現(xiàn)顯示變量字符串statement的功能,可直接用文本工具寫上{statement}即可。例如:用戶輸入“4+8”回車,屏幕將顯示最后結(jié)果“4+8=12”,如圖1.4所示。通過這個(gè)小小的范例是不是從中得到一點(diǎn)關(guān)于eval函數(shù)用法的啟示?


圖1.2 eval簡(jiǎn)單用法范例文本交互內(nèi)容


圖1.3 eval簡(jiǎn)單用法范例文本交互內(nèi)容


圖1.4 eval簡(jiǎn)單用法范例運(yùn)行結(jié)果

(二)evalassign的簡(jiǎn)單用法

  在上文中我們提到和eval函數(shù)相比,evalassign函數(shù)的參數(shù)參數(shù)中可以帶賦值號(hào)“:=”,具體怎么運(yùn)用呢?在程序設(shè)計(jì)中我們往往需要把圖標(biāo)對(duì)象動(dòng)態(tài)的改變其移動(dòng)屬性,開始所有的對(duì)象都是可移動(dòng)的,在程序的某個(gè)特定時(shí)刻,我們需要把對(duì)象變?yōu)椴豢梢苿?dòng),如何實(shí)現(xiàn)?假設(shè)我們所有的對(duì)象都命名為“contentx”,其中x為序號(hào),這樣的命名將有利于我們程序的控制。我們知道,要“固定”一個(gè)對(duì)象并不難,在程序中可以這樣寫:

movable@"contentx":=false

  這樣就可“固定”序號(hào)為x的某個(gè)對(duì)象,可是如果我們要控制十個(gè),幾十個(gè),甚至幾百個(gè)對(duì)象呢,難道我們還用上面的方法一個(gè)一個(gè)的寫程序?用evalassign函數(shù)可以很簡(jiǎn)單地解決這個(gè)問題,我們只要寫上一個(gè)程序段就可以實(shí)現(xiàn)對(duì)所有對(duì)象的“固定”,即不可移動(dòng)屬性了:

evalassign("movable@/"content"^number^"/":=false")
  其中number是變量,通過對(duì)number的取值,就可以達(dá)到對(duì)各個(gè)對(duì)象的控制,因此運(yùn)用evalassign函數(shù)的關(guān)鍵就是歸納或設(shè)計(jì)出一個(gè)能代表全部元素的通用變量表示式,上面所闡述的原理eval函數(shù)也是通用的。為了加深認(rèn)識(shí),我們來看一個(gè)簡(jiǎn)單應(yīng)用的實(shí)例,下圖1.5為其流程圖。它實(shí)現(xiàn)一個(gè)簡(jiǎn)單功能:只用一個(gè)按鈕操作就可順序切換到框架中的各個(gè)分支。


圖1.5 evalassign簡(jiǎn)單用法范例

  首先建立如圖1.5的流程圖,在“start”計(jì)算圖標(biāo)里寫入如下公式代碼:

resizewindow(320,180) ----設(shè)置演示屏幕大小

i:=1 ----給自定義變量i賦值

repeat with k:=1 to 5 ----循環(huán)設(shè)置pic系列顯示圖標(biāo)為不可移動(dòng)evalassign("movable@/"pic"^k^"/":=false")

end repeat

  根據(jù)圖1.5的流程圖,我們可以知道范例中的關(guān)鍵是把框架中的顯示圖標(biāo)命名為一系列有規(guī)律的名稱:“pic1”、“pic2”….“pic5”,然后利用evalassign系統(tǒng)函數(shù)編寫通用的代碼,按鈕響應(yīng)交互(設(shè)置為永久交互)的計(jì)算分支“goto icon”代碼如下:

if i=5 then

i:=0

end if

i:=i+1

evalassign("goto(iconid@/"pic"^i^"/")")


  其中變量“i”為自定義變量,通過它的動(dòng)態(tài)改變而實(shí)現(xiàn)循環(huán)的切換到框架的各個(gè)分支。在程序的開頭我們還要對(duì)變量“i”賦初值:i:=1,這樣可以確保從框架的第一個(gè)分支開始進(jìn)行循環(huán)切換。最后運(yùn)行的效果如下圖1.6所示,只要不斷的按“goto icon”按鈕,按鈕下面的數(shù)字圖片,即代表各個(gè)分支的圖片就會(huì)順序的循環(huán)切換。


圖1.6 范例演示效果

專題總結(jié)

  通過上面的學(xué)習(xí),對(duì)eval和evalassign兩個(gè)系統(tǒng)函數(shù)的用法是不是有了更深的認(rèn)識(shí)?有了這兩個(gè)“兄弟函數(shù)”,我們就可以在程序中把大批量相同性

[1] [2] 下一頁  

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 贵定县| 高清| 原平市| 罗甸县| 信阳市| 襄樊市| 保亭| 秭归县| 梨树县| 陆丰市| 黎川县| 台北县| 维西| 信阳市| 昭苏县| 华蓥市| 博白县| 龙口市| 如东县| 永泰县| 普兰店市| 西乡县| 小金县| 林州市| 沛县| 仲巴县| 忻州市| 呼和浩特市| 类乌齐县| 南漳县| 周口市| 增城市| 邵武市| 崇明县| 洮南市| 子洲县| 凉山| 汾西县| 邵阳县| 台湾省| 图木舒克市|