flashas菜鳥入門教程下載第1/2頁
更新時間:2008年03月05日 22:05:32 作者:
這個教程很老了,是閃吧的 thymecd 發(fā)布的 ,由blackhill 整理成chm 圖片和 swf都是全的!! 閃吧的下載已經(jīng)失效了,所以我在網(wǎng)上找了很久總算找了一個下載地址 下面是第三章的內(nèi)容 很適合剛剛接觸as的朋友
ActionScript編程初步
計算機程序是由命令、函數(shù)、運算符、條件和循環(huán)等結(jié)構(gòu)組成的。命令是為計算機下達的一系列指令,函數(shù)執(zhí)行計算和返回值,通過運算符將若干數(shù)據(jù)以某種特定的方式結(jié)合起來,條件測試一個或多個值以返回一個為true或false的布爾值,循環(huán)結(jié)構(gòu)使得程序能夠重復(fù)執(zhí)行一系列相同的指令。
變量是存儲數(shù)據(jù)的容器,變量有變量名和變量值。
編程是一項需要耐心的工作,首先你必須理解要用程序解決什么樣的問題,然后需要將這個問題分解成若干步驟,將每個步驟再分成更小的步驟,直到每個步驟都小得很容易解決了為止。
程序編寫好后,可能會存在許多漏洞或缺陷,所以你還需要對程序進行調(diào)試,直到程序能正確運行為止。
3.1 程序基本結(jié)構(gòu)
計算機程序是由命令、函數(shù)、運算符、條件和循環(huán)等結(jié)構(gòu)組成的。
3.1.1 命令、函數(shù)和運算符
在此之前,我們都是用關(guān)鍵字來描述ActionScript中的元素,如關(guān)鍵字gotoAndPlay,它也是一個命令。
命令是ActionScript中用來告訴Flash所要執(zhí)行的特定操作的元素。之所以稱之為命令,就是因為它將被嚴(yán)格的遵照執(zhí)行,如果要用gotoAndPlay跳轉(zhuǎn)到一個不存在的幀,這樣的命令就不能被執(zhí)行。
命令是程序中最基本的元素,在Flash中如果不使用命令,幾乎不能進行任何操作。從本書中你將學(xué)到很多命令。
函數(shù)是ActionScript中用來執(zhí)行計算和返回結(jié)果的元素。例如,一個特定的函數(shù)可以計算并返回一個指定數(shù)的平方根。
命令和函數(shù)都可以使用參數(shù)。參數(shù)就是傳遞給命令或函數(shù)的一個值。如gotoAndPlay命令就至少需要一個幀編號或幀標(biāo)簽作為參數(shù)。求平方根的函數(shù)也需要一個數(shù)值作為參數(shù)。
與命令和函數(shù)不同的是運算符,它們主要是一些符號,而不是字母。例如,+運算符執(zhí)行兩數(shù)相加的操作。
在ActionScript程序中你將會用到大量的命令、函數(shù)和運算符。
3.1.2 變量
要編寫復(fù)雜的計算機程序往往需要存儲很多的信息。有時你可能只需要存儲很短暫的時間,例如,如果需要重復(fù)執(zhí)行10次相同的命令,你就需要對命令的執(zhí)行次數(shù)進行記數(shù),直到滿10次為止。
所有的編程語言都使用變量來存儲信息。一個變量由兩部分構(gòu)成:變量名和變量的值。
1.變量名
變量名通常是一個單詞或幾個單詞構(gòu)成的字符串,也可以是一個字母??偟膩碚f,你需要盡可能地為變量指定一個有意義的名稱。
例如,如果你要使用變量存儲用戶的姓名,用userName作為變量名將是一個很好的選擇。如果你使用n作變量名,似乎太短了一點;如果使用name,又可能與影片中其他對象的名稱相混淆。
在ActionScript中為變量指定變量名時已經(jīng)形成了一種不成文的規(guī)范,就是變量名通常以小寫字母開頭,當(dāng)一個新的單詞出現(xiàn)時,大寫這個新單詞的第一個字母,如userName,長一點的例子如currentUserFirstName。
變量名中不允許出現(xiàn)空格,也不允許出現(xiàn)特殊符號,但是可以使用數(shù)字。
2.變量類型
你可以用變量存儲不同類型的數(shù)據(jù)。數(shù)字是最簡單的變量類型。
你可以在變量中存儲兩種不同類型的數(shù)字:整數(shù)和浮點數(shù)。整數(shù)沒有小數(shù)點部分,如117、-3685都是整數(shù)。浮點數(shù)有小數(shù)點部分,如0.1、532.23、-3.7都是浮點數(shù)。
你也可以在變量中存儲字符串,字符串就是由字符組成的序列,可以是一個或多個字符,甚至可以沒有字符,即空字符串。
使用引號定義字符串,使其與其他變量相區(qū)別。如7是一個數(shù)字,而“7”則是一個字符串,這個字符串由一個字符7組成。
在別的編程語言中,你可能需要在程序的開頭部分提前定義程序中要用到的變量的具體類型,但在ActionScript中不需要預(yù)先聲明變量,你只需要直接使用它們,F(xiàn)lash在第一次遇到它們的時候會自動為它們創(chuàng)建變量。
另外,變量所能存放的數(shù)據(jù)類型也沒有嚴(yán)格的限定,某一變量可以在一個位置存放字符串,而在另一個位置存放數(shù)字。
這種靈活性并不是經(jīng)常用得到,但是它可以讓程序員們少一些不必要的擔(dān)心。
ActionScript程序員不必?fù)?dān)心的另一個問題是廢棄變量的空間回收問題。即當(dāng)你不再需要使用一個變量的時候,你可能需要收回該變量占用的存儲空間。大多數(shù)現(xiàn)代的計算機語言如ActionScript都可以自動回收空間,所以你也不必?fù)?dān)心了。
除數(shù)字和字符串類型外還有一些別的變量數(shù)據(jù)類型。例如,數(shù)組可以存放一系列的數(shù)據(jù)而非單個數(shù)據(jù)。
3.1.3 條件
程序本身并不能作出抽象的決定,但是它可以獲取數(shù)據(jù),并對數(shù)據(jù)進行分析比較,然后根據(jù)分析結(jié)果執(zhí)行不同的任務(wù)。
例如,你想要檢查用戶輸入的名字并確定其至少包含3個字母。程序需要做的事情就是對用戶名作出判斷,如果是3個或更多的字母,就執(zhí)行一種操作;如果不足3個字母則執(zhí)行另一種操作。
這里,作出一個決定需要兩步,第一步是檢查條件是否滿足,如果名稱符合3個字母長度,條件滿足,我們稱條件的值為真(true);否則條件不滿足,我們稱條件的值為假(false)。所有的條件都必須是兩個值中的一種,要么為真,要么為假。要么為真(true)要么為假(false)的數(shù)據(jù)類型稱為布爾(boolean)類型。
決定的第二步是根據(jù)條件為true或為false的情況選擇要執(zhí)行哪些代碼。有時只有一個選項,當(dāng)條件為true時執(zhí)行該選項;如果條件為false,將不執(zhí)行任何代碼。有時會有兩個相對的選項,條件為true和false時分別執(zhí)行不同的代碼。
例如,你想讓計算機根據(jù)一個變量的值是1、2或3執(zhí)行3種不同的任務(wù),可以像這樣表達:
如果變量的值等于1,執(zhí)行命令1
如果變量的值等于2,執(zhí)行命令2
如果變量的值等于3,執(zhí)行命令3
條件總是建立在比較之上的,你可以比較兩個變量的值以判斷它們是否相等;或者判斷一個是否大于另一個,或是小于另一個。如果變量是字符串類型,你可以比較它們按字典順序排列時的先后次序。
3.1.4 循環(huán)
與人不同,計算機很適合做重復(fù)性的工作。一件事情僅僅重復(fù)幾次就可能使人厭倦,但是讓計算機重復(fù)執(zhí)行成千上萬次它都照樣有耐心。
循環(huán)在每種編程語言中都是一個很重要的部分,ActionScript也不例外。你可以指定一條指令執(zhí)行給定的次數(shù),或者令其執(zhí)行到滿足指定的條件為止。
事實上,條件是循環(huán)中的重要組成部分,整個循環(huán)只需要一個開始點,一個結(jié)束點,再加上一個標(biāo)志循環(huán)結(jié)束的條件。
例如,你需要循環(huán)10次,使用一個變量從0開始計數(shù)。每循環(huán)一次,計數(shù)加1。當(dāng)計數(shù)變量達到10時,循環(huán)結(jié)束,程序繼續(xù)執(zhí)行循環(huán)以后的部分。下面的內(nèi)容代表了一個標(biāo)準(zhǔn)的循環(huán)結(jié)構(gòu):
(1)循環(huán)以前的命令。
(2)循環(huán)開始,計數(shù)變量置0。
(3)循環(huán)中的命令。
(4)計數(shù)變量加1。
(5)如果計數(shù)變量小于10,執(zhí)行步驟(3)。
(6)循環(huán)以后的命令。
在上面的步驟中,步驟(1)只執(zhí)行1次,步驟(2)表示循環(huán)的開始,步驟(3)、(4)、(5)都將執(zhí)行10次,當(dāng)循環(huán)結(jié)束后,執(zhí)行步驟(6)及以后的部分。
3.2 ActionScript之一角
當(dāng)你在編寫自己的腳本時,你會用到各種各樣不同的關(guān)鍵字和符號,為便于你熟悉腳本的構(gòu)成,下面先來看一個真實的例子。
這是一段作用于按鈕的腳本,當(dāng)用戶單擊按鈕時(確切地說是松開按下的按鈕時)執(zhí)行它。其中沒有包含特殊的函數(shù),但是它體現(xiàn)了ActionScript的主要結(jié)構(gòu)。
on (release) {
var myNumber = 7;
var myString = "Flash MX ActionScript";
for (var i=0; i<myNumber; i++) {
trace(i);
if (i + 3 == 8) {
trace(myString);
}
}
}
腳本的第1行表明當(dāng)用戶松開按下的按鈕時執(zhí)行大括號中的語句。on (release)結(jié)構(gòu)只能用于按鈕,其他相關(guān)的幾種用法如on(press)、on(rollOver)、on(rollout)、on(dragOver)、on(dragOut)等。
第1行末尾的大括號{表示一段相對獨立的代碼段的開始。從{到與之相對的}之間的代碼是一個整體,它們都從屬于按鈕的release事件。
請注意,大括號之后的代碼較之第1行有一個制表符(按一次Tab鍵)的縮進,其后的每行代碼與之具有相同的縮進程度,直到一個新的大括號開始,在新大括號后的語句會比前面的語句增加一個制表符的縮進,以此類推,這種特點與其他編程語言是類似的。Flash會自動將你添加的代碼設(shè)置成正確的縮進樣式。
代碼的第1行創(chuàng)建一個名為myNumber的局部變量,并將該變量的值設(shè)置為7。下面一行將字符串Flash MX ActionScript賦給另一個變量myString。稍后我們會更詳細(xì)的介紹變量的兩種類型:局部變量和全局變量。
分號;表示一條指令的結(jié)束,在每個完整指令的末尾都應(yīng)該添加分號。
for代表一個循環(huán)結(jié)構(gòu)的開始,此處的循環(huán)執(zhí)行7(myNumber)次,即令i從0遞增到6,每遞增1便執(zhí)行一次循環(huán)結(jié)構(gòu)中的語句。for后面大括號中的部分即為循環(huán)體。
命令trace將它后面括號中的內(nèi)容發(fā)送到輸出窗口。我們將在下一部分詳細(xì)介紹輸出窗口。
if是一種條件結(jié)構(gòu),它測試后面的內(nèi)容i + 3 == 8是否為true,如果為true,則執(zhí)行后面的語句;否則跳過該代碼段。
if結(jié)構(gòu)中只有一個trace命令,它將變量myString的值發(fā)送到輸出窗口。
上例腳本以三個反向大括號}結(jié)束,第1個表示if語句的結(jié)束,第2個表示for語句的結(jié)束,第3個表示整個on(press)段結(jié)束。
3.3 輸出窗口
輸出窗口是只在測試Flash影片時出現(xiàn)的一個編程工具,F(xiàn)lash用它來顯示出錯信息或其他的一些重要信息。用戶可以用ActionScript中的trace命令自定義要發(fā)送到輸出窗口中的信息。
輸出窗口在測試程序時非常有用。你可以使用trace命令在輸出窗口中顯示變量的值或者哪一部分ActionScript正在執(zhí)行。
輸出窗口還可以幫助你學(xué)習(xí)ActionScript。你可以編寫一些小程序,將信息發(fā)送到輸出窗口,這將幫助你看到程序的運行結(jié)果。
要想熟悉輸出窗口,最好的方法就是多使用它。下面就來編寫一段小程序,將信息發(fā)送到輸出窗口。
(1)啟動Flash MX。
(2)選中時間軸的第1幀,打開第1幀的動作面板。
(3)使用右上角的菜單將動作面板切換到專家模式。
(4)在腳本編輯區(qū)單擊鼠標(biāo),將鼠標(biāo)光標(biāo)定位到腳本編輯區(qū)中。
(5)在動作面板中輸入如下ActionScript:
trace("I like ActionScript!");
此時的動作面板如圖3-1所示。
圖3-1 在動作面板中輸入trace命令
(6)按Ctrl+Enter鍵測試影片,因為舞臺中沒有任何圖像,所以你將看到一個空白窗口,同時出現(xiàn)一個輸出窗口,窗口中顯示:I like ActionScript!如圖3-2所示。
圖3-2 輸出窗口顯示了trace命令中的信息
和動作面板一樣,輸出窗口右上角也有一個下拉菜單,如圖3-3所示,其中包含了拷貝、清除、查找、保存到文件以及打印等命令。
圖3-3 輸出窗口的下拉菜單
下拉菜單的最后一項命令是“調(diào)試級別”,你可以選擇“錯誤”、“警告”、“詳細(xì)”中的一種,如果選擇“無”,將不顯示任何信息。
3.4 ActionScript基本語法
前面介紹了程序的基本結(jié)構(gòu),下面要講解ActionScript中的基本語法。
3.4.1 變量
1.設(shè)置變量
在ActionScript中使用變量的方法很簡單,你只需要為變量名分配一個值,例如:
myVariable = 7;
該例在創(chuàng)建名為myVariable的變量的同時將其值設(shè)置為7,你可以為變量任意取一個名字,而并不需要使用本例中的myVariable。
可以使用輸出窗口查看變量的值,如在一個空白影片第一幀的動作面板中添加如下ActionScript:
x = 7;
trace(x);
首先,數(shù)字7被存儲在變量x中;然后,使用trace命令將變量x的值發(fā)送到輸出窗口。影片播放時,輸出窗口中會顯示數(shù)字7。
2.全局變量
根據(jù)變量作用的范圍不同可將變量分為全局變量和局部變量。
全局變量就是可以作用在整個Flash影片的所有深度級別上的變量。你可以在某一幀中設(shè)置它,并在其他幀中使用和改變它的值。
你不需要使用特別的方法創(chuàng)建全局變量,像前一個例子一樣,直接設(shè)置并使用它,它自動成為一個全局變量。
在許多編程語言中,全局變量可以在任何地方使用。Flash影片使用一個概念叫層級(level)。整修影片的主時間軸作為根(root)層級,影片剪輯是時間軸中的小影片。影片剪輯中的圖形和腳本要比根層級低一個級別。影片剪輯不能直接使用根層級中的全局變量。
3.局部變量
局部變量只能存在于當(dāng)前腳本中,而在其他幀中它將不再存在。你可以在使用同一個變量名在不同的幀中創(chuàng)建不同的局部變量,它們之間將互不影響。
局部變量可用來創(chuàng)建模塊化的代碼。當(dāng)前腳本執(zhí)行完時,局部變量將被從內(nèi)存中刪除;而全局變量將保留到影片結(jié)束。
創(chuàng)建局部變量需要使用關(guān)鍵字var。例如,下面的ActionScript創(chuàng)建值為15的局部變量myLocalVariable:
myLocalVariable = 15;
使用var創(chuàng)建局部變量后,在當(dāng)前代碼中就不再需要使用關(guān)鍵字var了。例如,下面的代碼創(chuàng)建值為20的局部變量myLocalVariable,然后將其值改為8,再發(fā)送到輸出窗口中。
var myLocalVariable = 20;
myLocalVariable = 8;
trace(myLocalVariable);
如果沒有特殊的需要,請盡量使用局部變量。
計算機程序是由命令、函數(shù)、運算符、條件和循環(huán)等結(jié)構(gòu)組成的。命令是為計算機下達的一系列指令,函數(shù)執(zhí)行計算和返回值,通過運算符將若干數(shù)據(jù)以某種特定的方式結(jié)合起來,條件測試一個或多個值以返回一個為true或false的布爾值,循環(huán)結(jié)構(gòu)使得程序能夠重復(fù)執(zhí)行一系列相同的指令。
變量是存儲數(shù)據(jù)的容器,變量有變量名和變量值。
編程是一項需要耐心的工作,首先你必須理解要用程序解決什么樣的問題,然后需要將這個問題分解成若干步驟,將每個步驟再分成更小的步驟,直到每個步驟都小得很容易解決了為止。
程序編寫好后,可能會存在許多漏洞或缺陷,所以你還需要對程序進行調(diào)試,直到程序能正確運行為止。
3.1 程序基本結(jié)構(gòu)
計算機程序是由命令、函數(shù)、運算符、條件和循環(huán)等結(jié)構(gòu)組成的。
3.1.1 命令、函數(shù)和運算符
在此之前,我們都是用關(guān)鍵字來描述ActionScript中的元素,如關(guān)鍵字gotoAndPlay,它也是一個命令。
命令是ActionScript中用來告訴Flash所要執(zhí)行的特定操作的元素。之所以稱之為命令,就是因為它將被嚴(yán)格的遵照執(zhí)行,如果要用gotoAndPlay跳轉(zhuǎn)到一個不存在的幀,這樣的命令就不能被執(zhí)行。
命令是程序中最基本的元素,在Flash中如果不使用命令,幾乎不能進行任何操作。從本書中你將學(xué)到很多命令。
函數(shù)是ActionScript中用來執(zhí)行計算和返回結(jié)果的元素。例如,一個特定的函數(shù)可以計算并返回一個指定數(shù)的平方根。
命令和函數(shù)都可以使用參數(shù)。參數(shù)就是傳遞給命令或函數(shù)的一個值。如gotoAndPlay命令就至少需要一個幀編號或幀標(biāo)簽作為參數(shù)。求平方根的函數(shù)也需要一個數(shù)值作為參數(shù)。
與命令和函數(shù)不同的是運算符,它們主要是一些符號,而不是字母。例如,+運算符執(zhí)行兩數(shù)相加的操作。
在ActionScript程序中你將會用到大量的命令、函數(shù)和運算符。
3.1.2 變量
要編寫復(fù)雜的計算機程序往往需要存儲很多的信息。有時你可能只需要存儲很短暫的時間,例如,如果需要重復(fù)執(zhí)行10次相同的命令,你就需要對命令的執(zhí)行次數(shù)進行記數(shù),直到滿10次為止。
所有的編程語言都使用變量來存儲信息。一個變量由兩部分構(gòu)成:變量名和變量的值。
1.變量名
變量名通常是一個單詞或幾個單詞構(gòu)成的字符串,也可以是一個字母??偟膩碚f,你需要盡可能地為變量指定一個有意義的名稱。
例如,如果你要使用變量存儲用戶的姓名,用userName作為變量名將是一個很好的選擇。如果你使用n作變量名,似乎太短了一點;如果使用name,又可能與影片中其他對象的名稱相混淆。
在ActionScript中為變量指定變量名時已經(jīng)形成了一種不成文的規(guī)范,就是變量名通常以小寫字母開頭,當(dāng)一個新的單詞出現(xiàn)時,大寫這個新單詞的第一個字母,如userName,長一點的例子如currentUserFirstName。
變量名中不允許出現(xiàn)空格,也不允許出現(xiàn)特殊符號,但是可以使用數(shù)字。
2.變量類型
你可以用變量存儲不同類型的數(shù)據(jù)。數(shù)字是最簡單的變量類型。
你可以在變量中存儲兩種不同類型的數(shù)字:整數(shù)和浮點數(shù)。整數(shù)沒有小數(shù)點部分,如117、-3685都是整數(shù)。浮點數(shù)有小數(shù)點部分,如0.1、532.23、-3.7都是浮點數(shù)。
你也可以在變量中存儲字符串,字符串就是由字符組成的序列,可以是一個或多個字符,甚至可以沒有字符,即空字符串。
使用引號定義字符串,使其與其他變量相區(qū)別。如7是一個數(shù)字,而“7”則是一個字符串,這個字符串由一個字符7組成。
在別的編程語言中,你可能需要在程序的開頭部分提前定義程序中要用到的變量的具體類型,但在ActionScript中不需要預(yù)先聲明變量,你只需要直接使用它們,F(xiàn)lash在第一次遇到它們的時候會自動為它們創(chuàng)建變量。
另外,變量所能存放的數(shù)據(jù)類型也沒有嚴(yán)格的限定,某一變量可以在一個位置存放字符串,而在另一個位置存放數(shù)字。
這種靈活性并不是經(jīng)常用得到,但是它可以讓程序員們少一些不必要的擔(dān)心。
ActionScript程序員不必?fù)?dān)心的另一個問題是廢棄變量的空間回收問題。即當(dāng)你不再需要使用一個變量的時候,你可能需要收回該變量占用的存儲空間。大多數(shù)現(xiàn)代的計算機語言如ActionScript都可以自動回收空間,所以你也不必?fù)?dān)心了。
除數(shù)字和字符串類型外還有一些別的變量數(shù)據(jù)類型。例如,數(shù)組可以存放一系列的數(shù)據(jù)而非單個數(shù)據(jù)。
3.1.3 條件
程序本身并不能作出抽象的決定,但是它可以獲取數(shù)據(jù),并對數(shù)據(jù)進行分析比較,然后根據(jù)分析結(jié)果執(zhí)行不同的任務(wù)。
例如,你想要檢查用戶輸入的名字并確定其至少包含3個字母。程序需要做的事情就是對用戶名作出判斷,如果是3個或更多的字母,就執(zhí)行一種操作;如果不足3個字母則執(zhí)行另一種操作。
這里,作出一個決定需要兩步,第一步是檢查條件是否滿足,如果名稱符合3個字母長度,條件滿足,我們稱條件的值為真(true);否則條件不滿足,我們稱條件的值為假(false)。所有的條件都必須是兩個值中的一種,要么為真,要么為假。要么為真(true)要么為假(false)的數(shù)據(jù)類型稱為布爾(boolean)類型。
決定的第二步是根據(jù)條件為true或為false的情況選擇要執(zhí)行哪些代碼。有時只有一個選項,當(dāng)條件為true時執(zhí)行該選項;如果條件為false,將不執(zhí)行任何代碼。有時會有兩個相對的選項,條件為true和false時分別執(zhí)行不同的代碼。
例如,你想讓計算機根據(jù)一個變量的值是1、2或3執(zhí)行3種不同的任務(wù),可以像這樣表達:
如果變量的值等于1,執(zhí)行命令1
如果變量的值等于2,執(zhí)行命令2
如果變量的值等于3,執(zhí)行命令3
條件總是建立在比較之上的,你可以比較兩個變量的值以判斷它們是否相等;或者判斷一個是否大于另一個,或是小于另一個。如果變量是字符串類型,你可以比較它們按字典順序排列時的先后次序。
3.1.4 循環(huán)
與人不同,計算機很適合做重復(fù)性的工作。一件事情僅僅重復(fù)幾次就可能使人厭倦,但是讓計算機重復(fù)執(zhí)行成千上萬次它都照樣有耐心。
循環(huán)在每種編程語言中都是一個很重要的部分,ActionScript也不例外。你可以指定一條指令執(zhí)行給定的次數(shù),或者令其執(zhí)行到滿足指定的條件為止。
事實上,條件是循環(huán)中的重要組成部分,整個循環(huán)只需要一個開始點,一個結(jié)束點,再加上一個標(biāo)志循環(huán)結(jié)束的條件。
例如,你需要循環(huán)10次,使用一個變量從0開始計數(shù)。每循環(huán)一次,計數(shù)加1。當(dāng)計數(shù)變量達到10時,循環(huán)結(jié)束,程序繼續(xù)執(zhí)行循環(huán)以后的部分。下面的內(nèi)容代表了一個標(biāo)準(zhǔn)的循環(huán)結(jié)構(gòu):
(1)循環(huán)以前的命令。
(2)循環(huán)開始,計數(shù)變量置0。
(3)循環(huán)中的命令。
(4)計數(shù)變量加1。
(5)如果計數(shù)變量小于10,執(zhí)行步驟(3)。
(6)循環(huán)以后的命令。
在上面的步驟中,步驟(1)只執(zhí)行1次,步驟(2)表示循環(huán)的開始,步驟(3)、(4)、(5)都將執(zhí)行10次,當(dāng)循環(huán)結(jié)束后,執(zhí)行步驟(6)及以后的部分。
3.2 ActionScript之一角
當(dāng)你在編寫自己的腳本時,你會用到各種各樣不同的關(guān)鍵字和符號,為便于你熟悉腳本的構(gòu)成,下面先來看一個真實的例子。
這是一段作用于按鈕的腳本,當(dāng)用戶單擊按鈕時(確切地說是松開按下的按鈕時)執(zhí)行它。其中沒有包含特殊的函數(shù),但是它體現(xiàn)了ActionScript的主要結(jié)構(gòu)。
on (release) {
var myNumber = 7;
var myString = "Flash MX ActionScript";
for (var i=0; i<myNumber; i++) {
trace(i);
if (i + 3 == 8) {
trace(myString);
}
}
}
腳本的第1行表明當(dāng)用戶松開按下的按鈕時執(zhí)行大括號中的語句。on (release)結(jié)構(gòu)只能用于按鈕,其他相關(guān)的幾種用法如on(press)、on(rollOver)、on(rollout)、on(dragOver)、on(dragOut)等。
第1行末尾的大括號{表示一段相對獨立的代碼段的開始。從{到與之相對的}之間的代碼是一個整體,它們都從屬于按鈕的release事件。
請注意,大括號之后的代碼較之第1行有一個制表符(按一次Tab鍵)的縮進,其后的每行代碼與之具有相同的縮進程度,直到一個新的大括號開始,在新大括號后的語句會比前面的語句增加一個制表符的縮進,以此類推,這種特點與其他編程語言是類似的。Flash會自動將你添加的代碼設(shè)置成正確的縮進樣式。
代碼的第1行創(chuàng)建一個名為myNumber的局部變量,并將該變量的值設(shè)置為7。下面一行將字符串Flash MX ActionScript賦給另一個變量myString。稍后我們會更詳細(xì)的介紹變量的兩種類型:局部變量和全局變量。
分號;表示一條指令的結(jié)束,在每個完整指令的末尾都應(yīng)該添加分號。
for代表一個循環(huán)結(jié)構(gòu)的開始,此處的循環(huán)執(zhí)行7(myNumber)次,即令i從0遞增到6,每遞增1便執(zhí)行一次循環(huán)結(jié)構(gòu)中的語句。for后面大括號中的部分即為循環(huán)體。
命令trace將它后面括號中的內(nèi)容發(fā)送到輸出窗口。我們將在下一部分詳細(xì)介紹輸出窗口。
if是一種條件結(jié)構(gòu),它測試后面的內(nèi)容i + 3 == 8是否為true,如果為true,則執(zhí)行后面的語句;否則跳過該代碼段。
if結(jié)構(gòu)中只有一個trace命令,它將變量myString的值發(fā)送到輸出窗口。
上例腳本以三個反向大括號}結(jié)束,第1個表示if語句的結(jié)束,第2個表示for語句的結(jié)束,第3個表示整個on(press)段結(jié)束。
3.3 輸出窗口
輸出窗口是只在測試Flash影片時出現(xiàn)的一個編程工具,F(xiàn)lash用它來顯示出錯信息或其他的一些重要信息。用戶可以用ActionScript中的trace命令自定義要發(fā)送到輸出窗口中的信息。
輸出窗口在測試程序時非常有用。你可以使用trace命令在輸出窗口中顯示變量的值或者哪一部分ActionScript正在執(zhí)行。
輸出窗口還可以幫助你學(xué)習(xí)ActionScript。你可以編寫一些小程序,將信息發(fā)送到輸出窗口,這將幫助你看到程序的運行結(jié)果。
要想熟悉輸出窗口,最好的方法就是多使用它。下面就來編寫一段小程序,將信息發(fā)送到輸出窗口。
(1)啟動Flash MX。
(2)選中時間軸的第1幀,打開第1幀的動作面板。
(3)使用右上角的菜單將動作面板切換到專家模式。
(4)在腳本編輯區(qū)單擊鼠標(biāo),將鼠標(biāo)光標(biāo)定位到腳本編輯區(qū)中。
(5)在動作面板中輸入如下ActionScript:
trace("I like ActionScript!");
此時的動作面板如圖3-1所示。
圖3-1 在動作面板中輸入trace命令
(6)按Ctrl+Enter鍵測試影片,因為舞臺中沒有任何圖像,所以你將看到一個空白窗口,同時出現(xiàn)一個輸出窗口,窗口中顯示:I like ActionScript!如圖3-2所示。
圖3-2 輸出窗口顯示了trace命令中的信息
和動作面板一樣,輸出窗口右上角也有一個下拉菜單,如圖3-3所示,其中包含了拷貝、清除、查找、保存到文件以及打印等命令。
圖3-3 輸出窗口的下拉菜單
下拉菜單的最后一項命令是“調(diào)試級別”,你可以選擇“錯誤”、“警告”、“詳細(xì)”中的一種,如果選擇“無”,將不顯示任何信息。
3.4 ActionScript基本語法
前面介紹了程序的基本結(jié)構(gòu),下面要講解ActionScript中的基本語法。
3.4.1 變量
1.設(shè)置變量
在ActionScript中使用變量的方法很簡單,你只需要為變量名分配一個值,例如:
myVariable = 7;
該例在創(chuàng)建名為myVariable的變量的同時將其值設(shè)置為7,你可以為變量任意取一個名字,而并不需要使用本例中的myVariable。
可以使用輸出窗口查看變量的值,如在一個空白影片第一幀的動作面板中添加如下ActionScript:
x = 7;
trace(x);
首先,數(shù)字7被存儲在變量x中;然后,使用trace命令將變量x的值發(fā)送到輸出窗口。影片播放時,輸出窗口中會顯示數(shù)字7。
2.全局變量
根據(jù)變量作用的范圍不同可將變量分為全局變量和局部變量。
全局變量就是可以作用在整個Flash影片的所有深度級別上的變量。你可以在某一幀中設(shè)置它,并在其他幀中使用和改變它的值。
你不需要使用特別的方法創(chuàng)建全局變量,像前一個例子一樣,直接設(shè)置并使用它,它自動成為一個全局變量。
在許多編程語言中,全局變量可以在任何地方使用。Flash影片使用一個概念叫層級(level)。整修影片的主時間軸作為根(root)層級,影片剪輯是時間軸中的小影片。影片剪輯中的圖形和腳本要比根層級低一個級別。影片剪輯不能直接使用根層級中的全局變量。
3.局部變量
局部變量只能存在于當(dāng)前腳本中,而在其他幀中它將不再存在。你可以在使用同一個變量名在不同的幀中創(chuàng)建不同的局部變量,它們之間將互不影響。
局部變量可用來創(chuàng)建模塊化的代碼。當(dāng)前腳本執(zhí)行完時,局部變量將被從內(nèi)存中刪除;而全局變量將保留到影片結(jié)束。
創(chuàng)建局部變量需要使用關(guān)鍵字var。例如,下面的ActionScript創(chuàng)建值為15的局部變量myLocalVariable:
myLocalVariable = 15;
使用var創(chuàng)建局部變量后,在當(dāng)前代碼中就不再需要使用關(guān)鍵字var了。例如,下面的代碼創(chuàng)建值為20的局部變量myLocalVariable,然后將其值改為8,再發(fā)送到輸出窗口中。
var myLocalVariable = 20;
myLocalVariable = 8;
trace(myLocalVariable);
如果沒有特殊的需要,請盡量使用局部變量。
相關(guān)文章
關(guān)于FLASH與XML交互應(yīng)用中的理解
關(guān)于XML在FLASH中的應(yīng)用,以前寫過幾篇。也收集了幾篇來自網(wǎng)絡(luò)的。不過,都是一些非常簡單而常用的。在這里,我把XML的其他相關(guān)說明總結(jié)一下。有不足之處,希望大家能相互補充。只為了一個共同的目的:共同提高。2008-04-04SWF自適應(yīng)布局技巧 (Rapid Flash Development)快速Flash開發(fā)
當(dāng)我們開發(fā)全站式Flash應(yīng)用時,希望呈現(xiàn)一個鋪滿瀏覽器屏幕的Flash.2008-12-12Flash兩個上傳示例ASP和PHP(原文件下載,包括后臺程序)
Flash兩個上傳示例ASP和PHP(原文件下載,包括后臺程序)...2006-11-11給所有ActionScript初學(xué)者的一點建議 經(jīng)典
這篇文章主要給大家介紹了關(guān)于對ActionScript初學(xué)者的一點建議的相關(guān)資料,需要的朋友可以參考下2006-12-12AS3.0 實例學(xué)習(xí) 熟悉tween以及tweenEvent的運用
AS3.0 實例學(xué)習(xí) 熟悉tween以及tweenEvent的運用...2007-12-12