欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

flashas菜鳥入門教程下載第2/2頁

 更新時間:2008年03月05日 22:05:32   作者:  
這個教程很老了,是閃吧的 thymecd 發(fā)布的 ,由blackhill 整理成chm 圖片和 swf都是全的!! 閃吧的下載已經(jīng)失效了,所以我在網(wǎng)上找了很久總算找了一個下載地址 下面是第三章的內(nèi)容 很適合剛剛接觸as的朋友

3.4.2  比較
在ActionScript中比較兩個事物是很容易的,要進行比較可以使用標準的數(shù)學符號,如=、<、>等。
1.相等
在ActionScript中用比較運算符對兩個值進行比較。
要比較兩個值是否相等,可以使用連在一起的兩個等于符號(==)。單個等于符號(=)是用來為變量分配值的,并不是比較運算符。
如果要比較變量x的值是否等于7,就可以使用==符號,如下所示:
var x = 7;
trace(x == 7);
以上代碼使用=符號將變量x設(shè)置為7,然后使用==符號對x和7進行比較。
測試這兩行代碼,輸出窗口將顯示“true”。如果將x設(shè)置為8或其他數(shù),則會顯示“false”。
==符號還可以用來比較兩個字符串。如下所示:
var myString = "Hello ActionScript.";
trace(myString == "Hello ActionScript.");
trace(myString == "hello ActionScript.");
程序運行時,你將在輸出窗口中看到一個“true”和一個“false”,因為在字符串中字母是要區(qū)分大小寫的。
如果你要比較兩個值是否不等,可以使用!=符號,它的意思是“不等于”。如下所示:
var a = 7;
trace(a != 9);
trace(a != 7);
第1個trace語句顯示信息“true”,因為a確實不等于9;第2個trace語句顯示信息“false”。
2.小于和大于
使用標準的數(shù)學符號<和>比較兩數(shù)是否成小于或大于關(guān)系。舉例如下:
var a = 9;
trace(a < 10);
trace(a > 5);
trace(a < 1);
你將從輸出窗口中看到“true”、“true”和“false”。
符號<=或>=用于比較一個數(shù)是否小于等于或大于等于另一個數(shù),如下所示:
var a = 9;
trace(a <= 9);
trace(a >= 9);
trace(a >= 7);
以上3個trace語句都將顯示“true”。
3.4.3  運算
通過運算可以改變變量的值。分別使用算術(shù)運算符+、-、*、/執(zhí)行加、減、乘、除操作。
如下所示的ActionScript將值為9的變量x加上一個數(shù)7:
var x = 9;
x = x + 7;
trace(x);
運算結(jié)果為16。
在ActionScript中執(zhí)行運算可以使用一些簡寫方法,如+=運算符將其前后的值相加并將結(jié)果賦給它前面的變量。前面的腳本也可以寫成如下的形式:
var x = 9;
x += 7;
trace(x);
++運算符與+=運算符類似,但它每執(zhí)行一次,變量的值只增加1,如下面的例子:
var x = 9;
x++;
trace(x);
結(jié)果顯示10。再看下面的例子:
var x = 9;
trace(x++);
trace(x);
結(jié)果是9和10。為什么呢?因為第1個trace語句輸出x的當前值9,然后將x加1,輸出x的新值10。
再試一下下面的腳本:
var x = 9;
trace(++x);
trace(x);
這次的結(jié)果為兩個10。因為將++運算符置于變量前面,將先執(zhí)行運算再返回變量的值。
同理,--運算符執(zhí)行遞減操作,-=運算符在變量當前值的基礎(chǔ)上減去一個數(shù),*=運算符在變量當前值的基礎(chǔ)上乘上一個數(shù),/=運算符在變量當前值的基礎(chǔ)上除以一個數(shù)。
3.4.4  條件
既然現(xiàn)在你已經(jīng)知道如何比較兩個變量,你就可以將比較結(jié)果作為執(zhí)行某些語句的條件。
1.if語句
if語句使你可以使用比較結(jié)果控制Flash影片的播放。如下所示的語句判斷X是否等于9,如果比較結(jié)果為true,則讓影片跳到第15幀:
if (x == 9) {
    gotoAndPlay(15);
}
if語句以if開始,其后緊跟一個比較表達式,比較表達式通常用一對括號括起來,再后面即是用大括號括起來當比較結(jié)果為true時要執(zhí)行的代碼。
2.else
對if語句可以進行擴展,使用else執(zhí)行條件不成立(比較表達式為false)時的代碼,如下所示:
if (x == 9) {
 gotoAndPlay(15);
} else {
 gotoAndPlay(16);
}
你也可以使用else if語句將if語句更推進一步,如下所示:
if (x == 9) {
 gotoAndPlay(15);
} else if (x == 10) {
 gotoAndPlay(16);
} else if (x == 11) {
 gotoAndPlay(20);
} else {
 gotoAndPlay(25);
}
你可以讓if語句想要多長就有多長,你也可以使用else if語句對別的變量進行比較,如下所示:
if (x == 9) {
 gotoAndPlay(15);
} else if (y<20) {
 gotoAndPlay(16);
} else {
 gotoAndPlay(25);
}
3.復合比較
你可以在一個if語句中對幾個比較表達式的值進行判斷,比如說你希望在x為9并且y為20時跳轉(zhuǎn)到第10幀,可以使用如下所示的腳本:
if ((x == 9) && (y == 20)) {
 gotoAndPlay(10);
}
邏輯與運算符&&將兩個比較表達式聯(lián)接在一起成為一個復合表達式,當兩個表達式的值都為true時復合表達式的值才為true。每個比較表達式都需要添加獨立的括號以便Flash能正確識別。在Flash的早期版本中使用and執(zhí)行邏輯與運算,現(xiàn)在已推薦不使用。
你也可以使用邏輯或運算符||將兩個比較表達式聯(lián)接在一起成為一個復合表達式,只要有一個表達式的值為true,復合表達式的值就為true。如下所示:
if ((x == 7) || (y == 15)) {
 gotoAndPlay(20);
}
在該腳本中,只要x為7或者y為15,或者兩者都成立,結(jié)果都是跳轉(zhuǎn)到第20幀。只有當兩者都不成立時,才不會執(zhí)行g(shù)otoAndPlay命令。在Flash的早期版本中使用or執(zhí)行邏輯或運算,現(xiàn)在已推薦不使用。
3.4.5  循環(huán)
ActionScript中的循環(huán)要比if語句稍微復雜一點。它的循環(huán)結(jié)構(gòu)與C語言中的循環(huán)結(jié)構(gòu)幾乎是一致的。
1.for循環(huán)結(jié)構(gòu)
for結(jié)構(gòu)是主要的循環(huán)結(jié)構(gòu),其樣式如下所示:
for (var i = 0; i<10; i++) {
 trace(i);
}
運行這段代碼,隨著局部變量I的改變,輸出窗口中將顯示數(shù)字0~9。
for結(jié)構(gòu)中關(guān)鍵字for后面的括號中包含3個部分,它們之間用分號隔開。
第1部分聲明一個局部變量,在本例中創(chuàng)建了一個局部變量i并將其設(shè)置為0。該部分只在循環(huán)體開始執(zhí)行之前執(zhí)行一次。
第2部分作為一個供測試的條件,在這里,測試i是否小于10。只要滿足該條件,就會反復執(zhí)行循環(huán)體。循環(huán)開始的時候i等于0,它是小于10的,所以循環(huán)得以執(zhí)行。
第3部分是一個運算表達式,每完成一次循環(huán)都將執(zhí)行該表達式一次。在這里,i每次遞增1,然后轉(zhuǎn)到第2部分對i的新值進行判斷。
大括號中的部分是該循環(huán)的循環(huán)體,每執(zhí)行一次循環(huán)都將執(zhí)行其中的所有命令。我們來看看計算機是如何處理這個循環(huán)的。
聲明變量i并將其值設(shè)為0;
判斷條件i<10,結(jié)果為true,開始執(zhí)行循環(huán)體;
現(xiàn)在i值為0,trace命令將i值發(fā)送到輸出窗口,輸出窗口顯示0;
第1次循環(huán)結(jié)束,回到循環(huán)開始處,i在原來的基礎(chǔ)上遞增1,i值變?yōu)?;
判斷條件i<10,結(jié)果為true,繼續(xù)執(zhí)行循環(huán)體;
trace命令將i的值1發(fā)送到輸出窗口;
然后i再加1,這樣循環(huán)下去直到執(zhí)行完10次循環(huán);
回到循環(huán)開始處,i在原來的基礎(chǔ)上遞增1,i值變?yōu)?0;
判斷條件i<10,結(jié)果為false,結(jié)束循環(huán),開始執(zhí)行for結(jié)構(gòu)后面的代碼。
2.其他形式的循環(huán)結(jié)構(gòu)
for循環(huán)是最常用的一種循環(huán)結(jié)構(gòu),除for循環(huán)之外還有while循環(huán)和do…while循環(huán)。
while循環(huán)的例子如下所示:
i = 0;
while (i != 10) {
 trace(i);
 i++;
}
while循環(huán)看起來似乎要比for循環(huán)簡單一些,從結(jié)構(gòu)上看甚至與if語句還有一些相似。只要while后面括號中的條件成立,循環(huán)就會一直進行下去,所以在while循環(huán)體中需要有改變條件的語句,以使條件最終能夠為false,完成循環(huán),如上例中的i++。
與while循環(huán)相似的是do…while循環(huán),如下所示:
i = 0;
do {
 trace(i);
 i++;
} while (i != 10);
除了測試條件的位置不同,while循環(huán)和do…while循環(huán)幾乎是一樣的。while循環(huán)在循環(huán)體之前測試條件,do…while循環(huán)在循環(huán)體之后測試條件,所以do…while循環(huán)至少要執(zhí)行一次,而while循環(huán)有可能一次也不執(zhí)行。
3.跳出循環(huán)
所有的循環(huán)結(jié)構(gòu)都可以使用兩個命令改變循環(huán)的執(zhí)行流程,一個命令是break,另一個命令是continue。break命令終止循環(huán),并跳到循環(huán)結(jié)構(gòu)后面的語句處執(zhí)行;continue命令終止本輪循環(huán)但不跳出循環(huán),進而執(zhí)行下一輪循環(huán)。
使用break和continue的例子都比較復雜,另外,還有一種特殊的for…in循環(huán)結(jié)構(gòu),在用到它們的時候我們再詳細講解。
3.4.6  函數(shù)
到現(xiàn)在為止,我們都是將腳本放在影片的第1幀中。如果程序相當復雜,再放在同一幀中就使腳本顯得太龐大了。
函數(shù)使你可以組織需重用的代碼,并放在時間軸中,例如:
function myFunction(myNum) {
 var newNum = myNum+5;
 return newNum;
}
函數(shù)以關(guān)鍵字function開頭,function后面是函數(shù)名。與變量名相似,你可以指定自己的函數(shù)名,最好將函數(shù)名取得有意義一些。
函數(shù)名后面的括號容納該函數(shù)的參數(shù),所謂參數(shù)也是一個變量,它的值在調(diào)用該函數(shù)時予以指定。一個函數(shù)可以有若干參數(shù),也可以沒有參數(shù)。無論有沒有參數(shù),函數(shù)名后都應(yīng)緊跟一對括號。
大括號中的部分是函數(shù)體,在函數(shù)體中創(chuàng)建了一個局部變量newNum,將myNum加5的結(jié)果設(shè)置為newNum的值。如果你將10作為參數(shù)傳遞給該函數(shù),newNum的值就是15。
return命令僅用于函數(shù)中,使用return結(jié)束一個函數(shù)并返回函數(shù)值。此處,newNum是用return命令返回的函數(shù)值。
要使用函數(shù),就需要調(diào)用它,如下所示:
var a = myFunction(7);
該語句創(chuàng)建一個新的局部變量a,將7作為參數(shù)調(diào)用函數(shù)myFunction,并將函數(shù)返回的結(jié)果作為變量a的值。
被調(diào)用的函數(shù)開始運行,創(chuàng)建一個局部變量myNum,將7作為myNum的值,然后執(zhí)行函數(shù)體內(nèi)的代碼,使用return命令將newNum的值12返回給函數(shù)的調(diào)用者。這時,a的值變?yōu)?2。
函數(shù)最大的作用體現(xiàn)在它可以重復使用。如下所示的3行代碼產(chǎn)生3個不同的結(jié)果:
trace(myFunction(3));
trace(myFunction(6));
trace(myFunction(8));
運行以上代碼,你將得到結(jié)果8、11和13。
使用函數(shù)還有一個好處就是可以只改變函數(shù)中的一處,從而影響所有調(diào)用該函數(shù)的命令。例如,將函數(shù)myFunction中的var newNum = myNum+5改成var newNum = myNum+7,上面3個調(diào)用該函數(shù)的命令的結(jié)果將變成10、13和15
3.4.7  點語法
ActionScript中一個很重要的概念是點語法。點語法也是很多面向?qū)ο蟮木幊陶Z言中用來組織對象和函數(shù)的方法。
假設(shè)你想求一個數(shù)的絕對值,F(xiàn)lash中有一個內(nèi)置的絕對值函數(shù),它包含在ActionScript的“對象”/“核心”/“Math”/“方法”中。要使用絕對值函數(shù),首先要使用對象名,即Math,然后是方法名abs,它們之間用符號“.”隔開,具體表示方法如下所示:
var a = Math.abs(-7);
點語法的另一個用途是指定影片剪輯的屬性。如下面的語句將影片剪輯myMC的_alpha(透明度)屬性設(shè)置為50%:
myMC._alpha = 50;
你還可以在影片剪輯中使用點語法定位根(root)中的一個全局變量。如果你在主時間軸中創(chuàng)建了一個全局變量globelVar,而要在影片剪輯中使用這個全局變量,可以使用如下的語句:
trace(_root.globleVar);
如果你現(xiàn)在對對象、影片剪輯屬性、層級之類的概念還不熟悉,不用著急,在以后的內(nèi)容中我們將對它們進行更深入的講解。
3.4.8  注釋
我們可以在Flash的動作面板中添加注釋,注釋就是程序中并不參與執(zhí)行的那些代碼。它可以用來提醒你某些代碼的作用,方便你組織和編寫腳本。一個注釋的例子如下所示:
// 將影片剪輯myMC的透明度設(shè)置為50%
myMC._alpha = 50;
該例的第1行是注釋,注釋以雙斜線//開頭,在//后面你可以輸入任意的文本和符號,F(xiàn)lash會自動將注釋部分用灰色標示。
上例是將注釋專門放在一行中,你也可以將注釋放在一行代碼的后面,如下所示:
myMC._alpha = 50;     // 將影片剪輯myMC的透明度設(shè)置為50%
只要使用//符號,F(xiàn)lash就會忽略它后面的部分。
3.5  調(diào)試腳本
無論在編寫程序時有多么細心,每個程序員都避免不了要調(diào)試程序。要學好ActionScript,你就得熟練掌握調(diào)試程序的方法。在Flash MX中調(diào)試程序有3種方法:邏輯推斷、向輸出窗口發(fā)送信息和使用腳本調(diào)試器。
3.5.1  邏輯推斷
許多程序錯誤其實很簡單,也很容易解決,并不需要專門的調(diào)試工具。當程序出現(xiàn)錯誤時,你應(yīng)對錯誤出現(xiàn)在哪里有一個大致的把握。
就算你不知道問題出在哪里,但通過細心閱讀代碼,你也有可能找到它。你可以思考一下,你要實現(xiàn)的效果是什么?現(xiàn)在的效果與你的設(shè)想有多大差距?是什么原因造成了這種差距?修改哪些部分有望改正這種錯誤?經(jīng)過反復思考、修改和調(diào)試,你對程序的理解就會不斷加深,你的程序也會越來越趨于正確。
沒有人比你更了解你自己的程序,所以對你來說,你編寫的程序最先宜采用邏輯推斷的方法進行調(diào)試。還有一些錯誤或漏洞隱藏得比較深,這就需要借助于調(diào)試工具。
3.5.2  輸出窗口
輸出窗口是一個簡單而實用的調(diào)試工具,在程序中可以使用trace命令將特定的信息發(fā)送到輸出窗口中,這些信息可以幫助你了解代碼的運行情況。
前面我們已經(jīng)介紹過輸出窗口,這里就不再贅述了。
3.5.3  調(diào)試器
調(diào)試器是一個更專業(yè)的調(diào)試工具,它是Flash MX中的一個窗口,通過調(diào)試器可以查看影片中的各種數(shù)據(jù)以及ActionScript代碼的運行情況。
選擇“控制”→“調(diào)試影片”命令,或按快捷鍵Ctrl+Shift+Enter,開始調(diào)試影片。與測試影片不同的是,調(diào)試影片時多了一個調(diào)試器窗口,如圖3-4所示。


圖3-4  調(diào)試器窗口
調(diào)試器窗口中包含很多窗格,在左邊的窗格中可以檢查Flash影片中不同類型的對象,右邊的窗格顯示影片中所有的ActionScript。
在調(diào)試器窗口中可以設(shè)置斷點,斷點即是為某行代碼添加的一個標記,當調(diào)試影片時,影片會自動在斷點處停止,允許你查看當前包括變量值在內(nèi)的的影片狀態(tài)。使用斷點可以使你逐行地執(zhí)行代碼,對每行代碼的運行結(jié)果進行觀察和分析。
初學ActionScript的時候,你可能并不需要使用調(diào)試器;但是當你成長為一名經(jīng)驗豐富的程序員時,你就會發(fā)現(xiàn)它對你是非常有用的。

相關(guān)文章

最新評論