版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1FlashActionScript3.0
重慶師范大學(xué)計(jì)算機(jī)與信息學(xué)院
2010級(jí)計(jì)算機(jī)專業(yè)教案
2013年6月(舊內(nèi)容全部修改完成)
戴政國講授12第一篇AS基礎(chǔ)23一、代碼框的設(shè)置選定時(shí)間軸上的關(guān)鍵幀,按F9鍵彈出代碼框。單擊代碼框右上角上的屬性圖標(biāo),可以彈出屬性菜單,如下圖所示:1、導(dǎo)入腳本:可以把一個(gè)as文件內(nèi)容導(dǎo)入到代碼框中。2、導(dǎo)出腳本:可以把代碼框中的腳本導(dǎo)出為as文件。3、行號(hào):在代碼框中顯示行號(hào),便于查看和閱讀代碼344、自動(dòng)換行:當(dāng)代碼超過代碼框?qū)挾葧r(shí)自動(dòng)換行。語法檢查自動(dòng)套用格式顯示代碼提示插入目標(biāo)路徑尋找將新項(xiàng)目添加到腳本中顯示和隱藏工具箱工具箱455、首選項(xiàng)(ctrl+U):彈出首選項(xiàng)對話框。5667788二、常用術(shù)語1、對象對象是屬性和方法的集合。例如按鈕、影片剪輯、圖形元件等。對象類型:自定義對象和內(nèi)置對象。內(nèi)置對象在語言中預(yù)先定義了,可以直接拿來使用。自定義對象通過AS腳本指定,通常為自定義類,其屬性和方法可以由用戶設(shè)定。2、實(shí)例實(shí)例一般由類的構(gòu)造函數(shù)創(chuàng)建,屬于某個(gè)類的對象。類的每個(gè)實(shí)例均包含了該類的所有屬性和方法。9實(shí)例名稱是腳本中用來表示影片剪輯實(shí)例和按鈕實(shí)例等對象的唯一名稱,相當(dāng)于對象的name,可以在對象的屬性框里指定實(shí)例名稱。在下圖中,在舞臺(tái)上添加了一個(gè)影片剪輯,然后在影片剪輯的屬性框里指定實(shí)例名稱.91010取實(shí)例名稱先選定對象,再取實(shí)例名稱11113、屬性屬性是對象的特性。例如,對象的位置、大小和顏色等都是對象的屬性。4、方法(方法函數(shù))方法或者方法函數(shù)是類的關(guān)聯(lián)函數(shù)。例如play()方法函數(shù)和stop()方法函數(shù)是movieClip類的內(nèi)置方法函數(shù),它指定了影片剪輯內(nèi)部的動(dòng)畫處于放映狀態(tài)還是處于停止?fàn)顟B(tài)。5、事件事件是在SWF文件播放時(shí)發(fā)生的動(dòng)作,多半與鼠標(biāo)操作有關(guān),例如單擊、雙擊、移動(dòng)等。12as實(shí)作1:事件與方法函數(shù)文件名:學(xué)號(hào)姓名as實(shí)作1_事件與方法函數(shù).exe溫馨提示:在此實(shí)驗(yàn)做完以后要用屏幕記錄器記錄和說明此實(shí)驗(yàn)的制作過程,特別是每句代碼的意思。要交FLA和EXE文件。實(shí)驗(yàn)步驟和要求:(1)新建一個(gè)AS3.0的fla文檔,然后再新建一個(gè)影片剪輯【簡單動(dòng)畫】。在新建的影片剪輯里做一個(gè)簡單的動(dòng)畫,例如一個(gè)橢圓從左到右地運(yùn)動(dòng),效果請看下圖。1213131414151516(2)給影片剪輯對象取實(shí)例名稱為:my_mc設(shè)置方式請看上圖。(3)添加兩個(gè)按鈕掛在主時(shí)間軸圖層1的第一幀上,放大按鈕、調(diào)整好位置,取實(shí)例名稱分別為:stop_btn和play_btn161717181819(4)在主時(shí)間軸上添加圖層2,在圖層2的第一幀上添加代碼,代碼如下:1920206、動(dòng)作在播放SWF文件時(shí)為完成某些任務(wù)所執(zhí)行的語句。7、數(shù)據(jù)類型數(shù)據(jù)類型描述變量的信息種類。在as3.0動(dòng)作腳本中數(shù)據(jù)類型主要分為基元數(shù)據(jù)類型(原始數(shù)據(jù)類)和核心類數(shù)據(jù)(復(fù)雜數(shù)據(jù)類型)類型。AS3.0中基元數(shù)據(jù)類型包括:
Boolean、int、uint、Number、String、Null、和void。21AS3.0核心類還定義下列復(fù)雜數(shù)據(jù)類型:Object、Array、Date、Error、Function、RegExp、XML和XMLList。注:AS3.0和AS2.0在數(shù)據(jù)類型中有差異。例如在AS2.0中有MovieClip類等。其實(shí)每個(gè)類都是一種數(shù)據(jù)類型,都可以把類名當(dāng)成數(shù)據(jù)類型來使用。后面要詳細(xì)講解數(shù)據(jù)類型。8、變量變量是保存數(shù)據(jù)的存貯空間,AS3.0要求變量先定義后使用,否則會(huì)報(bào)錯(cuò),變量定義格式:212222var變量:數(shù)據(jù)類型;var變量:數(shù)據(jù)類型=數(shù)值;varxx:Number=15;//定義數(shù)據(jù)類型與賦值同時(shí)進(jìn)行varxx=15;//雖然xx變量沒有指定數(shù)據(jù)類型,但用賦值的方法指定了數(shù)據(jù)類型,在AS3.0中可使用。var只定義變量,但不能確定數(shù)據(jù)類型。下面還有兩種定義變量和賦值的方式:varxx;xx=22;//通過賦值的方法來確定數(shù)據(jù)類型23varyy:int;yy=11;//先確定數(shù)據(jù)類型再賦值下面為變量定義和賦值時(shí)常見形式和錯(cuò)誤:vari;//寫法正確,只聲明了變量,但未指定變量類型。vari:*;//寫法正確,意思同上。Vari;//寫法錯(cuò)誤,因?yàn)閂ar錯(cuò)了。vari:int;//寫法正確,指定了變量和類型。vari:int=2;//寫法正確i;//寫法錯(cuò)誤,不能這樣定義變量2324i=1;//用法錯(cuò)誤,變量先定義再賦值。vari:int=“hello”;//錯(cuò)!定義的變量類型與賦值數(shù)據(jù)類型不對。AS3.0支持同時(shí)聲明多個(gè)變量。vara:int,b:uint,c:String,d:Boolean=true;變量和常量的命名規(guī)則1)命名規(guī)則必須遵守標(biāo)識(shí)符命名規(guī)則。2)命名不能使用關(guān)鍵字和AS的保留字。3)定義的變量和常量不能重名。2425變量命名的注意事項(xiàng):1)使用的英語單詞時(shí)要注意與變量或者常量的意思接近,這樣好記憶。2)當(dāng)變量名用幾個(gè)英文字詞組成時(shí)最好第一個(gè)詞小寫,以后每個(gè)獨(dú)立字詞的第一個(gè)字母都大寫(這是標(biāo)識(shí)符命名規(guī)則)。3)在變量名能夠清楚表達(dá)意思時(shí)越短越好。25269、標(biāo)識(shí)符用于表示變量、屬性、函數(shù)和方法(也稱為方法函數(shù))的名稱。標(biāo)識(shí)符命名規(guī)則:規(guī)則一:標(biāo)識(shí)符的第一個(gè)字母必須是字母、下劃線和$符,其后的字符可以是字母、下劃線、$符和數(shù)字,要區(qū)分大小寫。Varabc:int;//Var錯(cuò),這是初學(xué)者的常見錯(cuò)誤varabc:int;//var正確2627varabc:Number;varAbc:Number;varABc:Number;varABC:Number;varaBc:Number;varabC:Number;以上定義的6個(gè)變量名中有大小寫之分,結(jié)果定義了6個(gè)不同的變量。2728規(guī)則二:當(dāng)標(biāo)識(shí)符由幾個(gè)英文字詞組成時(shí),第一個(gè)字詞的字母全部小寫,以后每個(gè)英文字詞的第一個(gè)字母都要大寫。10、常數(shù)和常量常數(shù)沒有名稱,直接使用。而常量有名稱,只是常量中的內(nèi)容不變。一般書中常數(shù)和常量沒有區(qū)分。在AS3.0中,常量定義:const常量名:數(shù)據(jù)類型;const常量名:數(shù)據(jù)類型=值;282929undefined表示未定義常量,沒有定義或者沒有賦值的變量內(nèi)容可用此常數(shù)來表示。Math對象中的部分常量,使用時(shí)前面都要加Math.作為前綴詞,表示是Math類中的常數(shù):常量說明Math.E表示自然數(shù)eMath.LN10表示以10為底的自然對數(shù)的
值2.30Math.LN2表示以2為底的自然對數(shù)的
值0.693Math.PI表示圓周率π,3.1415930Math.SQRT1_2表示1/2的平方根0.707Math.SQRT2表示2的平方根1.414303131AS實(shí)作2:常量驗(yàn)證實(shí)驗(yàn)文件名:學(xué)號(hào)姓名AS實(shí)作2_常量驗(yàn)證實(shí)驗(yàn).fla在圖層1的第一幀上添加以下代碼,然后Ctrl+回車,看輸出結(jié)果。trace()函數(shù)只在輸出面板上顯示內(nèi)容323211、關(guān)鍵字有特殊含義的保留字。這類保留字已經(jīng)被系統(tǒng)使用,在代碼框里用藍(lán)色顯示。用戶不能把關(guān)鍵字再次當(dāng)作標(biāo)識(shí)符來使用,即最好不要用關(guān)鍵字作為變量名和函數(shù)名等。12、運(yùn)算符對于不同類型的數(shù)據(jù)有不同的運(yùn)算符。運(yùn)算符操作的量稱為操作數(shù)。13、表達(dá)式由運(yùn)算符和操作數(shù)兩部分組成。不同類型的數(shù)據(jù)一般有不同的表達(dá)式。333314、函數(shù)函數(shù)是可重復(fù)使用的一組代碼,大部分有返回值,有些沒有返回值。當(dāng)函數(shù)有返回值時(shí)要在函數(shù)后面注明返回值的數(shù)據(jù)類型,如果函數(shù)沒有返回值,則數(shù)據(jù)類型為void。函數(shù)類型:內(nèi)置函數(shù)和自定義函數(shù)內(nèi)置函數(shù)是Flash自帶函數(shù),一般在Flash中的“頂級(jí)”函數(shù)可以直接使用。而屬于對象的函數(shù)稱為方法或者方法函數(shù),不屬于對象函數(shù)稱作系統(tǒng)函數(shù),用戶可以在AS代碼框里歸類中尋到系統(tǒng)函數(shù)。34(1)內(nèi)置函數(shù)如果調(diào)用函數(shù)只需要給函數(shù)傳遞參數(shù)即可.isNaN(somevar);//函數(shù)返回值為Boolean。此函數(shù)測試somevar變量是不是非數(shù)字,是非數(shù)字返回true,否則返回false。例如:(請自己調(diào)試一下)varvar1:int=15;varvar2:Number=20;varvar3=123;varvar4="abc";trace(isNaN(var1),isNaN(var2),isNaN(var3),isNaN(var4));//輸出結(jié)果:false,false,false,true3435getTimer();//返回自SWF文件開始播放后已經(jīng)放映過的毫秒數(shù),函數(shù)返回值為Number。
AS實(shí)作3:檢測播放時(shí)間文件名:學(xué)號(hào)姓名AS實(shí)作3_檢測播放時(shí)間要求和步驟:1)在圖層1上做一個(gè)50幀的簡單動(dòng)畫,矩形從左到右地運(yùn)動(dòng)。2)在圖層2的40幀處掛代碼:trace(getTimer());//函數(shù)運(yùn)行要花費(fèi)時(shí)間,結(jié)果每秒12幀的播放速度要稍微慢一些。353636373738Date類也是頂級(jí)類,它里面的方法函數(shù)可以直接使用。在圖層1上做一個(gè)50幀的簡單動(dòng)畫,在圖層2的第一幀掛上以下代碼提取日期和時(shí)間:AS實(shí)作4:提取電腦時(shí)鐘里的日期和時(shí)間文件名:學(xué)號(hào)姓名AS實(shí)作4_提取電腦時(shí)鐘里的日期和時(shí)間varmyDate:Date=newDate();//Date類構(gòu)造函數(shù)newDate()把電腦時(shí)鐘里的日期和時(shí)間復(fù)制到myDate變量中。varmyHours:Number=myDate.getHours();varmyMinutes:Number=myDate.getMinutes();varmySconds:Number=myDate.getSeconds();3839varmyMonth:Number=myDate.getMonth();//取月份,0~11,一月份為0varmydate:Number=myDate.getDate();//取日期(天數(shù)),1~31天varmyDay:Number=myDate.getDay();//取星期幾,0~6,星期天為0varmyYear:Number=myDate.getFullYear();//取四位年數(shù)trace(myDate);trace(myYear,myMonth+1,mydate,myDay,myHours,myMinutes,mySconds);39404041每過50幀運(yùn)行一次代碼,提取一次日期和時(shí)間。4142有時(shí)我們不知道函數(shù)返回的數(shù)據(jù)類型,可以在代碼框里選定函數(shù)名后按F1鍵,彈出幫助框,可使用幫助尋找函數(shù)的返回?cái)?shù)據(jù)類型。(2)自定義函數(shù):AS3.0和AS2.0代碼中通用的自定義函數(shù)格式:function函數(shù)名(參數(shù)表)[:返回類型]{函數(shù)內(nèi)部代碼[return返回值]}當(dāng)函數(shù)無返回值時(shí),則返回類型為void。4243AS1.0和AS2.0代碼中通用的自定義函數(shù)格式:函數(shù)名=function(參數(shù)表)[:返回類型]{函數(shù)內(nèi)部代碼[return返回值]}當(dāng)函數(shù)無返回值時(shí),則返回類型為void。AS實(shí)作5:函數(shù)定義與參數(shù)文件名:學(xué)號(hào)姓名AS實(shí)作5_函數(shù)定義與參數(shù).fla4344functioncircle(radius:Number):Number{//radius是函數(shù)的形參,數(shù)據(jù)類型為Number,//函數(shù)返回值的數(shù)據(jù)類型也是Number.varaa:Number=radius*radius*Math.PI;returnaa;//返回aa,即aa作為函數(shù)的返回值}trace(circle(5));//常數(shù)5是實(shí)參varbb:Number=5;trace(circle(bb));//變量bb是實(shí)參44454546AS實(shí)作6:在AS2.0中定義函數(shù)文件名:學(xué)號(hào)姓名AS實(shí)作5_在AS2.0中定義函數(shù)要求和步驟:1)把【AS實(shí)作5】另存為【AS實(shí)作6】,并把AS3.0版本改成AS2.0。2)在圖層2的第一幀上改寫代碼:circle=function(radius:Number):Number{//radius是函數(shù)的形參,數(shù)據(jù)類型為Number,//函數(shù)返回值的數(shù)據(jù)類型也是Number.4647varaa:Number=radius*radius*Math.PI;returnaa;//返回aa,即aa作為函數(shù)的返回值}trace(circle(5));//常數(shù)5是實(shí)參varbb:Number=5;trace(circle(bb));//變量bb是實(shí)參4748類構(gòu)造函數(shù)用于創(chuàng)造或者復(fù)制一個(gè)類的實(shí)例,當(dāng)要?jiǎng)?chuàng)建一個(gè)對象實(shí)例時(shí)一般可以使用類的構(gòu)造函數(shù)來創(chuàng)建。例如要?jiǎng)?chuàng)建一個(gè)Array數(shù)組對象,可以使用Array()類構(gòu)造函數(shù),其代碼如下:varmyDate:Date=newDate();varmyArray:Array=newArray();varmyObj:Object=newObject();類的構(gòu)造函數(shù)格式:new類名();484949用類構(gòu)造函數(shù)創(chuàng)建一個(gè)實(shí)例的通用格式:var變量名:類名=new類名();在變量中存放著由類構(gòu)造函數(shù)創(chuàng)建的實(shí)例。類的實(shí)例在數(shù)據(jù)和結(jié)構(gòu)上與類完全相同,實(shí)例是類的復(fù)制品。類不能直接使用,它只是個(gè)定義體,必須通過類的實(shí)例才能被程序處理和使用。AS實(shí)作7:類的構(gòu)造函數(shù)實(shí)驗(yàn)文件名:學(xué)號(hào)姓名AS實(shí)作7_類的構(gòu)造函數(shù)實(shí)驗(yàn).fla505051注釋:數(shù)組名.push(元素)可以把【元素】添加到【數(shù)組】的最后面。在類中還有一種動(dòng)態(tài)類,實(shí)例的【屬性】數(shù)量可以任意添加不受限制。例如Object類就是一個(gè)動(dòng)態(tài)類,可以在它的實(shí)例里添加自己需要的屬性種類。AS實(shí)作8:在Object動(dòng)態(tài)類實(shí)例中添加屬性文件名:學(xué)號(hào)姓名AS實(shí)作8_在Object動(dòng)態(tài)類實(shí)例中添加屬性.exe要求錄屏說明515252535315、參數(shù)參數(shù)用于向函數(shù)傳遞值的占位符。在函數(shù)內(nèi)部定義的參數(shù)叫形參(形式參數(shù)),在使用函數(shù)時(shí)在形參位置處填寫的常數(shù)或者變量稱為實(shí)參(實(shí)際參數(shù))。例如:定義函數(shù)時(shí):function函數(shù)名(形式參數(shù)表)[:函數(shù)返回值的數(shù)據(jù)類型]{函數(shù)代碼};調(diào)用函數(shù)時(shí):函數(shù)名(實(shí)際參數(shù)表);5416、包包是存放一個(gè)或者多個(gè)類文件的目錄,包名為fla文件所在目錄到as文件存放目錄之間的相對路徑。例如,fla文件存放在d:\flash目錄下,而as文件存放在d:\flash\aa\bb\daizg,那么包名為:aa.bb.daizg在自定義類中沒有包名時(shí),說明fla文件與as文件放在一起,即放在同一目錄下。在fla文件中引用自定義類時(shí),要用以下語句導(dǎo)入引用自定義類:import包名.as自定義類文件名;5455例如,包名為aa.bb.daizg、自定義類文件名為Circle.as時(shí),在fla文件中導(dǎo)入引用自定義類的語句為:importaa.bb.daizg.Circle;如果fla文件和自定義類as文件放在一起時(shí),在導(dǎo)入引用自定義類時(shí)沒有包名,用以下語句:importas自定義類文件名;具體來講:importCircle;555617、類類可以分為自定義類和文件類。自定義類當(dāng)一般類來使用,在fla文件代碼框里用import語句導(dǎo)入,再用類的構(gòu)造函數(shù)創(chuàng)建一個(gè)實(shí)例。而文件類一般直接掛在舞臺(tái)的屬性框里,不在fla文件代碼框里導(dǎo)入,也不使用其構(gòu)造函數(shù)。文件類主要用來測試類代碼用的,或者用AS文件直接產(chǎn)生動(dòng)畫效果,不要代碼框里寫代碼。自定義類可以用來創(chuàng)建和定義新對象的數(shù)據(jù)類型。在定義類時(shí)要求as文件名與類名和構(gòu)造函數(shù)名同名,大小寫一樣,否則會(huì)報(bào)錯(cuò)。例如把圓的面積計(jì)算寫成自定義類。5657AS實(shí)作9:自定義類、屬性和方法函數(shù)文件名:學(xué)號(hào)姓名AS實(shí)作9_自定義類、屬性和方法函數(shù)要求和步驟:(1)在指定目錄下(例如d:\或者e:\my)建立一個(gè)as文件,保存為Circle.as文件。注意文件名字母的大小寫。(2)在as文件中寫以下代碼:package{//沒有包名,說明fla文件與as文件放在一起的publicclassCircle{5758//定義Circle類,publicclass是固定搭配。
publicvarradius:Number;//定義半徑。在自定義類中定義的全局變量今后將在實(shí)例對象里可作為其屬性來使用publicvarcircumference:Number;//定義周長,全局變量publicvars:Number;//定義圓面積,全局變量publicfunctionCircle(r:Number=1):void{s=Math.PI*r*r;circumference=2*Math.PI*r;5859radius=r;}//下面定義方法函數(shù)用于計(jì)算圓面積publicfunctionarea(R:Number):Number{returnMath.PI*R*R; }}}(3)在Circle.as文件同一目錄下建立一個(gè)fla文件,取名為【AS實(shí)作9:自定義類】,并在圖層1的第一幀上寫代碼:importCircle;5960varaa:Circle=newCircle(5);trace("圓的半徑為:",aa.radius);trace("圓的周長為:",aa.circumference);trace("圓的面積為:",aa.s);trace("用方法函數(shù)計(jì)算圓面積:",aa.area(5));//ctrl+enter命令以后,顯示輸出結(jié)果:6061小結(jié):(1)在自定義類中,package后面沒有包名,說明自定義類的as文件與fla文件放在同一個(gè)目錄下。如果有包名,說明fla文件與as文件不在不同的目錄下,包名是fla文件到as文件的相對路徑。一般as文件放在fla文件所在目錄的下級(jí)子目錄中。(2)在定義類中定義類名時(shí),必須使用:publicclass類名{類代碼}(3)在自定義類模塊里定義的全局變量可以成為實(shí)例變量對象的屬性來引用。如果不是全局變量不能當(dāng)成實(shí)例對象的屬性來引用。6162(4)在自定義類中定義的全局函數(shù)將成為實(shí)例對象的方法函數(shù)來使用。如果自定義類的as文件與fla文件不在同一目錄下,那么會(huì)有包名,并且在用import語句導(dǎo)入自定義類時(shí)也要添加包名路徑。AS實(shí)作10:包名的意義和包名對自定義類引用的影響文件名:學(xué)號(hào)姓名AS實(shí)作10_包名的意義和包名對自定義類引用的影響6263我們設(shè)想,如果as自定義類文件放在fla文件所在目錄的下級(jí)子目錄aa\bb\daizg下面,則包名為:aa.bb.daizg例如,fla文件放在d:\下,那么我們可以在d盤根目錄下建立一個(gè)aa目錄(文件夾),又在aa目錄建立一個(gè)bb目錄,在bb目錄下建立daizg目錄,最后在daizg目錄建立自定義類的as文件。要求與步驟:(1)用【我的電腦】建立目錄結(jié)構(gòu):d:\aa\bb\daizg6364(2)把上個(gè)實(shí)驗(yàn)的fla文件另存為到d:\下。(3)把Circle.as文件另存為到daizg目錄下。(4)把fla文件中的第一句代碼修改成:importaa.bb.daizg.Circle;其它代碼不變。(5)把Circle.as文件中的第一句代碼修改如下:packageaa.bb.daizg{Ctrl+Enter,測試影片輸出顯示結(jié)果正確。646565三、基本語法1、點(diǎn)點(diǎn)(.)表示“的”的關(guān)系,表示了一種隸屬關(guān)系或者屬于關(guān)系。例如:桌面.書桌面.書.字My_mc.x;//在AS2.0中,橫坐標(biāo)為_xMy_mc.play();66662、分號(hào)語句的結(jié)束符。在每句代碼的后面都應(yīng)該打分號(hào)。3、大括號(hào)在事件處理函數(shù)、類定義和一般函數(shù)定義時(shí),要用大括號(hào)組合在一起形成代碼塊,即大括號(hào)里的代碼是函數(shù)或者類的定義體.//函數(shù)functionarea(side:Number):Number{代碼;}67//類publicclasscircle(radius){代碼;}classsquare(side){代碼;}沒有public
class定義的類只能在包中使用,不能用于包外創(chuàng)建實(shí)例。6768684、小括號(hào)在函數(shù)定義時(shí),要將所有形式參數(shù)都放在小括號(hào)中,以下函數(shù)定義法在AS2.0和AS3.0里都能使用。functionmyfuction(name,age,reader){//代碼}在以上函數(shù)小括號(hào)中,name、age、reader三個(gè)參數(shù)都是形式參數(shù),簡稱形參。在函數(shù)調(diào)用時(shí),也要在小括號(hào)里填寫參數(shù),這些參數(shù)又稱為實(shí)際參數(shù),簡稱實(shí)參。69695、注釋//注釋說明字符串,只用于一行./*注釋一個(gè)片區(qū),用于數(shù)行或者一個(gè)片區(qū).*/6、分區(qū)大小寫AS動(dòng)作腳本代碼要區(qū)分大小寫。對于專業(yè)程序開發(fā)者來講,這是非常幸運(yùn)的事情,但對于平時(shí)不嚴(yán)格要求自己的業(yè)余編程者來講是件不幸的災(zāi)難。大家一定要牢記AS代碼要區(qū)分大小寫。7070四、數(shù)據(jù)類型進(jìn)階1、字符串類型String常量字符串用定界符引起來。定界符有雙引號(hào)和單引號(hào)。varmystring="L7";vargreeting="WELCOME,"+'CHILD';如果在字符串中要表示雙引號(hào),要用轉(zhuǎn)義符\”varMYSTR="\"WAVE\"";在變量MYSTR中保存了【“WAVE”】字符串。71
轉(zhuǎn)義符如下表所示:
轉(zhuǎn)義序列字符\b退格符\f換頁符\n換行符\r回車符\t制表符\”雙引號(hào)\’單引號(hào)\\反斜杠\000-\377以八進(jìn)制指定的字節(jié)\x00-\xFF以十六進(jìn)制指定的字節(jié)\u0000-\uFFFF以十六進(jìn)制指定的16位Unicode字符7172722、數(shù)字類型NumberNumber數(shù)據(jù)類型是雙精度浮點(diǎn)數(shù)。數(shù)字對象的最小值大約為5e-324,最大值大約為1.79e+308。用戶可以使用+、-、*、/、%(求模)、++(遞增)和--(遞減)等算術(shù)運(yùn)算符來處理數(shù)字,也可使用內(nèi)置的Math和Number類的方法來處理數(shù)字。例如:varaa:Number=Math.sqrt(100);trace(aa);//輸出結(jié)果10733、整數(shù)類型int有正整數(shù)和負(fù)整數(shù)。var變量名:int;例如:
varab:int;4、非負(fù)整數(shù)類型uint變量取值范圍包括0和正整數(shù)。如果給uint類型的變量賦值負(fù)數(shù),不報(bào)錯(cuò),但會(huì)出現(xiàn)數(shù)值錯(cuò)誤。var變量名:uint;737474例如:AS實(shí)作11:變量的取值范圍文件名:學(xué)號(hào)姓名AS實(shí)作11_變量的取值范圍
varcd:uint;varab,cd,ef:uint;varhj:int;ab=0;cd=1;ef=-1;hj=-175trace("ab="+String(ab)+"\n"+"cd="+cd+"\n"+"ef="+ef+"\n"+"hj="+hj);//String()函數(shù)將數(shù)值轉(zhuǎn)換成字符串//uint變量和int變量在字符串表示式中自動(dòng)轉(zhuǎn)換為字符串?dāng)?shù)字trace("*****************");//也可以用下句代碼輸出trace("ab=",ab,"\n","cd=",cd,"\n","ef=",ef,"\n","hj=",hj);757676775、布爾類型Boolean真值為true和false。當(dāng)true和false轉(zhuǎn)換成數(shù)值時(shí)會(huì)變成1和0。6、空值類型空值數(shù)據(jù)類型只有一個(gè)值,即null,它表示“沒有值”,也就是沒有任何數(shù)據(jù)。Null值可以用在以下場合中:指示變量尚未賦值。指示變量不再包含值。作為函數(shù)的返回值,指示函數(shù)沒有可以返回的值。作為函數(shù)的參數(shù),指示省略了一個(gè)參數(shù)。7778787、無返回?cái)?shù)據(jù)類型void用于函數(shù)無數(shù)據(jù)返回時(shí)。8、Object對象類型對象數(shù)據(jù)類型,是一種動(dòng)態(tài)類,可以隨意添加實(shí)例的屬性數(shù)量。例如:varuser:Object=newObject();="Irving";user.age=32;user.phone="555-1234";trace(,"\n",user.age,"\n",user.phone);7979在上例中,代碼可以改寫如下:varuser:Object=newObject(:"Irving“,user.age:32,user.phone:"555-1234“);trace(,"\n",user.age,"\n",user.phone);例如:也可以用大括弧對Object對象添加新屬性:varuser:Object;user={name:"Irving",age:32,phone:"555-1234"};//用大括弧添加Object對象的新屬性80//可以用以下代碼以上兩句代碼//varuser:Object={name:"Irving",age:32,phone:"555-1234"};trace(,"\n",user.age,"\n",user.phone);AS實(shí)作12:在Object對象上添加屬性值文件名:學(xué)號(hào)姓名AS實(shí)作12_在Object對象上添加屬性值將以下代碼掛在圖層1的第一幀上。808181varfirstObj:Object=newObject();firstObj.firstVar="helloworld";firstObj.secondVar=28;firstObj.thirdVar=newDate(1980,0,1);//1980年1月1日varsecondObj:Object={firstVar:"helloworld",secondVar:28,thirdVar:newDate(1980,0,1)};//在大括弧內(nèi)放置Object對象的屬性和屬性值trace("first對象輸出********");trace(firstObj.firstVar+"\n"+firstObj.secondVar);trace(firstObj.thirdVar);8282trace("second對象輸出********");trace(secondObj.firstVar+"\n"+secondObj.secondVar+"\n"+secondObj.thirdVar);8383注釋:1、GMT指格林尼治時(shí)間正8小時(shí)時(shí)區(qū),剛好就是北京時(shí)間。2、大括弧里可以放置Object常量,可以對某Object變量賦值。84數(shù)組是個(gè)容器,可以容納各種不同的內(nèi)容,將多種對象組合在一起。在編程過程中,為了儲(chǔ)存各個(gè)具有共同特性的變量,可使用數(shù)組作為存取工具。vararr1:Array;//定義了一個(gè)數(shù)組vararr2:Array=[];//定義了一個(gè)空數(shù)組vararr3:Array=newArray();//同上vararr4:Array=[1,2,3,4];//直接為數(shù)組賦值1,2,3,4、vararr5:Array=newArray(1,2,3,4);//意思同上8485vararr6:Array=newArray(5)//聲明長度為5的空數(shù)組,即有0~4個(gè)單元,但所有單元(元素)都為空。數(shù)組常用屬性和方法函數(shù):1)數(shù)組名.push(元素名);功能:把元素放在數(shù)組最后那個(gè)單元里。2)數(shù)組名.length;功能:輸出數(shù)組長度。3)數(shù)組名[i];功能:訪問i數(shù)組元素。4)數(shù)組名[i][j]:功能:訪問第i行和第j列的數(shù)組元素。858686for....in參考資料:for(variableIterantinobject){statement(s);}枚舉對象的屬性或數(shù)組中的元素。對象的方法不能由for..in動(dòng)作來枚舉。有些屬性不能由for..in動(dòng)作來枚舉。例如,不能枚舉影片剪輯屬性,例如x和y。在外部類文件中,和實(shí)例成員不同的是,靜態(tài)成員是不能枚舉的。for..in語句不會(huì)將相同的屬性名枚舉兩次。如果child對象和parent對象中都有同樣的屬性,則child用for..in語句枚舉屬性時(shí)忽略parent對象中的該屬性。8787示例:varmyObject:Object={firstName:"Tara",age:27,city:"SanFrancisco"};for(varpropinmyObject){trace("myObject."+prop+"="+myObject[prop]);}輸出:
myObject.firstName=TaramyObject.age=27myObject.city=SanFrancisco8888示例:varmyArray:Array=newArray("one","two","three");for(varindexinmyArray)trace("myArray["+index+"]="+myArray[index]);輸出:myArray[2]=threemyArray[1]=twomyArray[0]=one8989小結(jié):1、數(shù)組的下標(biāo)是0、1、2、3。。。2、Object對象的下標(biāo)是它的屬性名。Object對象也可以看成是一種特殊數(shù)組,或者說數(shù)組由Object對象演變而來,數(shù)組單元坐標(biāo)相當(dāng)于Object對象的屬性名。3、可以在一維數(shù)組中把每一個(gè)單元設(shè)置成一個(gè)Object對象,變成數(shù)組對象,請看下張幻燈片。AS實(shí)作13:Object對象數(shù)組文件名:學(xué)號(hào)姓名AS實(shí)作13_Object對象數(shù)組9090varusersArr:Array=newArray();usersArr.push({姓名:"戴政國",性別:"男"});usersArr.push({姓名:"張先智",性別:"男"});usersArr.push({姓名:"江蕓",性別:"女"});usersArr.push({姓名:"王杰",性別:"女"});/*push方法將一個(gè)或多個(gè)元素添加到數(shù)組的結(jié)尾。用{對象屬性1:屬性值,對象屬性2:屬性值,….}形式給Object對象賦值。注意:數(shù)組中每個(gè)元素單元都是一個(gè)Objict對象。將常數(shù)、變量或者對象等組織到數(shù)組中的好處是:可以更方便地循環(huán)訪問變量,如以下步驟中所示。*/9191vari:Number;for(i=0;i<usersArr.length;i++){trace(usersArr[i].姓名,usersArr[i].性別);}Ctrl+回車測試影片,“輸出”面板上將出現(xiàn)以下結(jié)果:92929393數(shù)組單元姓名性別。。。。。。0戴政國男
1張先智男
2江蕓女
3王杰女
對象數(shù)組的結(jié)構(gòu)像個(gè)二維表,可根據(jù)需要決定列數(shù)(對象屬性)。我們可以把Object對象的數(shù)組結(jié)構(gòu)看成是一個(gè)動(dòng)態(tài)數(shù)組,需要多少對象屬性可以直接添加,數(shù)組列數(shù)將自動(dòng)調(diào)整。數(shù)組Object對象94例:可以在Object對象后面可隨意添加屬性和屬性值。AS實(shí)作14:在Object對象數(shù)組中添加Object對象屬性文件名:學(xué)號(hào)姓名AS實(shí)作14_在Object對象數(shù)組中添加Object對象屬性949595varmyObj:Object={var1:"One",var2:"Two",var3:18,var4:1987};vari:String;for(iinmyObj){trace(i+":"+myObj[i]);}/*輸出以下結(jié)果:var1:Onevar2:Twovar3:18var4:1987*/9696trace("*****************************");myObj.大學(xué)名="重慶師范大學(xué)";myObj.學(xué)院名="計(jì)算機(jī)學(xué)院";myObj.年級(jí)='2011級(jí)';myObj.專業(yè)='電子商務(wù)';//雙引號(hào)和單引號(hào)都是字符串的定界符for(iinmyObj){trace(i+":"+myObj[i]);}//Object對象屬性名也能用漢字,但一般不用漢字。注釋:枚舉循環(huán)不按原對象屬性順序訪問和輸出,每次訪問輸出都不同,如下圖所示。979798再運(yùn)行一次,結(jié)果相同,但輸出順序不同989999資料:push(Array.push方法)publicpush(value:Object):Number將一個(gè)或多個(gè)元素添加到數(shù)組的結(jié)尾,并且push函數(shù)將返回該數(shù)組的新長度??捎眯裕篈ctionScript1.0、FlashPlayer5參數(shù)value:Object―要追加到數(shù)組中的一個(gè)或多個(gè)值。返回Number―表示新數(shù)組長度的一個(gè)整數(shù)。100示例下面的示例創(chuàng)建包含兩個(gè)元素的數(shù)組myPets_array,這兩個(gè)元素為cat和dog。第二行將兩個(gè)元素添加到數(shù)組。因?yàn)閜ush()方法返回?cái)?shù)組的新長度,所以最后一行中的trace()語句將myPets_array的新長度(4)發(fā)送到“輸出”面板。varmyPets_array:Array=newArray("cat","dog");varpushed:Number=myPets_array.push("bird","fish");trace(pushed);//輸出:4100101101//以上代碼可以改寫成:varmyPets_array:Array=newArray("cat","dog");myPets_array.push("bird","fish");//沒有賦值語句,則push()方法函數(shù)的返回值沒有用起來。varpushed:Number=myPets_array.length;//數(shù)組的length屬性里放置了數(shù)組的長度值。trace(pushed);//輸出:4102AS實(shí)作15:隨意決定數(shù)組對象中的屬性數(shù)量和屬性名文件名:學(xué)號(hào)姓名AS實(shí)作15_隨意決定數(shù)組對象中的屬性數(shù)量和屬性名/*在數(shù)組對象中,不要求所有對象的屬性個(gè)數(shù)一樣,也不要求屬性名稱一樣,可以隨意決定屬性的數(shù)量多少和屬性名稱。*/102103103varmyarr:Array=newArray();myarr[0]={單位:"重慶大學(xué)",姓名:"張三",性別:"男",年齡:30,電話:"6536666"};myarr[1]={單位:"南京大學(xué)",姓名:"李四",性別:"男",年齡:20};myarr.push({單位:"北京大學(xué)",姓名:"小王",性別:"女"});myarr[3]={姓名:"楊揚(yáng)",性別:"男"};myarr.push({炊具:"鐵鍋",食品:"大米"});104104vari:Number;for(i=0;i<myarr.length;i++){ trace("元素"+i+":"); for(varkinmyarr[i]){ trace(k+":"+myarr[i][k]); } trace("***************************");}105105106106二維數(shù)組。先創(chuàng)建了一個(gè)數(shù)組,然后在對每個(gè)單元(元素)賦值時(shí)采用數(shù)組方式賦值,那么便會(huì)成為二維數(shù)組。AS實(shí)作16:二維數(shù)組文件名:學(xué)號(hào)姓名AS實(shí)作16_二維數(shù)組varmyarr:Array=newArray();myarr.push(["重慶大學(xué)","張三","男",30,"6536666"]);myarr.push(["南京大學(xué)","李四","男",20]);myarr[2]=["北京大學(xué)","小王","女"];myarr[3]=["楊揚(yáng)","男"];107107myarr.push(["鐵鍋","大米"]);vari:int;vark:int;for(i=0;i<myarr.length;i++){trace("元素"+i+":");for(k=0;k<myarr[i].length;k++){trace("myarr["+i+"]["+k+"]="+myarr[i][k]);} trace("***************************");}108108109109數(shù)組01234。。。0重慶大學(xué)張三男306536666
1南京大學(xué)李四男20
2北京大學(xué)小王女
3楊揚(yáng)男
4鐵鍋大米
。。。
從下表中可以看出,二維數(shù)組也是動(dòng)態(tài)數(shù)組,用戶想要多長就多長,只需要賦值即可,不需要額外定義。11011010、void類型Void數(shù)據(jù)類型有一個(gè)值void,用來在函數(shù)定義中指示函數(shù)沒有返回值,如下例所示://創(chuàng)建返回類型為Void的函數(shù)
functiondisplayFromURL(url:String):Void{代碼}11、原始和復(fù)雜數(shù)據(jù)類型可以將所有不同的數(shù)據(jù)類型值劃分為兩個(gè)主要的類別:primitive
或complex。111111原始值(即原始數(shù)據(jù)類型)是ActionScript在最低抽象層存儲(chǔ)的值,這意味著對原始數(shù)據(jù)類型的操作比對復(fù)雜數(shù)據(jù)類型的操作往往會(huì)更快、更高效。原始值:Boolean、int、uint、Number、String。復(fù)雜值(或復(fù)雜數(shù)據(jù)類型)不是原始值,但它引用原始值。通常,我們稱之為引用數(shù)據(jù)類型。復(fù)雜值屬于Object數(shù)據(jù)類型,或者說是基于Object數(shù)據(jù)類型的一種數(shù)據(jù)類型。定義復(fù)雜值的集合的數(shù)據(jù)類型包括:Array、Date、Error、Function、RegExp、XML和XMLList。112112五、變量作用域和默認(rèn)值1、變量的作用域分類:全局變量和局部變量。類或者函數(shù)內(nèi)定義的變量為局部變量。而在函數(shù)或者類之外定義的變量為全局變量。全局變量在代碼的任何地方都可以訪問,而局部變量只能在函數(shù)內(nèi)或者類里訪問。在類中可以用public定義全局變量和全局函數(shù)。類中的全局變量可成為類實(shí)例的屬性,而類中的全局函數(shù)可成為類實(shí)例的方法函數(shù)。113AS實(shí)作17:變量的有效性文件名:學(xué)號(hào)姓名AS實(shí)作17_變量的有效性說明:本實(shí)驗(yàn)要用例1~例4,做完一個(gè)例子就用/**/注釋掉代碼,然后在下面再做下一個(gè)例子。四個(gè)例子都有圖層1的第一幀上寫代碼。113114114//例1vari:int=1;//i是全局變量functionTest(){trace(i);};Test();//輸出1,說明全局變量在函數(shù)內(nèi)有效。//例2functionTest(){vari:int=1;trace(“函數(shù)體內(nèi)訪問變量i:”+i);}115115Test();trace(“函數(shù)體外訪問變量i:”+i);//報(bào)錯(cuò)。在函數(shù)體內(nèi)定義的變量在函數(shù)體外無法訪問。//例子3vari:int=10;trace("函數(shù)使用前訪問變量i:"+i);functionTest(){vari:int=1;trace("函數(shù)體內(nèi)訪問變量i:"+i);}116116Test();trace("函數(shù)體使用后訪問變量i:"+i);由于在函數(shù)體內(nèi)重新定義了變量i,則在函數(shù)體外定義的變量i在函數(shù)體內(nèi)被屏蔽了。當(dāng)退出函數(shù)后在函數(shù)外定義的變量i又有效了。117117//例子4//注意i在循環(huán)體里定義的變量for(vari=1;i<5;i++){trace(“在循環(huán)體內(nèi)部輸出變量i:”+i);}trace(“在循環(huán)體外部輸出變量i:”+i);//說明在循環(huán)體內(nèi)部定義的變量在循環(huán)體外部同樣用效。118118在AS3.0中,在兩個(gè)循環(huán)中使用的循環(huán)變量名稱相同時(shí)會(huì)發(fā)生錯(cuò)誤,例如:for(vari=0;i<5;i++){代碼1}for(vari=0;i<8;i++){代碼2}這是由于在循環(huán)體里定義的循環(huán)變量在循環(huán)體外也是有效的,才導(dǎo)致了這種結(jié)果。119119在AS2.0中,要用以上方式定義全局變量:_global.變量名=值;不能在_global前加var變量定義前綴詞。例如:_global.myname=“dzg”;//正確var_global.myname=“dzg”;//錯(cuò)誤_global.counter=100;//聲明全局變量trace(counter);//訪問全局變量并顯示100120120functioncount():Void{for(varcounter:Number=0;counter<=2;counter++){//局部變量trace(counter);//訪問局部變量并顯示0,1,2}}count();trace(counter);//訪問全局變量并顯示100最后顯示結(jié)果:100,0,1,2,100121121AS實(shí)作18:全局變量與局部變量文件名:學(xué)號(hào)姓名AS實(shí)作18_全局變量與局部變量varcounter:Number=100;//通過賦值來決定變量類型trace(counter);//訪問全局變量并顯示100functioncount():Void{for(varcounter:Number=0;counter<=2;counter++){//局部變量122122trace(counter);//訪問局部變量并顯示0,1,2}}count();trace(counter);//訪問全局變量并顯示100最后顯示結(jié)果:100,0,1,2,1001231232、變量的默認(rèn)值在定義了變量以后不賦值時(shí)變量中有默認(rèn)值。我們可以編寫一個(gè)簡單的程序取得常用變量的默認(rèn)值。用AS3.0編寫代碼:AS實(shí)作19:變量的默認(rèn)值文件名:學(xué)號(hào)姓名AS實(shí)作19_變量的默認(rèn)值124varp:Boolean;trace("Boolean型變量的默認(rèn)值是:"+p);vari:int;trace("int型變量的默認(rèn)值是:"+i);varu:uint;trace("uint型變量的默認(rèn)值是:"+u);varj:Number;trace("Number型變量的默認(rèn)值是:"+j);124125125varobj:Object;trace("Object型變量的默認(rèn)值是:"+obj);varstr:String;trace("String型變量的默認(rèn)值是:"+str);varv:*;trace("*型變量的默認(rèn)值是:"+v);1261263、常量意外被修改AS實(shí)作20:常量意外被修改文件名:學(xué)號(hào)姓名AS實(shí)作20_常量意外被修改常量一般不能修改,但數(shù)組常量被引用后有可能被修改。constarr1:Array=newArray(1,2,3);trace(arr1);//輸出1,2,3vararr2:Array=arr1;trace(arr2);//輸出1,2,3arr2[0]=100;127127trace(arr1);//輸出100,2,3trace(arr2);//輸出100,2,3//對于Number數(shù)據(jù)類型不會(huì)在引用中被修改。consta:Number=1;trace(a);//輸出1varb:Number=a;trace(b);//輸出1b=3;trace(a);//輸出1trace(b);//輸出3結(jié)論:對Number類型常量被引用后不會(huì)被修改。128128六、運(yùn)算符1、數(shù)值運(yùn)算符(1)加減乘除運(yùn)算varn1:Number,n2:Number,sum:Number;n1=10;n2=20;sum=(n1+n2)/5;trace(sum);trace(n1*n2-100);輸出結(jié)果:6,100129129(2)求模運(yùn)算符%(求余數(shù))varn1:Number=10;varn2:Number=22;trace(n2%n1);輸出結(jié)果為:2trace(25%7);//輸出4trace(-25%7);//輸出-4trace(-25%-7);//輸出-4,-號(hào)取反,級(jí)別高。trace(25%-7);//輸出4,-號(hào)級(jí)高于%號(hào)。結(jié)論:求余數(shù)時(shí)要取被除數(shù)的符號(hào),但不取除數(shù)的符號(hào)。130130(3)遞增運(yùn)算符++和遞減運(yùn)算符--i++相當(dāng)于i=i+1i--也相當(dāng)于i=i-1當(dāng)然,++i和i++在單獨(dú)時(shí)沒有區(qū)別,但在關(guān)系表達(dá)式中有差別。if(++i>=20),意思是先i=i+1,然后再i>=20if(i++>=20),意思是先i>=20,然后再i=i+1AS實(shí)作21:數(shù)值運(yùn)算文件名:學(xué)號(hào)姓名AS實(shí)作21_數(shù)值運(yùn)算131131vari:Number=25%-7;trace(++i==4);//關(guān)系比較時(shí)要用==號(hào)trace(i);i=4;trace(i++==4);trace(i);輸出結(jié)果:false5true5//i--和--i運(yùn)算符的用法一樣。132132(4)條件運(yùn)算?:expression1?expression2:expression3
說明如果expression1的值為true,則返回expression2
的值;否則返回expression3
的值。AS實(shí)作22:條件運(yùn)算文件名:學(xué)號(hào)姓名AS實(shí)作22_條件運(yùn)算133varx1:Number=5;vary1:Number=10;varz1:Number;z1=(x1<6)?x1:y1;trace(z1);//輸出:5z1=(x1>6)?x1:y1;trace(z1);//輸出:10133134134算術(shù)運(yùn)算符級(jí)別排列:()→取反(-)→*/→%→+-(5)算術(shù)賦值運(yùn)算符X1+=10;→→X1=X1+10;X1-=10;→→X1=X1-10;X1*=10;→→X1=X1*10;X1/=10;→→X1=X1/10;X1%=10;→→X1=X1%10;135135例如:varX1:Number=115;trace(X1+=10);trace(X1-=10);trace(X1*=10);trace(X1/=10);trace(X1%=10);輸出:125105115011.551361362、關(guān)系運(yùn)算符和邏輯運(yùn)算符常用關(guān)系運(yùn)算符有:<小于>大于<=小于等于>=大于等于==等于===嚴(yán)格等于!=不等于!==嚴(yán)格不等于&&邏輯與||邏輯或!邏輯非一般而言,關(guān)系運(yùn)算符的級(jí)別高于邏輯運(yùn)算符,而在邏輯運(yùn)算符里,依次按“非、與、或”排列高低運(yùn)算級(jí)別。137137==和!=可以在String、Number和Boolean之間進(jìn)行比較,運(yùn)算時(shí)不同類型的數(shù)據(jù)自動(dòng)轉(zhuǎn)換,也能在對象和數(shù)組進(jìn)行比較。而===是嚴(yán)格等于運(yùn)算,不進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。兩個(gè)操作數(shù)的類型不同時(shí)返回false。!==是===的反值。AS實(shí)作23:關(guān)系運(yùn)算和邏輯運(yùn)算文件名:學(xué)號(hào)姓名AS實(shí)作23_關(guān)系運(yùn)算和邏輯運(yùn)算138varaa:Number=10;varbb:Number=20;trace(aa>5&&bb==20);//輸出為truetrace(aa==5||bb==20);//輸出為truetrace(!(aa==5)&&bb==20||aa+bb>=50);//輸出為true//**************************varaa:Boolean=true;varbb:Number=1;trace(aa==bb);//輸出true138139139trace(bb==aa);//輸出truetrace(aa!=bb);//輸出falsetrace(bb!=aa);//輸出falsetrace(aa===bb);//輸出falsetrace(bb===aa);//輸出falsetrace(aa!==bb);//輸出truetrace(bb!==aa);//輸出true3、位操作運(yùn)算符按位運(yùn)算符在內(nèi)部處理浮點(diǎn)數(shù),四個(gè)字節(jié),32位二進(jìn)制整型數(shù)。140140&按位and&=按位AND賦值運(yùn)算符|按位or|=按位OR賦值運(yùn)算符^按位異或^=按位XOR賦值運(yùn)算符~按位非<<左移位>>右移位>>>按位無符號(hào)向右移位運(yùn)算符>>>=按位無符號(hào)向右移位并賦值運(yùn)算符141141AS實(shí)作24:位操作運(yùn)算文件名:學(xué)號(hào)姓名AS實(shí)作24_位操作運(yùn)算varaa=127;//二進(jìn)制數(shù)為01111111varbb=4;//二進(jìn)制數(shù)為00000100trace(aa&bb);//顯示輸出4trace(bb|aa);//顯示輸出127trace(aa^bb);//輸出123trace(~aa);//輸出-128trace(~bb);//輸出-51421424、賦值運(yùn)算符=賦值+=相加并賦值-=相減并賦值*=相乘并賦值%=求模并賦值/=相除并賦值<<=按位左移位并賦值>>=按位右移位并賦值>>>=右移位填零并賦值^=按位“異或”并賦值143143|=按位“或”并賦值&=按位“與”并賦值5、數(shù)據(jù)轉(zhuǎn)換分為隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。隱式轉(zhuǎn)換又稱為自動(dòng)轉(zhuǎn)換,而顯式轉(zhuǎn)換是用代碼指定數(shù)據(jù)轉(zhuǎn)換。AS實(shí)作25:數(shù)據(jù)隱式轉(zhuǎn)換文件名:學(xué)號(hào)姓名AS實(shí)作25_數(shù)據(jù)隱式轉(zhuǎn)換1441441)隱式轉(zhuǎn)換vara:Number=1.5;varb:int=a;//由于b是int(整型數(shù)據(jù)),在b中沒有小數(shù)位了。trace(b);//輸出1functiontest(n:int){trace(n)};varc:Number=10.10;test(c);//輸出10,c數(shù)據(jù)從Number變成了intfunctiontests(s:Number):int{returns;}145145vard:Number=3.45;trace(tests(d));//輸出3vari:Number=15;varj:String=“1”;trace(i+j);//輸出151,程序運(yùn)行時(shí)把Number型數(shù)據(jù)轉(zhuǎn)換成為String數(shù)據(jù)類型。2)顯式轉(zhuǎn)換用代碼來轉(zhuǎn)換數(shù)據(jù)類型。AS實(shí)作26:數(shù)據(jù)顯式轉(zhuǎn)換文件名:學(xué)號(hào)姓名AS實(shí)作26_數(shù)據(jù)顯式轉(zhuǎn)換下面的紅字都要調(diào)試146146(一)、其它數(shù)據(jù)類型轉(zhuǎn)換成int、uint和Number任何數(shù)據(jù)類型都可以轉(zhuǎn)換為這三種數(shù)據(jù)類型。1)Boolean數(shù)據(jù)轉(zhuǎn)換為此三種數(shù)據(jù)類型varp:Boolean=true;trace(uint(p));//輸出1trace(int(p));//輸出1trace(Number(p));//輸出1p=false;trace(uint(p));//輸出0trace(int(p));//輸出0trace(Number(p));//輸出01472)數(shù)字字符串轉(zhuǎn)換成此三種數(shù)據(jù)類型trace(uint(“5”));//輸出5trace(uint(“-5”));//輸出,從uint數(shù)據(jù)類型的最大數(shù)開始遞減。trace(uint(“27”));//輸出27trace(uint(“2.7”));//輸出2trace(int(“3.7”));//輸出3trace(int(“0x1A”));//輸出26,26是十進(jìn)制數(shù)trace(Number(“3.7”));//輸出3.71471481483)包含非數(shù)字字符串時(shí),int()和uint()函數(shù)返回0,而Number()函數(shù)返回NaN。
trace(uint(“5a”));//輸出0trace(uint(“ten”));//輸出0trace(uint(“1122”));//輸出0trace(int(“5a”));//輸出0trace(Number(“5a”));//輸出NaN4)在AS3.0中,Number()不再支持八進(jìn)制數(shù)。//八進(jìn)制數(shù)0(零)開頭。trace(Number(“044”));//在AS3.0下輸出44,但在AS2.0下輸出36149149其它數(shù)據(jù)類型轉(zhuǎn)換為Number、int或uint數(shù)據(jù)類型的結(jié)果如下:Boolean:如果值為true,則結(jié)果為1;否則為0。Date:Date對象的內(nèi)部表示形式,即從1970年1月1日午夜(通用時(shí)間)以來所經(jīng)過的毫秒數(shù)。null:0Object:如果實(shí)例為null并轉(zhuǎn)換為Number,則結(jié)果為NaN;否則為0。String:如果FlashPlayer可以將字符串轉(zhuǎn)換為數(shù)字,則結(jié)果為數(shù)字;否則,如果轉(zhuǎn)換為Number,則結(jié)果為NaN,如果轉(zhuǎn)換為int或uint,則結(jié)果為0。undefined:如果轉(zhuǎn)換為Number,則結(jié)果為NaN;如果轉(zhuǎn)換為int或uint,則結(jié)果為0。150150(二)轉(zhuǎn)換為Boolean1)數(shù)值數(shù)據(jù)類型(uint、int和Number)轉(zhuǎn)換為Boolean時(shí),如果數(shù)值為0,則結(jié)果為false;否則為true。對于Number數(shù)據(jù)類型,如果值為NaN,則結(jié)果也為false。下面的示例說明在轉(zhuǎn)換-1、0和1等數(shù)字時(shí)的結(jié)果:varmyNum:Number;for(myNum=-1;myNum<2;myNum++){trace("Boolean("+myNum+")is"+Boolean(myNum));}本示例的輸出結(jié)果說明在這三個(gè)數(shù)字中,只有0返回false值:Boolean(-1)istrueBoolean(0)isfalseBoolean(1)istrue1511512)在將字符串值轉(zhuǎn)換為Boolean數(shù)據(jù)類型時(shí),如果字符串為null或空字符串(“”),則會(huì)返回false。否則,將返回true。varstr1:String;//未初始化的字符串為null。
trace(Boolean(str1));//falsevarstr2:String=“”;//空字符串trace(Boolean(str2));//falsevarstr3:String=“”;//僅空白trace(Boolean(str3));//truetrace(Boolean(“123abc”));//true1521523)在將Object類的實(shí)例轉(zhuǎn)換為Boolean數(shù)據(jù)類型時(shí),如果該實(shí)例為null,則將返回false;否則將返回true:varmyObj:Object;//未初始化的對象為null。
trace(Boolean(myObj));//falsemyObj=newObject();//實(shí)例化
trace(Boolean(myObj));//true1531534)在嚴(yán)格模式下,系統(tǒng)會(huì)對布爾變量進(jìn)行特殊處理,因?yàn)槟槐剞D(zhuǎn)換即可向布爾變量賦予任何數(shù)據(jù)類型的值。即使在嚴(yán)格模式下,也可以將所有的數(shù)據(jù)類型隱式強(qiáng)制為Boolean數(shù)據(jù)類型。換言之,與幾乎其它所有數(shù)據(jù)類型不同,轉(zhuǎn)換為Boolean數(shù)據(jù)類型不是避免在嚴(yán)格模式下出錯(cuò)所必需的。下面的幾個(gè)示例全部是在嚴(yán)格模式下編譯的,它們在運(yùn)行時(shí)按照預(yù)期的方式工作:154154varmyObj:Object=newObject();//實(shí)例化varbool:Boolean=myObj;trace(bool);//truebool="randomstring";trace(bool);//truebool=newArray();trace(bool);//truebool=NaN;trace(bool);//false155155下表概述了在從其它數(shù)據(jù)類型轉(zhuǎn)換為Boolean數(shù)據(jù)類型時(shí)的結(jié)果:String:
如果值為null或空字符串(“”),則結(jié)果為false;否則為true。null:falseNumber、int或uint
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年縣聯(lián)社稽核例會(huì)和督導(dǎo)檢查工作制度范例(三篇)
- 2024年幼兒園大班下學(xué)期班級(jí)工作計(jì)劃(二篇)
- 2024年學(xué)生會(huì)外聯(lián)部工作職責(zé)樣本(二篇)
- 2024年學(xué)校創(chuàng)衛(wèi)工作計(jì)劃范例(二篇)
- 2024年委托管理合同參考范本(五篇)
- 2024年學(xué)??倓?wù)后勤工作計(jì)劃模版(二篇)
- 【《關(guān)于追星情況的問卷調(diào)研報(bào)告》1600字(論文)】
- 2024年幼兒園保健醫(yī)師工作計(jì)劃范文(二篇)
- 2024年工程設(shè)計(jì)合同例文(二篇)
- 2024年大學(xué)教研室工作計(jì)劃范文(三篇)
- 活動(dòng)策劃書的撰寫課件
- 婦產(chǎn)科各種應(yīng)急預(yù)案與流程
- 皮膚衰老的過程
- 丁玲《我在霞村的時(shí)候》
- 2《外貿(mào)企業(yè)新增出口商品情況說明表》
- 揚(yáng)州蘇教版四年級(jí)上冊數(shù)學(xué)第8周周練試卷(定稿)
- 幼兒園繪本故事:《雪精靈》 課件
- 2022年中國建設(shè)銀行(河南省分行)校園招聘筆試題庫及答案解析
- 屋面工程交接檢查
- 教學(xué)儀器分類明細(xì)賬
- 2018年ISO15189:2012文件(手冊+程序文件+表單共279)(CNAS-CL02:2012)
評論
0/150
提交評論