?? actionο
字號(hào):
作者:大木頭
日期:00-5-16 下午 12:51:07
十九、設(shè)置和確認(rèn)變量
變量是一個(gè)信息的容器,容器永遠(yuǎn)不變,但內(nèi)容可以改變,通過改變一個(gè)動(dòng)畫的變量你可以記錄和保存一些用戶的信息,并且可以改變動(dòng)畫的播放,或判斷一些條件的真假。變量可以是字符,比如你可以將一個(gè)URL、用戶名、數(shù)值結(jié)果、某些內(nèi)容出現(xiàn)的次數(shù)、或一個(gè)按鈕被按下的情況保存其中。每個(gè)動(dòng)畫或動(dòng)畫片段都有自己對(duì)應(yīng)的變量及變量值。在Flash中不必特意指定變量的類型是數(shù)值型還是字符型。
二十、在指定的動(dòng)畫或動(dòng)畫片段中識(shí)別變量
在指定的動(dòng)畫中識(shí)別一個(gè)變量,使用名稱及其動(dòng)畫的路徑,用冒號(hào)分開路徑與變量名稱。例如下面這個(gè)語句標(biāo)識(shí)指定動(dòng)畫中的Timer變量:/Explosion:Timer
二一、建立一個(gè)有條件的動(dòng)作事件
使用If 語句來確定條件是否滿足。例如你可以檢查用戶在文本框中輸入的數(shù)值是否太大或太小,并顯示一個(gè)提示信息,使用if語句是十分有效的,你應(yīng)該能夠熟練使用。其語法規(guī)則與一般編程語言大同小異,下面的例子有助于你更好的理解,不再詳述:
If (name eq "Gary")
Go to and Play ("Gary's World", 1)
Else if (name eq "David")
Go to and Play ("David's World", 1)
Else if (name eq "Peter")
Go to and Play ("Peter's World", 1)
Else
Go to and Play ("Welcome", 1)
End If
二二、循環(huán)動(dòng)作
使用Loop語句來設(shè)置一個(gè)當(dāng)條件為真時(shí)的循環(huán)動(dòng)作。比如設(shè)置一個(gè)計(jì)數(shù)器不斷的計(jì)數(shù)來形成條件,當(dāng)條件滿足或計(jì)數(shù)器為0就跳出從循環(huán)下面的第一幀開始執(zhí)行。例如下面的循環(huán)可以運(yùn)行10次 :
Set Variable: "Index" = 1
Loop While (Index <= 10)
Set Property ("target_item", Y position) = 150
Set Variable: "Index" = Index +1
End Loop
二三、重新使用一個(gè)動(dòng)作
你可以設(shè)計(jì)讓多個(gè)按鈕或幀使用同一個(gè)動(dòng)作,這要比在按鈕或幀之間使用復(fù)制和粘貼要好。要達(dá)到此目的需要使用Call語句來運(yùn)行一個(gè)動(dòng)作。指定一個(gè)將被調(diào)用的幀,如果,不能被使用,可能是名稱錯(cuò)誤或沒有被裝到本地機(jī)上, Flash 會(huì)忽略Call語句。遇到這種情況可以使用前面介紹過的framesloaded。
當(dāng)指定的幀運(yùn)行結(jié)束,控制權(quán)又返回發(fā)出call調(diào)用的語句。
二四、使用表達(dá)式編輯器
表達(dá)式編輯器可以從Actions標(biāo)簽中打開,幫助你精確的編輯一個(gè)表達(dá)式及其參數(shù)。如果你要建立一個(gè)表達(dá)式,單擊該按鈕然后在區(qū)域中選擇Expression Editor 。Editor.
雙擊operators中你需要的功能 ,其中包含的一些信息你可以用適當(dāng)?shù)膬?nèi)容來代替。例如要得到一個(gè)動(dòng)畫片段的水平位置的數(shù)值:
1、 雙擊選項(xiàng)中的 GetProperty,直到其出現(xiàn)在對(duì)話框上方的文本框中。
2、 高亮顯示普通條件Target并單擊Target。
3、 從列表中選擇希望的動(dòng)畫片段。
4、 選擇普通條件的property,并在Properties菜單中雙擊對(duì)應(yīng)項(xiàng)目,希望的數(shù)值提交給在X position中。
5、 在Expression Editor中單擊OK。
如果你得不到足夠的正確的信息,或使用了不適當(dāng)?shù)恼Z法,該表達(dá)式編輯器顯示一個(gè)警告信息。另外,新的表達(dá)式將出現(xiàn)在語句中。
二五、數(shù)值表達(dá)式
數(shù)值表達(dá)式可以進(jìn)行+、-、 =、邏輯操作、比較操作等。下面是具體例子:
1+2
Set Variable: "Score" = Score+1
二六、字符表達(dá)式
一個(gè)字符表達(dá)式可以連接兩個(gè)或更多的字符為一個(gè)新的字符串。操作數(shù)可以是變量、帶雙引號(hào)的字符串、返回字符結(jié)果的函數(shù)。例如這個(gè)表達(dá)式"Hello, " & "world." 連接"Hello, "和"world." ,結(jié)果是"Hello, world."
使用Substring函數(shù)來取一個(gè)串的子串,當(dāng)使用Substring時(shí),第一個(gè)參數(shù)是字符串,后兩個(gè)參數(shù)可以從下面的例子中準(zhǔn)確理解: Substring("Hello", 4, 2) 返回"lo"。如果第三個(gè)參數(shù)省略,則取到字符串的尾部。數(shù)字被用于其中的時(shí)候,自動(dòng)轉(zhuǎn)換成字符串形式,而下面的例子:"value_"&(index+1)則先執(zhí)行括號(hào)中的數(shù)值操作,然后再將結(jié)果以字符的形式連接到后面。
二七、算術(shù)操作
Flash中的算法操作遵守基本的數(shù)學(xué)計(jì)算規(guī)則及優(yōu)先級(jí)順序。在此不再詳述。
你可以使用下面這些函數(shù),因?yàn)槠浞祷亟Y(jié)果都是數(shù)值型的:
Int()和Length()Int(number)
例如: INT(12.5)返回12.
Length(string) 返回字符串的長(zhǎng)度。如Length("Hello")返回值為5。
Length(variableName)返回變量名字的長(zhǎng)度。
如果你在表達(dá)式中使用了字符型,并對(duì)其使用數(shù)值運(yùn)算符,則自動(dòng)將其轉(zhuǎn)換成數(shù)值,如果該字符不能轉(zhuǎn)換成數(shù)值,則視為0。
二八、字符串操作符
Flash將所有包含在雙引號(hào)中的內(nèi)容視為字符串,下面的語句用來指定一個(gè)字符串等效的名稱:eq
例如:name eq "Harold"
二九、比較操作符
比較兩個(gè)表達(dá)式,經(jīng)常用在IF和LOOP等語句中形成條件。Year = 2000測(cè)試這個(gè)變量的值是否是2000。Age >= 18測(cè)試是否大于或等于18。
三十、邏輯表達(dá)式
邏輯表達(dá)式類似于比較表達(dá)式,主要用在一些語句中形成判斷條件。例如:Index <= 10 and Done = 0 測(cè)試兩個(gè)條件是否同時(shí)滿足。下面的具體表達(dá)式可以幫助你正確理解:
LotteryNumber >= 6 and LotteryNumber <= 49
Index < 1 or Index > 10
not (Index < 1 or Index > 10)
三一、測(cè)量時(shí)間
使用GetTimer 返回從動(dòng)畫開始播放至目前的時(shí)間,單位是毫秒。例如下面語句可以建立一個(gè)輸出信息:顯示每一秒種的流逝。
Trace (Int(GetTimer / 1000) & " seconds have elapsed.")
三二、轉(zhuǎn)換ASCII碼
Flash能將ASCII代碼轉(zhuǎn)換成對(duì)應(yīng)的字符,也可以返回字符對(duì)應(yīng)的ASCII碼。
Chr:轉(zhuǎn)換ASCII碼為字符。如Chr (65) = "A"
Ord: 轉(zhuǎn)換字符為ASCII碼。如Ord(a) = 97
三三、使用properties
每個(gè)動(dòng)畫的屬性都是可改變的,可以通過改變這種屬性來編輯一個(gè)動(dòng)畫或動(dòng)畫片段。在 Expression Editor(表達(dá)式編輯器)中包含所有可用屬性的列表。有的屬性是應(yīng)用于一個(gè)動(dòng)畫片段的,也有用于整個(gè)動(dòng)畫過程的,被稱為global properties(全局屬性)。
三四、動(dòng)畫片段屬性(Movie clip properties )
許多動(dòng)畫片段屬性僅針對(duì)其自己,下面的動(dòng)畫片段屬性是應(yīng)當(dāng)了解的。
1、 Pixels中x和y屬性是相對(duì)于左上角的像素?cái)?shù)。但如果是在一個(gè)子時(shí)間軸中則是相對(duì)于父軸動(dòng)畫窗口的子坐標(biāo)系。
2、 如果一個(gè)動(dòng)畫片段是嵌入在另一個(gè)變化的動(dòng)畫片段中的,那么其坐標(biāo)也是嵌入的,比如一個(gè)動(dòng)畫逆時(shí)針旋轉(zhuǎn)90度,則子動(dòng)畫也逆時(shí)針旋轉(zhuǎn)90度。
3、 clip's coordinates設(shè)置基準(zhǔn)點(diǎn),如果你使用Center,則中心點(diǎn)是基準(zhǔn)點(diǎn),否則就是左上角。
4、 xscale 和yscale設(shè)置兩個(gè)方向的縮放比例,縮放相對(duì)于基準(zhǔn)點(diǎn)開始。如果父動(dòng)畫片段縮放一半,則子動(dòng)畫也縮放同樣的比例。
5、 rotation設(shè)置旋轉(zhuǎn)的度數(shù)。
6、 x、y、rotation、 _xscale和_yscale屬性都是可以向下傳遞的,影響到子動(dòng)畫片段,并受父動(dòng)畫片段的影響。
7、 visible可以被設(shè)置成True或False,默認(rèn)值是True。如果被設(shè)置成False,將隱藏動(dòng)畫引用,并且其中的按鈕動(dòng)作將不能工作。
三五、文本區(qū)卷動(dòng)屬性:
如果一個(gè)場(chǎng)景中包含一個(gè)與變量相關(guān)聯(lián)的文本區(qū)域,則有兩個(gè)特別的屬性與此文本區(qū)域的顯示有關(guān)。
1、scroll設(shè)置在文本區(qū)域最頂?shù)男袛?shù)值。其初始值由你設(shè)定,默認(rèn)的1,使用時(shí)隨用戶卷動(dòng)而發(fā)生變化。
2、maxscroll設(shè)置scroll變量所基于的文本區(qū)域的最大顯示行數(shù)。
使用scroll屬性來定義文本區(qū)域內(nèi)容開始顯示的地方,可以引導(dǎo)用戶直接到一個(gè)長(zhǎng)文本中比較重要的段落處開始閱讀。
三六、全局屬性
全局屬性影響整個(gè)動(dòng)畫,而不僅僅是動(dòng)畫片段。其主時(shí)間軸上的屬性的值可以在任意處讀出。
1、highquality有下面幾個(gè)值:0=0 = low quality(低品質(zhì));1 = high quality(高品質(zhì));2 = best quality(最好品質(zhì))。
2、focusrect如果是True(非0),用戶會(huì)看到在他們使用Tab鍵改變當(dāng)前按鈕的時(shí)候,會(huì)有一個(gè)黃色的矩形型框隨著在當(dāng)前按鈕之間移動(dòng)。
3、soundbuftime設(shè)置流式聲音文件的預(yù)緩沖時(shí)間,默認(rèn)值是5秒。
三七、常見交互式設(shè)計(jì)中的故障排除
在混成了許多動(dòng)作事件的層中,特別是與其他層有聯(lián)合關(guān)系時(shí),會(huì)變得非常復(fù)雜。經(jīng)常的測(cè)試你的動(dòng)畫片段并記住下面一些小的技巧會(huì)讓你收到意想不到的效果,少走許多彎路,避免不必要的麻煩。
1、Trace在一個(gè)輸出窗口中顯示信息。你可以使用trace在測(cè)試場(chǎng)景或動(dòng)畫時(shí),如果一個(gè)按鈕被按下或一個(gè)幀被執(zhí)行時(shí)得到程序運(yùn)行的結(jié)果或說明。你可以在trace語句中設(shè)置參數(shù)來驗(yàn)證一個(gè)條件是否滿足,并據(jù)此在測(cè)試一個(gè)動(dòng)畫時(shí)讓Trace窗口顯示信息。如果一個(gè)變量匹配到的幀沒有被裝入,則顯示空值。
2、當(dāng)測(cè)試一個(gè)動(dòng)畫或場(chǎng)景使使用:Control > List Objects和Control > List Variables。
使用Object inspector 或 Frame inspector可以容易的讀出較長(zhǎng)或有較多線索的動(dòng)作事件的整個(gè)文本內(nèi)容。
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -