第三章 最簡單的ActionScript程序設(shè)計_第1頁
第三章 最簡單的ActionScript程序設(shè)計_第2頁
第三章 最簡單的ActionScript程序設(shè)計_第3頁
第三章 最簡單的ActionScript程序設(shè)計_第4頁
第三章 最簡單的ActionScript程序設(shè)計_第5頁
已閱讀5頁,還剩73頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第三章最簡單的ActionScript程序設(shè)計3.1認識函數(shù)函數(shù)在編程中必不可少,F(xiàn)lash中有一些非常簡單的函數(shù),如:Stop();它的作用是停止當前正在播放的SWF文件,其中stop代表函數(shù)的標識符,即函數(shù)的名稱。()表示運算符,所有函數(shù)都有如下格式。函數(shù)名();例如:nextFrame();這個函數(shù)表示將播放頭轉(zhuǎn)到下一幀。有很多函數(shù)在()中還必須加入一些參數(shù),例如:gotoAndStop(8);其中8為函數(shù)的參數(shù),表示將播放頭轉(zhuǎn)到當前場景中的第八幀并停止播放。函數(shù)中的參數(shù)可以是多個,參數(shù)與參數(shù)之間用逗號隔開,如:Math.atan2(y,x);此函數(shù)表示以弧度為單位計算并返回y/x的反正切值。3.1.2自定義函數(shù)Flash內(nèi)置的函數(shù)有限,所以要實現(xiàn)的功能也有限,要擴展函數(shù)的功能,就要自定義函數(shù)。用關(guān)鍵字function實現(xiàn)自定義函數(shù)。格式如下:function函數(shù)名(){//代碼}當函數(shù)定義好以后,只需用如下方式調(diào)用函數(shù):函數(shù)名();范例3-1:編寫一個自定義函數(shù),實現(xiàn)指定幀的跳轉(zhuǎn)功能(1)新建一個Flash文檔。并創(chuàng)建一個影片剪輯,在此影片剪輯中制作一個簡單的補間動畫。(2)回到主場景,把該影片剪輯拖到主場景中,并命名為mc。(3)在主場景中新建一層,并輸入下列代碼:FunctionmcToFrame(){mc.gotoAndStop(20);}//自定義函數(shù)mcToFrame();//調(diào)用函數(shù)(4)測試影片,可以看到主場景中的影片剪輯實例停在第20幀。為了使函數(shù)適用于所有的影片剪輯實例,函數(shù)中應(yīng)建立一個數(shù)據(jù)類型為MoiveClip的變量,用來代表影片剪輯的實例名。如下:functionmcToFrame(obj:MovieClip){obj.gotoAndStop(20);}此函數(shù)中,obj代表影片剪輯的實例名,是函數(shù)的參數(shù),必須放在括號中。此函數(shù)這樣調(diào)用:mcToFrame(mc);這個函數(shù)已經(jīng)可以用于所有的影片剪輯實例,但還有一個不好的地方,就是不能被用戶指定要跳轉(zhuǎn)的幀數(shù),所以還可修改為:functionmcToFrame(obj:MovieClip,frameNum:Number){obj.gotoAndStop(frameNum);}此函數(shù)中,增加一個變量frameNum用來代表要跳轉(zhuǎn)的幀數(shù),如果要使mc跳轉(zhuǎn)到第20幀,可以這樣調(diào)用:mcToFrame(mc.20);同樣,要使影片剪輯實例mc1跳轉(zhuǎn)到第五幀,就可以使用此函數(shù),這樣調(diào)用:mcToFrame(mc1.5);3.2程序的三種基本結(jié)構(gòu)3.2.1順序結(jié)構(gòu)順序結(jié)構(gòu)的程序是按順序執(zhí)行的,從程序開頭一直執(zhí)行到結(jié)尾。只執(zhí)行一次。這種按照語句的排列方式逐句執(zhí)行的方式,稱為順序結(jié)構(gòu)。Flash中的程序可以放到幀中,而幀是可以循環(huán)播放的,當播放到某幀,幀中的代碼就會按照順序執(zhí)行一次,所以一個順序結(jié)構(gòu)的程序在Flash中利用幀的循環(huán)可多次執(zhí)行,但在運行到某幀時只執(zhí)行一次。范例3-2:不斷旋轉(zhuǎn)的指針(1)新建一個Flash文檔。(2)在主場景中畫一條水平的直線,并把該直線轉(zhuǎn)換為影片剪輯元件。把注冊點放在直線的左端。(3)選中直線,把實例名取名為“l(fā)ine”。(4)新建一層,選中此層的第一幀,輸入如下代碼:line._rotation+=5(5)測試影片,直線按順時針方向轉(zhuǎn)動了5度。(6)把主場景中的兩層都插入一幀,測試影片,發(fā)現(xiàn)直線不斷的旋轉(zhuǎn)。3.2.2選擇結(jié)構(gòu)在選擇結(jié)構(gòu)程序中,有一個條件,當條件為真時,執(zhí)行一段代碼,否則的話,執(zhí)行另一段代碼。例如:vara=true;varb=3;if(a){b*=3;}else{b/=3;}trace(b);這段程序中,因為a為真,所以只執(zhí)行b*=3,b等于9,程序中的b/=3跳過,最后執(zhí)行trace(b),輸出9。3.2.3循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序最主要的特點是有一個重復(fù)執(zhí)行程序的過程,當條件為真時,反復(fù)執(zhí)行程序,一直到條件為假時停止。范例3-3:讓影片剪輯橫向均勻排列(1)新建一個Flash文檔(2)在場景建立五個影片剪輯實例,實例名分別設(shè)置為mc1、mc2、mc3、mc4、mc5(3)選中第一幀,打開“動作”面板,輸入下列代碼:varnum=5;while(num>0){ _root["mc"+num]._y=200; _root["mc"+num]._x=mc1._x+num*mc1._width; num--;}(4)測試影片。3.3事件和事件處理事件是指軟件或硬件發(fā)生的事情,它需要Flash應(yīng)用程序?qū)@些事件有一定的相應(yīng)。硬件發(fā)生的事件如按下鍵盤、單擊鼠標、移動鼠標等,軟件發(fā)生的事件如影片剪輯剛剛被載入場景,影片剪輯被卸載等。為了使應(yīng)用程序能夠?qū)κ录龀龇磻?yīng),必須使用事件處理函數(shù)。如單擊按鈕時,可以停止影片的播放等。范例3-4:用按鈕控制物體的移動(1)新建一個Flash文檔,并在場景中建立一個影片剪輯實例,實例名設(shè)置為ball。(2)單擊按鈕,打開動作面板,輸入下列代碼:on(keyPress"<Left>"){ ball._x-=10;}(3)測試影片,按住左方向鍵不放,觀看影片剪輯實例的運動。按下方向鍵就是一個事件,當這個事件發(fā)生時,程序會對這個事件進行出理,讓場景中的影片剪輯實例的x坐標不斷減少,形成移動的效果。Flash中的事件包括用戶事件和系統(tǒng)事件兩類。用戶事件是指用戶直接與計算機交互操作而產(chǎn)生的事件,例如單擊或按下鍵盤鍵等事件。系統(tǒng)事件是指FlashPlayer自動生成的事件,它不是由用戶生成的,例如影片剪輯在舞臺上第一次出現(xiàn)或播放頭經(jīng)過某個關(guān)鍵幀等。一般情況下,在以下幾種情況下會產(chǎn)生事件。1當在時間軸上播放到某一幀時。2當載入或卸載某個影片剪輯時。3當單擊某個按鈕或按下鍵盤上的某個鍵時。為了使應(yīng)用程序能夠?qū)κ录龀龇磻?yīng),必須編寫相應(yīng)的事件處理程序。事件處理程序是與特定對象和事件關(guān)聯(lián)的動作腳本代碼。FlashMX2004提供了三種編寫事件處理程序的方法。1)針對對象的on()事件和onClipEvent()事件處理函數(shù)2)事件處理函數(shù)方法3)事件偵聽器下面就以第一種方法的事件為例,講解這種編寫事件處理程序方法的應(yīng)用。1、on()事件處理函數(shù)on()事件處理函數(shù)是最傳統(tǒng)的事件處理方法。它一般直接作用于按鈕實例,也可以作用于影片剪輯實例。on()函數(shù)的一般形式為:on(鼠標事件){//程序,這些程序組成的函數(shù)體響應(yīng)鼠標事件}其中鼠標事件是“事件”觸發(fā)器,當發(fā)生此事件時,執(zhí)行事件后面大括號中的程序。按鈕可以響應(yīng)鼠標事件,還可以響應(yīng)KeyPress(按鍵)事件。對于按鈕而言,可指定觸發(fā)動作的按鈕時間有八種。1、press:事件發(fā)生于鼠標指針在按鈕上方,并按下鼠標左鍵時。2、release:事件發(fā)生于按鈕上方按下鼠標左鍵,接著松開鼠標左鍵時,也就是“單擊”。releaseOutside:事件發(fā)生于在按鈕上方按下鼠標左鍵,接著把鼠標指針移到按鈕之外,然后松開鼠標左鍵時。rollover:事件發(fā)生于鼠標指針滑入按鈕時。rollOut:事件發(fā)生于鼠標指針滑出按鈕時。dragOver:事件發(fā)生于按著鼠標左鍵不放,鼠標指針滑入按鈕時。dragOut:事件發(fā)生于按著鼠標左鍵不放,鼠標指針滑出按鈕時。keyPress:事件發(fā)生于用戶按下指定的按鍵時。范例3-5:制作動感菜單(1)新建一個Flash文檔。(2)在場景中建立一個按鈕實例,單擊按鈕實例,打開“動作”面板,輸入下列代碼:on(rollOver){ _parent.menu.stop();}//當鼠標指針在按鈕實例的范圍之內(nèi)時,讓主場景中的影片剪輯實例停止播放on(rollOut){ _parent.menu.play();}//當鼠標指針離開按鈕實例時,讓主場景中的影片剪輯實例又開始播放(3)按住Ctrl鍵不放,用鼠標拖動復(fù)制出七個按鈕實例,選中全部按鈕實例,調(diào)出“對齊”面板,分別單擊對齊面板上的“上對齊”和“水平居中分布”按鈕。(4)保持按鈕元件實例的選中狀態(tài),按F8鍵轉(zhuǎn)換為影片剪輯元件,并在“屬性”面板中把實例名設(shè)置為menu。雙擊該影片剪輯實例,進入到元件的編輯狀態(tài),創(chuàng)建一個補間動畫。(5)測試影片,可看到菜單不斷運動,將鼠標指針移向按鈕,菜單停止運動,鼠標指針離開按鈕,菜單又開始運動。如果想讓菜單鏈接到網(wǎng)頁上,可以在按鈕實例上加上:on(release){getURL(“”);}范例3-6:創(chuàng)建具有按鈕狀態(tài)的影片剪輯(1)新建一個Flash文檔。(2)在場景中制作一個影片剪輯實例,雙擊此實例進入元件的編輯場景,選中第一幀,打開屬性面板,設(shè)置幀標簽為“_up”。(3)分別在第二幀和第三幀插入一關(guān)鍵幀,幀標簽分別為_over和_down,同時修改場景中的圖形。(4)返回主場景,單擊實例,打開“動作”面板,輸入下列代碼:on(release){ trace("這是一個影片剪輯實例");}(5)測試影片。2、OnClipEvent()事件處理函數(shù)OnClipEvent()事件處理函數(shù)與on()事件處理函數(shù)不同,它只能作用于影片剪輯實例,相關(guān)的代碼放在影片剪輯實例的“動作”面板中。onClipEvent()函數(shù)的一般形式為onClipEvent(事件名稱){//程序}編寫程序時,F(xiàn)lash會自動提示onClipEvent()的事件名稱,對于影片剪輯而言,可指定的觸發(fā)事件有9種,分別如下:1、load:影片剪輯一旦被實例化并出現(xiàn)在時間軸中時,即啟動此動作。范例3-7:認識load事件(1)新建一個Flash文檔(2)在場景中建一個影片剪輯實例,選中該實例,打開“動作”面板,輸入下列代碼:onClipEvent(load){trace(“發(fā)生了load事件”);}(3)測試影片,在“輸出”面板中可以看到輸出的信息,只有一次。(4)返回主場景,在第二幀插入一幀,讓其循環(huán),測試影片,雖然幀不斷的循環(huán)播放,但輸出的信息也只有一次。(5)返回主場景,在第二幀插入一空白關(guān)鍵幀,讓其循環(huán)播放,測試影片,將看到信息不斷出現(xiàn)。通過測試可以看出,當影片剪輯實例出現(xiàn)在時間軸上時,load事件發(fā)生,當實例在事件軸上消失又重新出現(xiàn)時,也會發(fā)生load事件。2、unload:在時間軸中刪除影片剪輯之后,此動作在第一幀中啟動。在向受影響的幀附加任何動作以前,先處理與unload影片剪輯事件關(guān)聯(lián)的動作。Unload事件與load事件剛好相反,當影片剪輯實例在時間軸上消失時才會發(fā)生。在范例3-7的基礎(chǔ)上,執(zhí)行以下操作。(1)打開影片剪輯實例的“動作”面板,把代碼改為onClipEvent(load){trace(“發(fā)生了load事件”);}onClipEvent(unload){trace(“發(fā)生了unload事件”);}(2)移出第2幀上的空白關(guān)鍵幀,在第20幀插入幀,在第21幀插入一空白關(guān)鍵幀,在第40幀插入幀。(3)測試影片當影片剪輯實例出現(xiàn)在第一幀時,發(fā)生load事件,播放到第21幀,實例消失,發(fā)生unload事件,幀繼續(xù)播放,重復(fù)以上過程,間隔的發(fā)生load事件和unload事件。3、enterFrame:以影片剪輯幀頻不斷觸發(fā)的動作。首先處理與enterFrame影片剪輯事件關(guān)聯(lián)的動作,然后才處理附加到受影響幀的所有幀動作。enterFrame事件其實是一個不斷執(zhí)行的程序,執(zhí)行的速度取決于幀頻,F(xiàn)lash中默認的幀頻是12fbs,表示播放12幀需1秒的時間,利用這個原理,可以制作一個簡單的計時器。范例3-8:用enterFrame事件制作計時器(1)新建一個Flash文檔(2)選擇“修改”“文檔”命令,在彈出的“文檔屬性”對話框中把幀頻設(shè)為12,(3)在場景中建立一個動態(tài)文本,并在“屬性”面板中把變量名設(shè)置為time。(4)單擊“動態(tài)文本”,轉(zhuǎn)換為影片剪輯元件,選中影片剪輯實例,打開“動作”面板,輸入下列代碼:onClipEvent(load){ vartime=0; //代表時間 varrate=12; //代表flash的幀頻 vartemp=0; //臨時變量}onClipEvent(enterFrame){ temp+=1; //程序每執(zhí)行一次,temp加1 time=Math.round(temp/rate*100)/100; //把temp除以幀頻,并保留兩位小數(shù)}測試影片,觀看顯示的時間。4、mouseMove:每次移動鼠標指針時啟動此動作。_xmouse和_ymouse屬性用于確定當前鼠標指針位置。5、mouseDown:當按下鼠標左鍵時啟動此動作。6、mouseUp:當釋放鼠標左鍵時啟動此動作。對于這三個鼠標相應(yīng)的事件,要注意按鈕中的鼠標事件的區(qū)別,前者在影片的任何位置都能觸發(fā)事件,后者一定要單擊按鈕區(qū)域才會觸發(fā)事件。范例3-9:制作簡單的Flash涂鴉板(1)新建一個Flash文檔,創(chuàng)建一個影片剪輯元件,單擊確定按鈕。(2)返回主場景,從“庫”面板中拖出影片剪輯元件,創(chuàng)建一個空的影片剪輯實例。選中場景中的空影片剪輯實例,打開“動作”面板,輸入下列代碼:onClipEvent(mouseMove){ if(myDraw){ _root.lineStyle(0,0x000000,100);//定義線條的粗細為0磅,顏色為0x000000,透明度為100 _root.lineTo(_root._xmouse,_root._ymouse);//畫線的終點為鼠標指針的坐標 }}//當鼠標移動時,沿鼠標位置不斷畫線onClipEvent(mouseDown){ myDraw=true; _root.moveTo(_root._xmouse,_root._ymouse);}//鼠標按下時myDraw為真,并在鼠標位置定義畫線的起點onClipEvent(mouseUp){ myDraw=false;}//當鼠標釋放時,myDraw為假,停止畫線(3)測試影片使用畫線函moveTo()和lineTo(),只需在函數(shù)中加入?yún)?shù),如moveTo(x1,y1)代表從點(x1,y1)處開始畫線。lineTo(x2,y2)代表畫線的終點是(x2,y2)。使用這兩個函數(shù)之前必須,先用lineStyle()函數(shù)定義畫線的樣式。7、keyDown:當按下某個鍵時啟動此動作。8、keyUp:當釋放某個鍵時啟動次動作。范例3-10:旋轉(zhuǎn)的箭頭(1)新建一個Flash文檔(2)在場景中“直線工具”繪制箭頭。(3)選中全部線條線條,將其轉(zhuǎn)換為影片剪輯元件,把注冊點放在下方。(4)選中場景中的影片剪輯實例,打開“動作”面板,輸入下列代碼:onClipEvent(keyDown){ if(Key.getCode()==90){ _rotation-=6; } //如果按下“z”鍵,炮塔向左旋轉(zhuǎn)6度 if(Key.getCode()==88){ _rotation+=6; } //如果按下“x”鍵,炮塔向右旋轉(zhuǎn)6度}(5)測試影片。本范例程序代碼中的Key.getCode()獲得按鍵的鍵值,其中z鍵的鍵值為90,x鍵的鍵值為88。onClipEvent(keyUp){ trace(Key.getCode()); //如果按鍵被釋放,輸出按鍵的鍵值}測試影片,按任意鍵,可在“輸出”面板中輸出相應(yīng)的鍵值。data:當在loadVariables()或loadMoive()動作中接收數(shù)據(jù)時啟動此動作。3.4常用函數(shù)3.4.1時間軸控制函數(shù)1、play()與stop()播放與停止當前播放的swf文件使用方法:路徑.play();路徑.stop();如果要主場景中的實例名為ball的影片剪輯實例播放,可以下列的程序代碼:_root.ball.stop();2、gotoAndPlay()與gotoAndStop()gotoAndPlay()的功能是,將播放頭轉(zhuǎn)到場景中指定的幀并從該幀開始播放。gotoAndStop()的功能是,將播放頭轉(zhuǎn)到場景中指定的幀并停止。如果未指定場景,則播放頭將轉(zhuǎn)到當前場景中的指定幀。比如:gotoAndPlay(10);這個代碼的功能是,將播放頭轉(zhuǎn)到第10幀并從該幀開始播放。prevFrame()與nextFrame()將播放頭轉(zhuǎn)到上一幀或下一幀并停止。比如:on(release){nextFrame();}這段程序代碼的功能是,當用戶單擊按鈕時,播放頭轉(zhuǎn)到下一幀并停下來。注:類似的,prevScene()和nextScene()表示將播放頭移到上一場景或下一場景的第一幀開始播放。3.4.2duplicateMovieClip()函數(shù)與removeMovieClip()函數(shù)duplicateMovieClip()函數(shù)的作用是通過復(fù)制創(chuàng)建新的影片剪輯的實例。在Flash作品中常見的傾盆大雨、雪花飄飄、繁星點點等動畫特效,就是利用duplicateMovieClip()函數(shù)的功能來實現(xiàn)的。duplicateMovieClip()函數(shù)的一般形式為duplicateMovieClip(目標,新實例名,深度);其中有三個參數(shù):目標:被復(fù)制的影片剪輯的名稱和路徑。新實例名稱:被復(fù)制后得到的影片剪輯實例名稱。深度:深度代表影片剪輯在影片中的疊放次序,較低深度的影片剪輯實例在較高深度的影片剪輯的實例之下。如果復(fù)制出多個影片剪輯實例,要為每個影片剪輯實例指定唯一的深度值,如果有兩個實例的深度相同,后面復(fù)制產(chǎn)生的實例將覆蓋前面的實例。在使用duplicateMovieClip()函數(shù)時,要注意以下幾點1、復(fù)制得到的影片剪輯會保持父級影片剪輯原來的所有屬性,所以,原來的影片剪輯是靜止的,復(fù)制后的影片剪輯也是靜止的。并且一個疊放在另一個上。如果不給他們設(shè)置不同坐標,就只能看到編號最大的影片剪輯復(fù)本,而看不出復(fù)制的效果。2、原來的影片剪輯在做補間運動,那么復(fù)制品也要做同樣的運動,并且無論播放頭在原始影片剪輯中處于什么位置,復(fù)制的影片剪輯播放頭始終從第一幀開始。所以復(fù)制品和原影片剪輯始終有個時間差,因此即使不給復(fù)制的影片剪輯設(shè)置坐標,也可以看到復(fù)制品在運動。3、復(fù)制得到的影片剪輯實例經(jīng)常要與影片剪輯的屬性控制(特別是_x,_y,_xscale,_yscale,_alpha,_rotation等屬性的控制)結(jié)合才能發(fā)揮復(fù)制效果。范例3-11:復(fù)制一個影片剪輯實例(1)新建一個文檔,在場景中設(shè)置一個影片剪輯實例,名稱為ball。(2)在第一幀中加入如下代碼:duplicateMovieClip(“ball”,”ball2”,1)//復(fù)制一個實例名為ball2的影片剪輯實例,深度為1(3)測試影片,影片中可以看到新實例ball2,但看不到舊實例ball1,原因是新的實例和舊的實例的屬性完全一樣,包括他們的坐標、縮放度等,并且復(fù)制產(chǎn)生的實例的深度要比舊實例要高,所以ball2疊在了實例ball1的上面。要使兩個實例都可見,必須修改一個實例的屬性,在第二行代碼中加入ball2._x=ball._x+50測試影片。實例ball2的深度是在復(fù)制實例時指定的,為1。實例ball1的深度是最低的,深度的范圍是-16384到2130690045,任何Flash對象都不會超出這個范圍。范例3-12:復(fù)制2個影片剪輯實例(1)這個影片的第一幀上加入下列代碼:duplicateMovieClip("ball1","ball2",1);duplicateMovieClip("ball1","ball3",1);ball2._x=ball1._x+50*1;ball3._x=ball1._x+50*2;在影片中只有一個實例被復(fù)制出來,原因是ball2和ball3的深度是一樣的,實例ball2被實例ball3覆蓋。把第二行代碼改為duplicateMovieClip("ball1","ball3",2);要復(fù)制10個或者更多的影片剪輯實例,不要寫10行或者更過代碼,通過“+”運算符、循環(huán)語句和動態(tài)路徑可實現(xiàn)程序的簡化。范例3-13:復(fù)制多個影片剪輯實例這個影片的第一幀的代碼如下:vari=2;varnum=10;while(i<num){ duplicateMovieClip("ball1","ball"+i,i-1); this["ball"+i]._x=ball1._x+50*(i-1); this["ball"+i].insName=this["ball"+i]._name; this["ball"+i].dep=this["ball"+i].getDepth(); i++;}ball1.insName=ball1._name;ball1.dep=ball1.getDepth();通過duplicateMoiveClip()函數(shù)產(chǎn)生的實例可通過removeMovieClip()函數(shù)進行刪除。removeMovieClip()的一般形式為:removeMovieClip(實例名)范例:雪花飄飄3.4.3startDrag()函數(shù)與stopDrag()函數(shù)startDrag()函數(shù)的作用是使影片剪輯實例在影片播放過程中可以拖動。startDrag()函數(shù)的一般形式為:startDrag(target,[lock,left,top,right,bottom]);target表示要拖動的影片剪輯的目標路徑。Lock是一個布爾值,指定可拖動影片剪輯是鎖定到鼠標指針位置中央(true),還是鎖定到用戶首次單擊該影片剪輯的位置上(false)。此參數(shù)是可選的。Left、top、right、bottom這四個參數(shù)分別設(shè)置影片剪輯拖動的左、上、右、下的范圍,注意相對于影片剪輯父級坐標的值,這些值指定該影片剪輯被約束的矩形。這些參數(shù)是可選的。范例3-14:自定義鼠標指針(1)新建一個Flash文檔(2)在主場景中畫一箭頭,轉(zhuǎn)換為影片剪輯元件,注冊點在箭頭的中間命名為arrow。(3)單擊主場景的第一幀,加入如下代碼:startDrag(arrow,true);(4)測試影片。3-15:制作任意拖動的拖動條(1)新建一個Flash文檔。(2)在主場景中制作一個實例名為btn的按鈕實例,單擊按鈕實例,打開“動作”面板,輸入下列代碼:on(press){ startDrag(btn);}//當按下鼠標時,拖動按鈕on(release){ stopDrag();}//當釋放按鈕時,停止拖動按鈕(3)在場景中制作一個實例名為ball的影片剪輯實例,單擊此實例,打開“動作”面板,輸入下列代碼:onClipEvent(enterFrame){ this._x=_root.btn._x;}//ball的x坐標等于按鈕的x坐標(4)測試影片,任意拖動影片中的按鈕,觀看影片剪輯實例的運動。范例3-16:制作水平拖動的拖動條(1)新建一個Flash文檔(2)在主場景建一個實例名為ball的影片剪輯實例。(3)在主場景中建立一個按鈕實例,選中該實例,打開“動作”面板,輸入下列代碼:on(press){ startDrag(this,false,left,top,right,bottom);}//設(shè)置拖動的范圍,按下鼠標時拖動按鈕。on(release){ stopDrag();}//當釋放按鈕時,停止拖動按鈕(4)選中主場景中的按鈕,轉(zhuǎn)換為影片剪輯元件,單擊此實例,打開“動作”面板,輸入下列代碼:onClipEvent(load){ top=_y; bottom=_y;//上、下的坐標相同,只能左右拖動 left=_x; right=_x+100;//左右拖動的范圍,當前的x坐標到當前的x坐標加100}onClipEvent(enterFrame

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論