版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
ActionScript是Flash5的語言,ActionScript是一種面向對象編程語言。Flash使用ActionScript給動畫添加交互性在簡單動畫中,F(xiàn)lash按順序動畫中的場景和幀,后跳轉到動畫的不同部分繼續(xù);可以移動動畫中的對象;可以在表單中輸入信息等等。ActionScriptFlashFlashFlash5的ActionScript為創(chuàng)建包含復雜游戲、表單、表和實時交互性的提象任何語言一樣,ActionScript也根據(jù)其特定的語則,使用專門的術語。本ActionScript用ActionScript編寫時,如果使用正常模式的動作面板,通過從菜單和列表選擇ActionScript個。動作可以彼此獨立地起作用……時,分配給該剪輯的動作被執(zhí)行。數(shù)據(jù)類型說明一個變量或ActionScript元素可以的信息種類。在Flash5(ReferenceFlash在中控制流ActionScriptif、for、while、do...whilefor...in —ActionScript的新特Flash5的ActionScript為創(chuàng)建包含復雜游戲、表單、表和實時交互性的提Flash5ActionScript1.ActionScriptJavaScriptActionScript與JavaScript編程語言很相似,同樣具有函數(shù)、變量、語句、操作JavaScriptActionScript。JavaScriptActionScriptActionScriptJavaScriptActionScriptJavaScript在ActionScript中,eval動作僅執(zhí)行變量的。4toStringFlash40。e(myMoviClip/chldMovielipmyVariable語法。不過,F(xiàn)lash器仍然支持斜杠語法。Flash5的ActionScript支持以下數(shù)據(jù)類型:字符串、數(shù)值、邏輯、對象和剪輯??梢允褂肍lash5的預定義對象來和管理某些類型的信息。下面列出一些預定義常數(shù)、cos(余弦)atan(反正切。Date(日期)對象:使用Date對象可以獲取運行Flash器的系統(tǒng)的日期和時間信息。Sound(聲音)對象:使用Sound對象可以在動畫中添加聲音,能夠在動畫時控制聲音(setPanMouse(鼠標)MouseMovieClip(剪輯)對象:使用MovieClip對象,可以控制剪輯而無需使用打包動lTargetdupicateMoieClip可以使用onClipEvent動作直接給編輯區(qū)中的剪輯實例分配動作。onClipEvent動作有l(wèi)oad、enterFrame、mouseMove和data等,利用它可以創(chuàng)建新的高級交互性。雜的循環(huán)另一些新動作則以MovieClip對象的方法來補充如getBounds、attaovie、hitTest、swapDepthsglobalToLocalXML支使用預定義的XML對象可以把ActionScript轉換為XML文檔,然后傳遞到服務器端應XMLXMLFlashXMLSocketXMLFlash5包含有Actions面板中可用的每個動作的上下文敏感幫助。在編寫的過程一種動作,然后單擊面板上邊的Help按鈕,與選定動作相關的即顯示在瀏覽器中。二使用Actions面5一、顯示Actions面ActionsWindowActions(窗口>動作在編輯區(qū)選擇按鈕或剪輯的一個實例,會使Actions面板處于激活狀態(tài)。如果按鈕或剪輯被選擇,Actions面板標題會變?yōu)镺bjectActions(對象動作:2NormalModeExpertMode在專家模式下為另一個按鈕實例編寫。切換選定的按鈕,面板的模式狀態(tài)也會跟著切NormalModeActionsActions在正常模式的Actions面板中選擇一個動作的操作步驟是12雙擊一個動作或拖它到窗口中1單擊Actions面板右下角的參數(shù)按鈕(角按鈕,顯示參數(shù)域如果要插入剪輯目標路徑,操作步驟如下1ActionsInsertTargetPath(插入目標路徑)2 (Absolute;(Slashes1212(-)12注:當工具箱列表被隱藏時,你仍然可以用Actions面板左上角的添加(+)按鈕它的在專家模式(ExpertMode)中,可以在該面板右邊的文本框中輸入動作,也可以高級用戶可以在專家模式中編寫自己的就像他們編寫JavaScript或VBScript一有錯誤的專家模式的不能導出,也不能轉換為正常模式。如果你試圖轉換這種ActionsNormalModeExpertMode,可以來回切換1EditPreferences(編輯>參數(shù)設置)2選擇General(一般)3ActionsPanel(動作面板)NormalModeExpertMode,,本添加到Flash內部的一個中。例如,下面的語句導入一個文件:,#include文件取代include1從工具箱列表中把include拖到窗口2Path(路徑)輸入的路徑必須是FLA文件的相對路徑例如myMovie.fla和externalfile.as在同一文件夾,路徑就應該是externalfile.as。如果externalfile.as在子文件夾Scriptsscripts/externalfile.as。七、選擇Actions面板選大小你可以把ActionScript文本文件導入Actions面板也可以把動作導出為文本文件,板用警告性突出顯示語法錯誤和器版本的不兼容性它也突出顯示不贊成使用的或不再ActionScript這些Actions面板選項在Normal(正常模式)和Expert(專家模式)都有效(特別說在窗口中改變字體大小的方法是1ActionsFontSize(字體大小2Small(小Normal(正常)Large(大導入外部動 1ActionsImportfromFile(從文件導入2選擇包含動作的文本文件,單擊Open(打開)按鈕下,F(xiàn)lash1ActionsExportasFile(導出為文件2Save(保存)1ActionsPrint(打印。Print(打?。┛虺霈F(xiàn)。2Options(選項Printcomment要在中搜索文本,從Actions面板的彈出菜單上選擇一個選項:選擇GotoLine(跳轉某行跳轉到中指定的行。FindAgain(再次查找)再次查找文本。選擇Rece(替換)查找和替換文本。在專家模式中,Rece操作掃描中整個文本主體。在正常模式中,Rece操作僅的gotoAndy動作。注:使用Find或Rece命令只搜索當前動作列表。要全面搜索一個動畫中的每個腳MovieExplorer(動畫資源管理器。確的關鍵字大寫。例如,如果關鍵字typeof拼寫成typeOf,它就不會是藍色,這樣你就可ColoredSyntax(彩色顯示語法)選項。對勾指示該選項被選用。動畫中的所有將被突出顯示。在導出動畫之前,最好檢查一下有無錯誤。要檢查當前中的錯誤,可從動作面板右上角的彈出菜單上選擇CheckSyntax(檢查語法。Flash在輸出窗口中報告中存例如,如果Flash器的導本被設置為Flash4,只有Flash5才支持的動作就會用黃色背景突出顯示。導本在PublishSettings(發(fā)布設置)框中設定。如果導本設為Flash5,所有不贊成使用的動作在工具箱中以綠色背景突出顯示設置Flash器的導本的方法是1FilePublishSettings(文件>發(fā)布設置2單擊Flash3從版本彈出菜單上選擇一個導本要打開不贊成使用的動作的語法突出顯示,可從動作面板的彈出菜單上選擇Deprecated三ActionScript術象任何語言一樣,ActionScript也根據(jù)其特定的語則,使用專門的術語。本Argument( 使用兩個值,由參數(shù)firstName和hobby接收: e(firstName,hobby)eText="o,"+firstName+"Iseeyouenjoy"+}Constants(常數(shù))TABCirclefunctionCircle(x,y,radius){this.x=x;this.y=y;this.radius=radius;}值(true和false)、對象和剪輯是ActionScript的數(shù)據(jù)類型。Events()是動畫正在時發(fā)生的動作。例如,當裝載剪輯、頭到達某幀、用戶單擊按鈕或移動剪輯,或用戶用鍵盤輸入時,可以發(fā)生不同的 Expressions(表達式)是語句中能夠產(chǎn)生一個值的任一部分。例如,2+2getProperty函數(shù)被傳送屬性名和剪輯實例名,然后返回這些屬性的值。getVersion函數(shù)返回當前正在動畫的Flash器的版本。Handlers(處理程序)是一種特殊的動作,它“處理”或管理(如mouseDownload)。例如,on(onMouseEventonClipEventActionScript法。所有剪輯都是MovieClip類的實例,均擁有該類的屬性(如_alpha和_visible)和方法(如gotoAndy和getURL)。counter,在動畫中該圖符的兩個實例可以取實例名 yer1和score
法被調用。例如,在下面的代碼中,clearcontrollerfunctionReset(){x_pos=0;x_pos=}controller.clear=Reset;Date(日期)對象提供來自系統(tǒng)時鐘的信息。18.TargetTargetpaths(目標路徑)是動畫中剪輯實例名、變量和對象的層次地址。你可以在Instance(實例)面板中命名一個剪輯實例。主時間軸總是擁有一個名字_root。你可以用目標路徑指向剪輯中的動作,獲取或設置變量的值。例如,下面的語句就是指向剪輯stereoControl內部的變量volume的目標路徑:定義剪輯是可見還是隱藏。它們的值可以恢復,供在中使用。在下面的例子中,等號左邊的標識符是變量:x=5;name=customer.address="667thStreet";c=newColor(mcinstanceName)四使用ActionScript的語用ActionScript編寫時,如果使用正常模式的動作面板,通過從菜單和列表選擇選項,可以創(chuàng)建簡單的動作。要想用ActionScript編寫功能強大的,你就必須深入了解Flash5的ActionScript語言。象其它語言一樣,ActionScript也有變量、函數(shù)、對象、操作符、保留關鍵字等語言元素,有它自己的語則。ActionScript允許用戶創(chuàng)建自己的對象和函數(shù)。ActionScriptJavaScriptActionScriptActionScript下面列出ActionScript的一些通用語則。大多數(shù)ActionScript術語也都有它們自己ActionScript輯的X軸位置。表達式ballMC._x是指剪輯實例ballMC的_X屬性。剪輯shopCart中的剪輯。表達式shopCart.form.submit=true的作用formsubmittrue。ballMC._root別名創(chuàng)建一個絕對路徑。例如,下面的語句調用主時間軸中剪輯functionsbuildGam函數(shù)可以用別名_parent嵌套當前剪輯的剪輯。也可以用_parent創(chuàng)建一個相對目標路徑。例如,如果剪輯dog被嵌套在剪輯animal之中,那么,在實例dog上的下列語句告訴animal停止:Flash3和4使用斜杠語法剪輯或變量的目標路徑。Flash5器仍然支持的路徑。要一個變量,可以在變量前加上冒號,如下所示:on(release){myDate=newDate();currentMonth=}ActionScriptFlashcolumn=passedDate.getDay();row=0;column=passedDate.getDay()row=functionmyFunction(name,age,}myFunction("Steve",10,ActionScriptActionScriptnewcolor(this)得到計算,并創(chuàng)建了一個新的顏色對象:onClipEvent(enterFrame){(new}onClipEvent(enterFrame){myColor=newColor(this);cat.hilite=CAT.hilite=ActionScriptcommenton(release)myDate=newcurrentMonth=monthName=calcMonth(currentMonth);year=myDate.getFullYear();currentDate=myDate.getDat();},ActionScript保留一些單詞與本語言之中。因此不能用這些保留字作為變量、 的名字。下表列出了ActionScript中所有的關鍵字:,要了解關于關鍵字的信息,請參閱ActionScript詞典中相關的詞條。ActionScriptBACKSPACE、ENTER、QUOTE、RETURN、SPACETABKeyEnterif(keycode()==Key.ENTER){alert="Areyoureadytoy?"數(shù)據(jù)類型說明一個變量或ActionScript元素可以的信息種類。在Flash5的(Reference素的實際值的原始數(shù)據(jù)類型數(shù)據(jù)的變量的行為在某些情況下與數(shù)據(jù)類型favoriteBand=你可以用加號(+)操作符連接兩個字符串。ActionScriptgreeting="e,"+小寫的。例如,下面的兩個語句把不同的文本放入指定的文本域變量中,因為"o"和"O"是字符串。.disy=".disy="\EscapesequenceCharacter退格符(ASCII換頁符(ASCII換行符(ASCII回車符(ASCII制表符(ASCII\000-\x00-\u0000-(、)、取模(%)、遞增(++)、遞減(--)Math(數(shù)學)sqrt(平方根)100邏輯true(真)或false(假)。需要時,ActionScript也把truefalse在下面的中,如果password的值為true,動畫:onClipEvent(enterFrame)if((userName==true)&&(password==true)){}}象和它們的屬性,可以使用點操作符。例如,在下面的代碼中,hoursWorkedweeklyStatsweeklyStatsemployee可以使用ActionScript的預定義對象和處理特定種類的信息。例如,Math(數(shù)sqrtsquareRoot=ActionScript的MovieClip(剪輯)對象擁有一些方法,使用這些方法可以控制編輯區(qū)中剪輯實例。下例使用了剪輯對象的y和nextFrame方法:ActionScriptActionScript五、剪 制剪輯圖符。使用點操作符可以調用剪輯的方法,如下所示parentClip.childClip.getURL( /support/"+五ActionScript個。動作可以彼此獨立地起作用,如下面的語句:swapDepths("mc1","mc2");的例子中,if動作告訴gotoAndy什么時候執(zhí)行。if(i>=25)gotoAnd}ActionScript printAsBitmapswapDepths loadVariablesremoveMovieClip
onClipEventsetProperty gotoAnd
elseif stopAllSoundswhile動畫在網(wǎng)絡上的位置。loadMovie(URL,Location,Variables下面的語句把URL /myMovie.swf",在ActionScript中,使用剪輯的實例名標識剪輯。例如,在下面的語句中,star的_alpha50%可見。star._alpha=要給剪輯的實例命名在編輯區(qū)選擇剪輯WindowPanelsInstance(窗口>面板>實例使用_levelXXloadMovie動作中指定的層號。例如,5_level55onClipEvent(load){loadMovie("myMovie.swf",5);}onClipEvent(enterFrame)_level5._visible=}單擊動作面板中的插入目標路徑(InsertTargetPath)按鈕,在顯示出來的六處理程序中,并指定觸發(fā)該動作的剪輯。當你在正常模式中給剪輯分配動作時,onClipEvent處理程序被自動插入。給按鈕或剪輯分配動作的操作步驟如下:在編輯區(qū)中選擇按鈕或剪輯實例(注:本例為剪輯實例,然后選擇WindowActions(動作)文件夾,將其展開。然后,雙擊其它添加到該面板右邊的動作列表中(在添加startDrag動作時onClipEvent處理程序TargetPath(目標路徑)ControlTestMovie(控制>測試動畫)命令來七201020gotoAndy1在時間軸中選擇上一步插入的關鍵幀,然后選擇Window>Actions(窗口>動作,打開動作面板(FrameActions2單擊幀動作面板右上角角按鈕,從彈出菜單上選擇NormalMode(正常模式加了gotoAndy(10)動作(跳轉到第10幀。ControlTestMovie(控制>測試動畫)來測試它是否八數(shù)據(jù)類型說明一個變量或ActionScript元素可以的信息種類。在Flash5的(Reference素的實際值的原始數(shù)據(jù)類型數(shù)據(jù)的變量的行為在某些情況下與數(shù)據(jù)類型favoriteBand=你可以用加號(+)操作符連接兩個字符串。ActionScriptgreeting="e,"+小寫的。例如,下面的兩個語句把不同的文本放入指定的文本域變量中,因為"o"和"O"是字符串。.disy=".disy="\EscapesequenceCharacter退格符(ASCII換頁符(ASCII換行符(ASCII回車符(ASCII制表符(ASCII\000-\x00-\u0000-(+(*(%(++sqrt(平方根)100邏輯值是true(真)或false(假。需要時,ActionScript也把truefalse為1和0。邏輯值與邏輯操作符一起,常常被用在控制流動的比較語句中。例如,在下面的中,如果password的值為true,動畫:onClipEvent(enterFrame)if((userName==true)&&(password==true)){}}們的屬性,可以使用點操作符。例如,在下面的代碼中,hoursWorkedweeklyStatsweeklyStatsemployeesquareRoot=輯區(qū)中剪輯實例。下例使用了剪輯對象的y和nextFrame方法:ActionScript五、剪剪輯是一種圖符,這種圖符可以在Flas動畫中一個動畫片段。它是與圖像元 parentClip.childClip.getURL( /support/"+九使用預定義函ActionSript(為參數(shù))Flah函數(shù),使用這些函數(shù)可以某些信息完成某任務。例如,檢測(hiTest獲取最近一次按的(keyode獲動畫中設的器版本(etVerion等。調用函可以從任何時間軸(包括已載入的剪輯)調用任一時間軸內的函數(shù)。每個函在正常模式調用函數(shù)evaluate中的函數(shù)calculateTax,使用下面的路徑要了解關于每個函數(shù)的信息,包括不贊成使用的字符串函數(shù),請參閱Flash5一、定義函函數(shù)的參數(shù)和該函數(shù)做什么的ActionScript語句。CircleradiusfunctionCircle(radius)this.radius=this.area=Math.PI*radius*}注:用于函數(shù)體內的關鍵字this是對函數(shù)所屬剪輯的如下所示:area=(function(){returnMath.PI*radius*radius;})(5);二、給函數(shù)傳遞參:functionfillOutScorecard(initials,finalScore){scorecard.disy=initials;scorecard.score=finalScore;}函數(shù)定義中的參數(shù)在本例中,scorecard是一個剪輯的實例名;disy和score是score:fillOutScorecard("JEB",fillOutScorecardinitials類似于局部變量。該函數(shù)被調用時它存在,退出函數(shù)時它。如果調用函數(shù)時省略了參數(shù),省略了的參數(shù)以undefined傳時,它可以隱藏它的變量,使本動畫的其它不能。局部變量的作用范圍局限在本函數(shù)體內,在退出函數(shù)。傳遞函的任何參數(shù)均作局部變量處。注:如果在函數(shù)修改全局變,請使用注說明這些修改。四、從函數(shù)中返回Flashreturn動作,將返回空字符串。例如,下面的函數(shù)返回參數(shù)xfunctionsqr(x)returnx*}functioninitialize()boat_x=_root.boat._x;boat_y=_root.boat._y;car_x=_root.car._x;car_y=_root.car._y;}五、調用函evaluate調用主時間軸中的剪輯MathLib的函數(shù)sqr,傳遞一個參數(shù)3,并把結果在變量temp中:vartemp=在Flash4中,要模擬調用函數(shù),你可以在動畫結束后的某一幀中編寫,然后通過把該幀的名傳遞給call動作來調用它:Flash5使用預定義對使用Flash的預定義對象可以某些種類的信息(如系統(tǒng)的日期和時間信息。(Sound)可以控制動畫中元素剪輯實例用ActionScript對象表你可以象調用其它ActionScript對象的方法一樣調用預定義剪輯的方法。了解每個對象的詳細信息請參閱ActionScript一、創(chuàng)建對({}作符,從預定義對象類或自定義對象類創(chuàng)建對象。也可以用對象初始化操作符創(chuàng)建類要使用new操作符創(chuàng)建對象,需要結合構造函數(shù)來使用它。構造函數(shù)是這樣一種函currentDate=newrandomnewColor、newDate、newString在正常模式動作面板中使用new操作符創(chuàng)建對象的基本步3(ExpressionColorc=new在正常模動作面板中使用對象初始化操作符({})創(chuàng)建對象的基本步radiusarea5值:myCircle={radius:5,area:(pi*radius*radius)};areanewObject={name:"JohnSmith",projects:["Flash",ActionScript使用點操作符(.)對象屬性的值。對象名在點的左邊,屬性名在點的右邊。例如,在下面的語句中,myObject是對象,name是它的屬性。myO=myO=也可以使用數(shù)組操作符([])對象的屬性,請參閱點和數(shù)組操作符。調用對象的方法使用點操作符,后接方法。例如,下例調用聲音對象SoundsetVolumes=news.setVolume(50);evaluate四、使用剪輯對象可以使用預定義剪輯對象的方法來控制編輯區(qū)剪輯圖符的實例下例dateCounter。dateCounter.要了解剪輯的詳細信息,請參閱ActionScript詞典中關于剪輯的詞條。數(shù)組對象是常用的預定義ActionScript對象,它自己的數(shù)據(jù)在編號屬性而不(indexmove[1]=move[2]=move[3]=move[100]=要該數(shù)組的第二個元素,使用表達式move[2]index+1。預定義對象應用舉例:Date下面是利用Date對象顯示系統(tǒng)日期和時間的實(注需要Flash5器支持。 設置編輯區(qū)的大小和背景顏色。啟動Flash5,選擇Modify>Movie,彈出2在編輯區(qū)輸入兩個文字對象:“今天是:”和“2000.10.1選擇Text>Options,彈出TextOptions(文本選項)框。在編輯區(qū)中選中文字對象“2000.10.1”,然后在文本類型下拉菜單中選擇DynamicText(動態(tài)文本)Variable(DateTextField,作為該文本框的標識。34在編輯區(qū)輸入另兩個文字對象:“現(xiàn)在時間是:”和“00:00:00”在編輯區(qū)中選中文字對象“00:00:00”,然后在文本類型下拉菜單中選擇5Action(Action6 newDate=new Cur_Hour=newDate.getHours();if(length(Cur_Hour)<2){Cur_Hour="0"+Cur_Hour;}Cur_Minute=newDate.getMinutes();if(length(Cur_Minute)<2){Cur_Minute="0"+Cur_Minute;}Cur_Second=newDate.getSeconds();if(length(Cur_Second)<2){Cur_Second="0"+Cur_Second;}TimeTextField=8雙擊BasicActions文件夾,然后選擇Goto動作,在動作列表中添加動作:gotoAnd 本例的關鍵技術是第3步文本選項面板的應用和第7步動作的編寫。中調用了Date對象返回年、月、日、時、分、秒的方法。其實,F(xiàn)lash5的預定義Date對附錄:Date對象的方法總方 說 31 返回指定日期對象自1970年1月1日午夜以來的毫秒數(shù)(世界時。getTimezoneOffset返回計算機本地時間與世界時之間的時差(以分為單位。 31 使用自定義對Flash5邏輯型、對象、剪輯或未定義型。下面的屬性屬于不同的數(shù)據(jù)類型:="JaneDoe";customer.age=30;customer.member=true;customer.account.currentRecord=000609;customer.mcInstanceName._visible=的屬性,currentRecord是對象account的屬性。currentRecord屬性的數(shù)據(jù)類型是數(shù)值型?;蛘哒f,account本身是個對象,它擁有自己的屬性currentRecord;account對customer創(chuàng)建對可以用new操作符從構造函數(shù)(或稱結構體函數(shù))創(chuàng)建對象。構造函數(shù)的名字總是與所創(chuàng)建的對象相同。例如,用來創(chuàng)建account(帳號)對象的結構體的名字應該是AccountMyConstructorFunctionnewMyConstructorFunction(argument1,argument2,...argumentN);MyConstructorFunction,F(xiàn)lashthis,這個參數(shù)是對MyConstructorFunction正在創(chuàng)建的對象的當你定義一個結構體時,參數(shù)this使你能夠該結構體將要創(chuàng)建的對象。例如,下面的函數(shù)就是創(chuàng)建circlefunctionCircle(radius){this.radius=radius;this.area=Math.PI*radius* functionArea()this.circleArea=MAth.PI*radius* newmyCircle:varmyCircle=newCircle(5);創(chuàng)建繼在Flash5中,所有函數(shù)都有一個prototype(原型)屬性,該屬性在定義函數(shù)時方法變成了新對象的protoprototype建的對象的默認屬性值。使用protoprototype是否擁有該元素。如果該元素不存在,動作查看該對象的proto屬性以獲得相應的信息(對象.proto。如果被調用的屬性不是該對象的proto對象的屬性,動作查看對象.to。通過把方法賦給對象的prototype屬性的方式把方法指派給對象是一種常見的做1定義構造函數(shù)Circle(圓functionCircle(radius){this.radius=radius;}2定義Circle對象的area(面積)方法。area將計算circle的面積。你可以使用Ctotype.area=function(){returnMath.PI*this.radius*this.radius;}3CirclevarmyCircle=newvarmyCircleArea=的原型對象Ctotype的area方法。動作找到它,并調用它。functionCircle(radius){this.radius=radius;this.area=function(){returnMath.PI*this.radius*} prototypearea,且該定義被自動拷貝到CircleprototypeFlash5常是在動畫的第一幀進行對變量初始化使我們能夠在動畫時更容易和比較變量的變量賦值時,變量數(shù)據(jù)的類型會影響該變量的值如何變化。一個按鈕是否已被單擊。每個動畫或剪輯實例都有它自己的一組變量,每個變量都有false在Flash中,無需顯式定義一個變量是數(shù)值、字符串或其它數(shù)據(jù)類型。Flash在給x=x3中,F(xiàn)lash值操作會改變x的類型。例如,x="o"會把x的類型改為字符串型。沒有賦值的變量undefined(未定義型。"Nextinline,number"+ActionScript把數(shù)值7轉換為字符串"7",并把它添加到第一個字符串的末尾,生成下"Nextinline,numbertypeof操作符可以確定表達式或變量的類型,如下例所示:ActionScript變量的作用范圍是指能夠識別和該變量的區(qū)域。在ActionScript中,變量可以是可以在中用var語句一個局部變量。例如,變量i和j常常被用作循環(huán)計數(shù)器。在下面的例子中,i被用作局部變量,它僅存在于函數(shù)makeDays內部:functionvarfor(i=0;i<monthArray[month];i++)_root.Days.attaovie("DayDisy",i,i+2000_root.Days[i].num=i+_root.Days[i]._x=column*_root.Days[i]._y=row*_root.Days[i]._height;column=column+1;if(column==7)column=0;row=row+1;}}}用name作為局部變量,你就可以在一個中用它來用戶名,而在另一個中剪輯實例名,因為這些變量存在于彼此分開的范圍內,不會發(fā)生。四、變使用setVariables動作或賦值操作符(=)可以全局變量,兩個方法的結果相同。在函數(shù)體內使用var語句局部變量。局部變量的作用范圍限定在它的代碼塊局部變量失效。不過Flash5建議不再使用call動作,而用with動作取代它。with要測試變量的值,可以使用trace動作把變量的值傳送到輸出窗口。例如,trace(hoursWorked)hoursWorked的值到測試動畫模式中的輸出窗口。也可以在測五、在中使用變個沒有的變量(如下例所示,該變量的值就是undefined,將產(chǎn)生一個錯誤:myWebSite="在上例中,變量myWebSite的語句必須排面,以便在getURL動作中的這個變時變化。在下面的例子中,x被設為15,且它的值被拷貝給yx30y的值仍然是15,因為y并沒有從x中取值。y的是傳遞給它的x的值。varx=vary=x;varx=在下面的例子中,變量in了一個原始值9。因此,該實際值被傳遞給sqrt函數(shù),3:functionsqrt(x){returnx*x;}varin=varout=對象數(shù)據(jù)類型包含大量而又復雜的信息。因此,該類型的變量不能實際值,而只能該就請求變量的內容,返回答案,但并不把值傳遞給變量。這種通過獲取變量實際varmyArray=["tom","dick"];varnewArray=myArray;myArray[1]="jack";myArrayvarnewArraymyArray語句建立了變量newArray和對myArray的當語句myArray[1]="jack"改變了myArray數(shù)組的第二個元素的值時該元素的所有變量的值都會跟著改變trace動作將把["tom","jack"]而不是["tom","dick"]傳送到輸出窗口。在下面的例子中,myArray的。functionzeroArray(array){vari;for(i=0;i<array.length;i++){array[i]=0;}}varmyArray=newArray();myArray[0]=1;myArray[1]=myArray[2]=varout=References對象被就不能被刪除。對剪輯的是一種特殊的,稱為軟(SoftReferences)。軟并不強制被對象存在。如果某個剪輯被一種動作(如對象數(shù)據(jù)類型包含大量而又復雜的信息。因此,該類型的變量不能實際值,而只能該就請求變量的內容,返回答案,但并不把值傳遞給變量。這種通過獲取變量實際varmyArray=["tom","dick"];varnewArray=myArray;myArray[1]="jack";myArrayvarnewArraymyArray語句建立了變量newArray和對myArray的當語句myArray[1]="jack"改變了myArray數(shù)組的第二個元素的值時該元素的所有變量的值都會跟著改變trace動作將把["tom","jack"]而不是["tom","dick"]傳送到輸出窗口。在下面的例子中,myArray的。functionzeroArray(array){vari;for(i=0;i<array.length;i++){array[i]=0;}}varmyArray=newArray();myArray[0]=1;myArray[1]=myArray[2]=varout=函數(shù)zeroArray可以接受任何數(shù)組對象作為參數(shù),并把所有數(shù)組元素的值設為0。它可References對象被就不能被刪除。對剪輯的是一種特殊的,稱為軟(SoftReferences)。軟并不強制被對象存在。如果某個剪輯被一種動作(如十表達式是指Flash可以計算并能返回一個值的任何語句。你可以通過把操作符和值結foo的值加起來,foo3是操作數(shù)。foo+3Flash5ActionScriptActionScripttotal=2+4*14total=(2+4)*18total=2*3*total=(2*3)*三、數(shù)值操作ActionScript+*/%--四、比較操作比較操作符比較表達式的值,返回邏輯值真或假(true或false)常常用在循環(huán)和條件語句之中。在下面的例子中,如果變量score的值是100,winner.swfif(score==100){loadMovie("winner.swf",5);}else{loadMovie("loser.swf",5);}<>五、字符串操作"Congratulations,"to"Congratulations,"+ActionScript注:Flash5ActionScript因此,再也不需要使用Flash4的字符串操作符(例如eq、gelt等,除非需要導Flash4六、邏輯操作falsetrue,則邏輯與運算符(&&)truetrue,if動作將被執(zhí)行。if((i>10)&&(_framesloaded>50)){}!位操作符在內部處理浮點數(shù),把它們變?yōu)楦子谔幚淼?2位整數(shù)。精確的位操作的完ActionScript&|^~0falsepassword=也可以在同一個表達式中給多個變量賦值:abcx+=15;x=x+=-九、點操作符和數(shù)組操作year.month="June";year.month.day=9; 剪輯中同一個變量velocity:[]操作符內的表達式被計算,且計算結果被用作在剪輯name中被檢索的變量名:name["mc"+i]Flash4ActionScriptevaleval("mc"&name[index]=Flash4ActionScriptSetVariable:"name:"&index=Flash4eval("chessboard/"&row&":"&在中控制流ActionScriptif、for、while、do...whilefor...in動作,依據(jù)某個條件是否一、使用“if”falseActionScript執(zhí)行接下來的語句。如果條件不存在,ActionScriptif((password==null)||(==null)){ elsegotoAnd}ActionScriptActionScriptwhile、do...while、forfor...in動作創(chuàng)建循環(huán)。使用while語句實現(xiàn)。while循環(huán)先計算一個表達式,當表達式的值為真(true)時,執(zhí)行循環(huán)體中的代碼。在循環(huán)體中的每個語句被執(zhí)行后,再次計算表達式。在下面的例子4i=while(i>0)myMC.duplicateMovieClip("newMC"+i,i);i--;}i=4do{myMC.duplicateMovieClip("newMC"+i,i);i--;}while(i>使用for語句實現(xiàn)。大多數(shù)循環(huán)使用某種計數(shù)器控制循環(huán)運行的次數(shù)。可以先一for(i=4;i>0;i--){myMC.duplicateMovieClip("newMC"+i,i+}要循環(huán)處理剪輯或對象的子trace動作在輸出窗口打印循環(huán)處理的結果:myObject={name:’Joe’,age:25,city:’SanFrancisco’for(propertyNameinmyObject)trace("myObjecthastheproperty:"+propertyName+",withthevalue:"+}myObjecthastheproperty:name,withthevalue:JoemyObjecthastheproperty:age,withthevalue:25myObjecthastheproperty:city,withthevalue:San如果希望可以重復處理特定類型的子項,如僅處理剪輯子項??梢允筬or(nameinmyMovieClip)if(typeof(myMovieClip[name])=="movieclip"){trace("Ihaveamovieclipchildnamed"+}}注:for..in語句重復處理對象原型鏈中的對象屬性。如果子對象的原型是parent,for..inparent的屬性。使用ActionScriptActionScript是Flash的語言。使用ActionScript可以給Flash動畫添加交互訴動畫執(zhí)行什么動作。例如,你可以編寫一個告訴Flash,依據(jù)用戶選擇的導航按鈕,把不同的動畫載入Flash器中。一、用ActionScript編寫的基本步下面的操作步驟把一個附加到改變剪輯可見性的按鈕上,說明了使WindowCommonLibraries>Buttons(窗口>常用庫>按鈕Window>CommonLibraries>MovieClips(窗口>常用庫>剪輯。把一個按鈕和一個剪輯在編輯區(qū)中選擇剪輯實例,選擇Window>Panels>Instance(窗口>面板>實例,打InstanceObjectActions)。Target(目標)testMCValue(值)0on(release)setProperty("testMC",_visible,}10選擇Control>TestMovie(控制>測試動畫單擊按鈕,剪輯ActionScript是一種面向對象的語言。這就意味著,當特定的發(fā)生時動作控制著對象。在這個中,就是釋放鼠標按鍵。對象就是剪輯實例testMC。動作_visible屬性為false(假)的,使對象變?yōu)椴豢梢娔憧梢允褂肁ctions面板,指導你設置簡單的。但要充分發(fā)揮ActionScript的強二、的規(guī)劃和調,,當你為整個動畫編寫時的數(shù)量和種類可能很大。決定使用哪些動作,怎樣有效地構造應該放在何處,所有這些都要仔細規(guī)劃和調試,特別是在動畫復雜的情,,用Flash創(chuàng)建我的整個需要詢問瀏覽者的,并把這些信息用之于整個的消息中本將設置一個可拖放的導航欄,該導航欄中應有一些到本各個部分的按鈕。當你明確了自己的設計目標之后,你就可以創(chuàng)建對象,編寫控制這些對象的了。要讓能夠按照你的要求工作常常需要多次修改測試和調試最好的方法是從簡單開始,并經(jīng)常測試你編寫的。當你編寫的一部分能正常工作時,選擇SaveAs(另存為)myMovie01.fla雜的時,這種方法有助于你有效地發(fā)現(xiàn)錯誤,確保你的動作“穩(wěn)固”。三、面向對象 編在面向對象的編寫中,通過把信息分為組(稱為類)來組織信息??梢詣?chuàng)建一個ActionScript中的對象可以包含數(shù)據(jù)或作為剪輯以圖像形式出現(xiàn)在編輯區(qū)中。所有的剪輯都是預定義類MovieClip的實例。每個剪輯實例均包含MovieClip類的startDragfunctionBiker(t,d)this.time=t;this.distance=}functionSpeed()returnthis.time/}Btotype.rate=emma=newBiker(30,5);hamish=newBiker(40,5);Bikershovehamishemmashove遞到方法中,可以使用參數(shù)。例如,shovewhohowFar。在本例中,emmahamish10emma.shove(hamish,四、MovieClip對getMonthsetPan,getURL_visible,(Timelines例如,如果主時間軸僅有一幀,而該幀中的剪輯有十幀剪輯中的每一幀仍然可以,以在編輯區(qū)中放置多個實(如leftClip和rightClip且希望某個時刻只其中一個。leftClip:leftClip.onClipEvent(load)doduplicateMovieClip("cartItem","cartItem"+i,i);i=i+1;}while(i<=}以改變動畫的外觀和標識,也是創(chuàng)建交互性的關鍵。例如,下面的使用setProperty動作,設置navigationBar實例的為10:setProperty("navigationBar",_alpha,五、怎樣流ifdo...whilereturnif語句稱為條件語句或“邏輯分支”,因為它依據(jù)某個條件的計算結果控制著的5if(number<=10)alert="Thenumberislessthanorequalto}條件的返回值為true(例如number的值為3,第一對大括號中的語句被執(zhí)行,且第二行中的變量alert被設置。如果條件的返回值為fasle(例如number的值為30,第一代碼塊被跳過,elseif(number<=10)alert="Thenumberislessthanorequalto}elsealert="Thenumberisgreaterthan}i=doduplicateMovieClip("myMovieClip","newMovieClip"+i,i);newName=eval("newMovieClip"+i);setProperty(newName,_x,getProperty("myMovieClip",_x)+(i*5));i=i+1;}while(i<=六、在動作運行時控制對編 任一剪輯的時間軸的某一幀,或分配給編輯區(qū)中的一個按鈕、一個剪輯Flash當頭進入某一幀時,分配給該幀的動作被執(zhí)行。onClipEvent和on動作稱為處理程序,因為它們的作用是“處理”或管理。所謂就是發(fā)生的事情,如鼠標移動、按鍵或裝載剪輯。當處理程序中指定的事件發(fā)生時,剪輯和按鈕的動作被執(zhí)行。如果你希望不同的發(fā)生時執(zhí)行不同的動作, 分配給編輯區(qū)中的剪輯的一些onClipEvent處理程序ActionBasicActionsGoto跳轉到指定的幀-yStop停止ToggleHighQuality在高畫質和低畫質間切換StopAllSounds停止所有聲音的GetURL使瀏覽器瀏覽指定頁面mand發(fā) mand命LoadMovie引入影片UnloadMovielTarget指定ActionIfFrameIsLoadedOnMouseEvent鼠標+Actionsbreak跳出循環(huán)call調用指定幀comment注釋continue繼續(xù)循環(huán)delete刪除一個物件(Object)dowhiledowhileduplicateMovieClipelse否則(與ifelseififevaluate調用自己寫的函數(shù)forforforin列舉物件(Object)中的子體mand發(fā) mand命function自定義函getURL使瀏覽器瀏覽指定頁面goto跳轉到指定的幀ififFrameLoadedinclude讀入外部的ActionScriptloadMovie引入loadVariableson鼠標的觸發(fā)條onClipEventMC的觸發(fā)程yprint輸出到removeMovieClip刪除return在函數(shù)(function)setvariablesetPropertystartDrag開始拖動stop停止stopAllSoundsstopDrag停止拖動swapDepths交換兩個MClTarget指定ActiontoggleHighQuality在高畫質和低畫質間切換trace調unloadMovie卸載var局部變while當..成立時..with對..物件(Object)+!!=""%&&()* ++變量自加一---/<<=<>>>=andnotortypeof返回變量類型void實體,無返回||BitwiseOperators&<<>>>>>^|~CompoundAssignOperators%=A%=B&=A&=B*=A*=B A+=B-=A-=BA=A-/=A/=B<<=A<<=B>>=A>>=B>>>=A>>>=B^=A^=B|=A|=BStringOperatorsaddeqAeqB字符串ABgeAgeB字符串ABgtAgtB字符串ABleAleB字符串ABltAltB字符串ABneAneB字符串ABFunctionsBoolean取表達式的布爾值(Trueescape除去URL串中的字eval返回由表達式命名的變量得值false布爾非值getPropertygetTimer獲取從開始到現(xiàn)在的總時間(毫秒數(shù)getVersion獲取瀏覽器的FLASHyer的版本globalToLocal場景(Scene)MChitTest測試一個點或者MCintisFinite測試數(shù)值是否為有限數(shù)isNaN測試是否為非數(shù)值keycode返回鍵盤按下鍵的鍵盤值localToGlobalMC(Scene)maxscroll文本框的最大長度newline換行符Number將參數(shù)轉換成數(shù)值parseFloat將字符串轉換成浮點數(shù)parseInt將字符串轉換成小數(shù)random產(chǎn)生0scroll文本框中的當前行String將參數(shù)轉換成字符串targetPath返回指定實體MCtrue布爾是值unescape保留字符串中的%XXStringFunctionschrASCIIlength返回字符串的長度mbchrASCII/S-JISmblength返回多字節(jié)字符串的長度mbordASCII/S-JISmbsubstringordASCIIsubstring截取字符串中的子串Properties_alphaAlpha值(值_currentframeMC_droptargetMC_focusrect焦點矩形框的顯示與否(True/Flase_framesloaded_heightMC_highquality畫質的高低(True/False_nameMC_quality當前畫質(字符串值)_rotationMC_soundbuftime5,_targetMC_totalframes_url被調用的URL地_visible是否可視(True/False_widthMC_xMCx_xmouse鼠標的x_xscaleMCX_yMCy_ymouse鼠標的y_yscaleMCy+ObjectsArray數(shù)組concat合并多個數(shù)組join合并數(shù)組元素位字符串length返回數(shù)組長度newArray新建數(shù)組物件pop(FILOpush入棧(入隊列)reverseshift出隊列(FIFOslice截取數(shù)組中的子串生成新的數(shù)組sort數(shù)組元素的排序spliceunshift從數(shù)組頭部插入一個元素+Boolean布爾數(shù)newBooleantoString將布爾型物件的值轉換成字符串值valueOfColor顏色getRGB獲取顏色值的RGB0xRRGGBBgetTransformcxformnewColor新建一顏色物件setRGB設置顏色值的RGB0xRRGGBBsetTransformcxformDategetDate獲取當前日期(本月的幾號)getDay獲取今天是星期幾(0-Sunday,1-getFullYeargetHours獲取當前小時數(shù)(240-getMilliseconds獲取當前毫秒數(shù)getMinutes獲取當前分鐘數(shù)getMonth獲取當前月份(注意從0:0-Jan,1-getSeconds獲取當前秒數(shù)getTime獲取UTC1970.1.10:00getTimezoneOffset獲取當前時間和UTCgetUTCDate獲取UTCgetUTCDay獲取UTC(0-Sunday,1-getUTCFullYear獲取UTCgetUTCHours獲取UTC(24,0-getUTCMilliseconds獲取UTCgetUTCMinutes獲取UTCgetUTCMonth獲取UTC0:0-Jan,1-getUTCSeconds獲取UTCgetYearnewDate新建日期時間物件setDate設置當前日期(本月的幾號)setFullYearsetHours設置當前小時數(shù)(240-setMilliseconds設置當前毫秒數(shù)setMinutes設置當前分鐘數(shù)setMonth設置當前月份(注意從0:0-Jan,1-setSeconds設置當前秒數(shù)setTime設置UTC1970.1.10:00setUTCDate設置UTCsetUTCFullYear設置UTCsetUTCHours設置UTC(24,0-setUT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年巴音郭楞年貨運從業(yè)資格證
- 2025年池州貨車上崗證理論模擬考試題庫
- 2024年度醫(yī)院陪護人員雇傭合同3篇
- 2025廢料買賣交易合同
- 2024年信用卡借款條款3篇
- 2024年度金融投資生意合作合同協(xié)議3篇
- 2025建設工程施工承包合同農(nóng)村飲水安全工程施工承包合同
- 2024年二次抵押借款房產(chǎn)合同3篇
- 2024年標準型吊車買賣合同
- 煙草企業(yè)煙草浸泡液水質維護條例
- 無證駕駛復議申請書
- 高壓水槍安全操作規(guī)程
- 地球物理勘探之磁法勘探課件
- 實驗室危險源、風險點重點排查項目表
- 生物化學實驗技術及原理
- 征地補償款分配申訴書范文(通用11篇)
- 《生活和生產(chǎn)中的力學》練習考試題庫(參考200題)
- 建筑工程質量管理體系培訓講義
- 鋼結構及舊樓加固施工方案施工組織設計
- 消防檢測應急預案3篇
- 停工窩工索賠案例
評論
0/150
提交評論