《二維動(dòng)畫(huà)制作Flash CS3案例教程》第7章 面向?qū)ο蟮某绦蛟O(shè)計(jì)_第1頁(yè)
《二維動(dòng)畫(huà)制作Flash CS3案例教程》第7章 面向?qū)ο蟮某绦蛟O(shè)計(jì)_第2頁(yè)
《二維動(dòng)畫(huà)制作Flash CS3案例教程》第7章 面向?qū)ο蟮某绦蛟O(shè)計(jì)_第3頁(yè)
《二維動(dòng)畫(huà)制作Flash CS3案例教程》第7章 面向?qū)ο蟮某绦蛟O(shè)計(jì)_第4頁(yè)
《二維動(dòng)畫(huà)制作Flash CS3案例教程》第7章 面向?qū)ο蟮某绦蛟O(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第7章面向?qū)ο蟮某绦蛟O(shè)計(jì)

知識(shí)概述:

1.了解面向?qū)ο缶幊痰幕靖拍?,初步掌握?chuàng)建對(duì)象和訪問(wèn)對(duì)象的方法。

2.初步掌握鍵盤(pán)(Key)對(duì)象、鼠標(biāo)(Mouse)對(duì)象、聲音(Sound)對(duì)象、時(shí)間(Date)對(duì)象和顏色(Color)對(duì)象的基本使用方法。

3.初步掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本方法和常用技巧。

7.1鍵盤(pán)和鼠標(biāo)對(duì)象—【任務(wù)36】按鍵控制飛鳥(niǎo)

【知識(shí)儲(chǔ)備】 1.面向?qū)ο缶幊痰幕靖拍? 在結(jié)構(gòu)化的程序設(shè)計(jì)中,我們要解決某一個(gè)問(wèn)題,是將問(wèn)題進(jìn)行分解,然后用許多功能不同的函數(shù)來(lái)實(shí)現(xiàn),數(shù)據(jù)與函數(shù)是分離的。面向?qū)ο蟮某绦蛟O(shè)計(jì)能夠有效地改進(jìn)結(jié)構(gòu)化程序設(shè)計(jì)中存在的問(wèn)題,它采用面向?qū)ο蟮姆椒▉?lái)解決問(wèn)題,不再將問(wèn)題分解為過(guò)程,而是將問(wèn)題分解為對(duì)象,要解決問(wèn)題必須首先確定這個(gè)問(wèn)題是由哪些對(duì)象組成的。對(duì)象是現(xiàn)實(shí)世界中可以獨(dú)立存在的、可以被區(qū)分的一個(gè)實(shí)體(也可以是一些概念上的實(shí)體),它有自己的屬性、作用于對(duì)象的操作(即作用于對(duì)象的方法)和對(duì)象響應(yīng)的動(dòng)作(即事件)。對(duì)象之間的相互作用通過(guò)消息傳送來(lái)實(shí)現(xiàn)。因此面向?qū)ο缶幊痰脑O(shè)計(jì)模式為“對(duì)象+消息”。在面向?qū)ο蟮木幊讨?,有幾個(gè)很重要的基本概念:類(lèi)、對(duì)象、屬性、方法、實(shí)例和繼承等。所謂的“類(lèi)”,可以打一個(gè)比喻,月餅?zāi)W涌梢钥闯墒且粋€(gè)“類(lèi)”,扣出的月餅是對(duì)象,每個(gè)月餅都繼承了模子(類(lèi))的屬性,比如模子的形狀是菱形,那扣出來(lái)的月餅就是菱形。每個(gè)月餅對(duì)象都具有它自己的特有屬性,例如,某個(gè)月餅的餡有蛋黃,某個(gè)月餅的餡有棗泥。通過(guò)一些方法可以改變這些屬性,例如把月餅切成四份等。在面向?qū)ο蟮木幊讨?,?duì)象是屬性和方法的集合,程序是由對(duì)象組成的。實(shí)例是類(lèi)的對(duì)象,F(xiàn)lash中的按鈕、影片剪輯和圖形實(shí)例都是類(lèi)的對(duì)象。類(lèi)的每個(gè)實(shí)例都繼承了類(lèi)的屬性和方法,例如,所有影片剪輯實(shí)例都是MovieClip類(lèi)的實(shí)例,可以將MovieClip類(lèi)的任何方法和屬性應(yīng)用于影片剪輯實(shí)例。屬性是對(duì)象的特性,方法是與類(lèi)關(guān)聯(lián)的函數(shù),是為了完成對(duì)對(duì)象屬性進(jìn)行操作的函數(shù),通過(guò)函數(shù)改變對(duì)象屬性的值。面向?qū)ο蟮某绦蛟O(shè)計(jì)是將問(wèn)題抽象成許多類(lèi),將對(duì)象的屬性和方法封裝成一個(gè)整體,237

“供程序設(shè)計(jì)者使用。2.創(chuàng)建對(duì)象和訪問(wèn)對(duì)象(1)創(chuàng)建對(duì)象:可以使用new操作符通過(guò)Flash內(nèi)置對(duì)象類(lèi)來(lái)創(chuàng)建一個(gè)對(duì)象。myDate=newdate();”這條語(yǔ)句就是使用了Flash8的日期類(lèi)創(chuàng)建了一個(gè)新對(duì)象(也叫實(shí)例化)。這里,對(duì)象myDate可以使用內(nèi)置對(duì)象date()的getDate()等方法和屬性。使用new操作符來(lái)創(chuàng)建一個(gè)對(duì)象需要使用構(gòu)造函數(shù)(構(gòu)造函數(shù)是一種簡(jiǎn)單的函數(shù),它用來(lái)創(chuàng)建某一類(lèi)型的對(duì)象)。ActionScript的內(nèi)置對(duì)象也是一種提前寫(xiě)好的構(gòu)造函數(shù)。(2)訪問(wèn)對(duì)象:可以使用點(diǎn)操作符來(lái)訪問(wèn)對(duì)象的屬性,在點(diǎn)操作符的左邊寫(xiě)入對(duì)象名,點(diǎn)操作符右邊寫(xiě)入要使用的對(duì)象。例如下面程序中,Sound1是對(duì)象,setVolume()是方法,通過(guò)點(diǎn)操作符來(lái)連接。Sound1=newsound(this);//實(shí)例化一個(gè)聲音對(duì)象Sound1Sound1.setVolume(30);//設(shè)置聲音對(duì)象Sound1的音量為30238

3.鍵盤(pán)(Key)對(duì)象 鍵盤(pán)對(duì)象可以從“動(dòng)作”面板命令列表區(qū)的“ActinScript2.0類(lèi)”→“影片”→“Key”目錄中找到。鍵盤(pán)(Key)對(duì)象的常用的常數(shù)如表7-1所示。 (1)鍵盤(pán)(Key)對(duì)象不需要經(jīng)過(guò)new聲明就可以使用它的方法和常數(shù)。

4.鍵盤(pán)對(duì)象偵聽(tīng)器 鍵盤(pán)(Key)對(duì)象偵聽(tīng)器(Listener)是用來(lái)偵聽(tīng)鍵盤(pán)的敲擊狀態(tài)。使用它涉及到4個(gè)方法。 (1)addListener方法

【格式】Key.addListener(newListener); 【功能】用來(lái)注冊(cè)一個(gè)偵聽(tīng)器(Listener)對(duì)象,以接受來(lái)自onKeyDown和onKeyUp的狀態(tài)。當(dāng)某個(gè)按鍵按下或松開(kāi)時(shí),不論輸入的方式如何,它會(huì)視狀況調(diào)用addListener內(nèi)注冊(cè)的對(duì)象的onKeyDown和onKeyUp兩個(gè)方法??梢酝瑫r(shí)有多個(gè)對(duì)象來(lái)偵聽(tīng)鍵盤(pán)的敲擊狀態(tài)。參數(shù)newListener是一個(gè)具有onKeyDown和onKeyUp兩個(gè)方法的函數(shù)對(duì)象名稱(chēng)。例如:Key.addListener(myListener);//將具有onKeyDown和onKeyUp兩個(gè)方法的函數(shù)myListener指

239

定為偵聽(tīng)鍵盤(pán)按鍵的函數(shù)對(duì)象。 (2)removeListener方法

【格式】Key.removeListener(Listener); 【功能】用來(lái)刪除參數(shù)Listener指定的與偵聽(tīng)器(Listener)關(guān)聯(lián)的函數(shù)的關(guān)聯(lián),刪除成功時(shí)返回true,否則返回false。例如:Key.removeListener(myListener);//刪除函數(shù)myListener

(3)onKeyDown方法

【格式】someListener.onKeyDown=function(){…語(yǔ)句…} 【功能】用來(lái)產(chǎn)生當(dāng)鍵盤(pán)的按鍵被按下時(shí)的后續(xù)動(dòng)作。使用前必須先建立一個(gè)Listener對(duì)象,再定義一個(gè)函數(shù)給這個(gè)對(duì)象,并使用addListener方法注冊(cè)鍵盤(pán)(Key)對(duì)象為L(zhǎng)istener。someListener是要設(shè)置為L(zhǎng)istener的對(duì)象(Objiect)名稱(chēng)。例如:myListener=newObject();//建立一個(gè)Listener對(duì)象myListener.onKeyDown=function(){myval=true};

240

//當(dāng)按鍵按下時(shí),myval的值為trueKey.addListener(myListener);//注冊(cè)一個(gè)偵聽(tīng)器,建立按鍵與myListener函數(shù)對(duì)象的關(guān)聯(lián)

(4)onKeyUp方法

【格式】someListener.onKeyUp=function(){…語(yǔ)句…} 【功能】用來(lái)產(chǎn)生當(dāng)鍵盤(pán)的按鍵被松開(kāi)時(shí)的后續(xù)動(dòng)作。

5.鼠標(biāo)(Mouse)對(duì)象 鼠標(biāo)(Mouse)對(duì)象不需要實(shí)例化。可以從“動(dòng)作”面板命令列表區(qū)的鍵盤(pán)對(duì)象可以從“動(dòng)作”面板命令列表區(qū)的“ActinScript2.0類(lèi)”→“影片”→“mouse”目錄中找到。 (1)hide方法

【格式】Mouse.hide() 【功能】隱藏鼠標(biāo)指針。 (2)show方法

【格式】Mouse.show() 【功能】顯示鼠標(biāo)指針。

241

(3)addListener方法

【格式】Mouse.addListener(newListener); 【功能】用來(lái)注冊(cè)一個(gè)偵聽(tīng)器(Listener)對(duì)象,以接受來(lái)自onMousDown、onMouseUp和onMouseMove的狀態(tài)。當(dāng)某個(gè)按鍵按下、松開(kāi)或經(jīng)過(guò)時(shí),不論輸入的方式如何,它會(huì)視狀況調(diào)用addListener內(nèi)注冊(cè)的對(duì)象的onMousDown、onMouseUp和onMouseMove三個(gè)方法??梢酝瑫r(shí)有多個(gè)對(duì)象來(lái)偵聽(tīng)鼠標(biāo)的按鍵狀態(tài)。參數(shù)newListener是一個(gè)具有onMousDown、onMouseUp和onMouseMove三個(gè)方法的函數(shù)對(duì)象名稱(chēng)。例如:Mouse.addListener(myListener);//將具有onMousDown、onMouseUp和onMouseMove三個(gè)方法的函數(shù)myListener指定為偵聽(tīng)鼠標(biāo)的按鍵狀態(tài)的函數(shù)。 (4)removeListener方法

【格式】Mouse.removeListener(Listener); 【功能】用來(lái)刪除參數(shù)Listener指定的與偵聽(tīng)器(Listener)關(guān)聯(lián)的函數(shù)的關(guān)聯(lián),刪除成功時(shí)返回true,否則返回false。例如:

242

Mouse.removeListener(myListener);//刪除函數(shù)myListener

(5)onMouseDown方法

【格式】someListener.onKeyDown=function(){…語(yǔ)句…} 【功能】用來(lái)產(chǎn)生當(dāng)鼠標(biāo)的按鍵被按下時(shí)的后續(xù)動(dòng)作。使用前必須先建立一個(gè)Listener對(duì)象,再定義一個(gè)函數(shù)給這個(gè)對(duì)象,并使用addListener方法注冊(cè)鼠標(biāo)(Mouse)對(duì)象為L(zhǎng)istener。someListener是要設(shè)置為L(zhǎng)istener的對(duì)象(Object)名稱(chēng)。

7.2聲音對(duì)象—【任務(wù)37】播放外部MP3 【知識(shí)儲(chǔ)備】 1.聲音(Sound)對(duì)象的構(gòu)造函數(shù)

【格式】newSound([target])

其中的參數(shù)target是Sound對(duì)象操作的影片剪輯實(shí)例。此參數(shù)是可選的??刹捎谩癿ySound=newSound();”或“mySound=newSound(target);”命令。

【功能】使用new操作符實(shí)例化sound對(duì)象,即為指定的影片剪輯創(chuàng)建新的Sound對(duì)象。如果

243

沒(méi)有指定目標(biāo)實(shí)例target(目標(biāo)),則Sound對(duì)象控制影片中的所有聲音。如果指定target,則只對(duì)指定的對(duì)象起作用。實(shí)例1、下面的實(shí)例創(chuàng)建了一個(gè)名字為和hsound1的Sound對(duì)象新實(shí)例。程序中的第二行調(diào)用setVolume方法并將影片中的所有聲音的音量調(diào)整為60%。hsound1=newSound();hsound1.setVolume(60);實(shí)例2、下面的實(shí)例創(chuàng)建Sound對(duì)象的新實(shí)例moviesound,將目標(biāo)影片剪輯myMovie傳遞給它,然后調(diào)用start方法,播放myMovie中的所有聲音。moviesound=newSound(myMovie);moviesound.start();2.聲音(Sound)對(duì)象的方法和屬性(1)mySound.attachSound方法【格式】mySound.attachSound(“idName”)【功能】將“庫(kù)”面板內(nèi)的指定的聲音元件載入場(chǎng)景中。也就是將“庫(kù)”面板中的一個(gè)聲音元件綁定,綁定后就可以用聲音的其他方法來(lái)控制聲音的各個(gè)屬性。其中,“idName”是指庫(kù)中聲音元件244

的鏈接標(biāo)識(shí)符(即ID)名稱(chēng),它是在“鏈接屬性”對(duì)話框“標(biāo)識(shí)符”文本框中輸入的。右擊“庫(kù)”面板中的聲音元件,調(diào)出快捷菜單,單擊“鏈接”菜單命令,可調(diào)出如圖7-4所示的“鏈接屬性”對(duì)話框。在“標(biāo)識(shí)符”文本框內(nèi)輸入元件的鏈接標(biāo)識(shí)符名稱(chēng),再選擇第1和第3個(gè)復(fù)選框,需要的話還應(yīng)該在“URL”文本框內(nèi)輸入U(xiǎn)RL數(shù)據(jù),單擊“確定”按鈕退出。圖

7-4

“鏈接屬性”對(duì)話框(2)start方法【格式】sound.start()245

【功能】開(kāi)始播放當(dāng)前的聲音對(duì)象。(3)stop方法【格式】sound.stop()【功能】停止正在播放的聲音對(duì)象。(4)setVolume方法【格式】sound.setVolume(n)【功能】用來(lái)設(shè)置當(dāng)前聲音對(duì)象音量的大小。其中參數(shù)n可以是一個(gè)整數(shù)值或一個(gè)變量,其值為0到100之間的整數(shù),0為無(wú)聲,100是最大音量。(5)sound.getVolume方法【格式】sound.getVolume()功能:返回一個(gè)0到100之間的整數(shù),該整數(shù)是當(dāng)前聲音對(duì)象的音量,0是無(wú)音量,100是最高音量。可以將sound.getVolume()的值賦給一個(gè)變量。它的默認(rèn)值是100。(6)mySound.setPan方法246

【格式】mySound.setPan(pan)

其中,參數(shù)pan是一個(gè)整數(shù),它指定聲音的左右均衡。它的有效值范圍為-100到100,其中-100表示僅使用左聲道,100表示僅使用右聲道,而0表示在兩個(gè)聲道間平均地均衡聲音。

【功能】用來(lái)確定聲音在左右聲道中如何播放。對(duì)于單聲道聲音,pan確定聲音通過(guò)哪個(gè)聲道播放。例如:下面的例子創(chuàng)建一個(gè)聲音(Sound)對(duì)象實(shí)例S,并附加一個(gè)來(lái)自“庫(kù)”面板的鏈接標(biāo)識(shí)符為“S1”的聲音。它還調(diào)用setVolume和setPan方法來(lái)控制“S1”聲音。

onClipEvent(mouseDown){ S=newSound(this);//創(chuàng)建一個(gè)聲音對(duì)象S S.attachSound("S1"); S.setVolume(80); S.setPan(-70);S.start();//開(kāi)始播放聲音對(duì)象}

(7)mySound.getPan方法

【格式】mySound.getPan() 【功能】這個(gè)方法返回在上一次使用setPan方法時(shí)設(shè)置的pan值,它是一個(gè)從-100到100之間

247

的整值,這個(gè)值代表左右聲道的音量,-100到0是左聲道的值,0到100是右聲道的值(0平衡地設(shè)置左右聲道)。該面板設(shè)置控制影片中當(dāng)前和將來(lái)聲音的左右均衡。此方法是用setVolume或setTransform方法累積的。(8)mySound.loadSound方法【格式】mySound.loadSound("url",isStreaming)其中,url是MP3聲音文件在服務(wù)器上的位置。isStreaming是一個(gè)布爾值,它指示聲音是事件聲音還是流聲音?!竟δ堋繉P3文件加載到聲音(Sound)對(duì)象的實(shí)例中??梢允褂胕sSteaming參數(shù)指示該聲音是一個(gè)事件(Event)聲音還是一個(gè)流(Streaming)聲音。事件聲音在完全加載后才能播放。流聲音在下載的同時(shí)播放。當(dāng)接收的數(shù)據(jù)足以啟動(dòng)解壓縮程序時(shí),播放開(kāi)始。與事件聲音一樣,流聲音僅存在于虛擬內(nèi)存中,不能將其下載到硬盤(pán)。例如:下面的實(shí)例是加載事件聲音。S1.loadSound("http://serverpath:port/mp3filename",false);例如:下面的實(shí)例是加載流聲音。248

s.loadSound("http://serverpath:port/mp3filename",true);(9)mySound.setTransform方法【格式】mySound.setTransform(soundTransformObject)其中,參數(shù)soundTransformObject是一個(gè)使用Object對(duì)象的創(chuàng)建的聲音變化對(duì)象的名稱(chēng)。【功能】用來(lái)設(shè)置聲音對(duì)象的變化值,其中mySound是一個(gè)使用聲音對(duì)象創(chuàng)建的對(duì)象名稱(chēng)。其中屬性有:ll(控制左聲道進(jìn)入左揚(yáng)聲器音量)、lr(控制右聲道進(jìn)入左揚(yáng)聲器音量)、rr(控制右聲道進(jìn)入右揚(yáng)聲器音量)、rl(控制左聲道進(jìn)入右揚(yáng)聲器音量)。它們?nèi)≈禐?100到100。通過(guò)下面的公式可以計(jì)算左右音量的大?。鹤筝敵?左輸入*ll+右輸入*lr,右輸出=右輸入*rr+左輸入*rl。如果不指定這幾個(gè)屬性,系統(tǒng)默認(rèn)為:ll=100,lr=0,rr=100,rl=0??梢允紫仁褂肙bject對(duì)象創(chuàng)建一個(gè)聲音變化對(duì)象,然后再通過(guò)這個(gè)聲音變化對(duì)象設(shè)置聲音對(duì)象mySound的4個(gè)屬性。例如:mySound.attachSound("thisSong");//利用attachSound方法綁定一個(gè)聲音myTransformObject=newObject();//構(gòu)造一個(gè)聲音變化對(duì)象myTransformObjectmyTransformObject.ll=50;myTransformObject.lr=50;249

myTransformObject.rr=50;myTransformObject.rl=50;//將立體聲音的左右輸入平均分配給揚(yáng)聲器,形成單聲道m(xù)ySound.setTransform(myTransformObject);//將聲音變化對(duì)象myTransformObject傳遞給setTransform方法(10)mySound.getTransform方法【格式】mySound.getTransform();【功能】返回最后一次mySound.setTransform方法所設(shè)置的聲音對(duì)象的變化值。(11)Sound.getBytesLoaded方法【格式】Sound.getBytesLoaded()【功能】返回指示所加載字節(jié)數(shù)的整數(shù)。返回為指定聲音(Sound)對(duì)象加載(進(jìn)入流)的字節(jié)數(shù)??梢员容^getBytesLoaded的值與getBytesTotal的值,以確定已加載聲音的百分比。(12)Sound.getBytesTotal方法【格式】Sound.getBytesTotal()【功能】返回一個(gè)整數(shù),以字節(jié)為單位指示指定聲音(Sound)對(duì)象的總大小。250

(13)duration屬性【格式】mySound.duration【功能】它是只讀屬性。給出聲音的持續(xù)時(shí)間,以毫秒為單位。(14)position屬性【格式】mySound.position【功能】它是只讀屬性。給出聲音已播放的毫秒數(shù)。如果聲音是循環(huán)的,則在每次循環(huán)開(kāi)始時(shí),位置將被重置為0。7.3時(shí)間對(duì)象—【任務(wù)38】熒光數(shù)字表【知識(shí)儲(chǔ)備】1.時(shí)間(Date)對(duì)象實(shí)例化的格式時(shí)間(Date)對(duì)象是將計(jì)算機(jī)系統(tǒng)的時(shí)間添加到對(duì)象實(shí)例中去。時(shí)間對(duì)象可以從“動(dòng)作”面板命令列表區(qū)的“ActinScript2.0類(lèi)”→“核心”→“Date”目錄中找到。時(shí)間(Date)對(duì)象實(shí)例化的格式如下。251

myDate=newdate();2.時(shí)間對(duì)象的常用方法時(shí)間對(duì)象的常用方法如表7-3所示。7.4顏色對(duì)象—【任務(wù)39】RGB調(diào)色板【知識(shí)儲(chǔ)備】顏色(Color)對(duì)象可以從“動(dòng)作”面板命令列表區(qū)的“ActinScript2.0類(lèi)”→“影片”→“Color”目錄中找到。1.顏色(Color)對(duì)象實(shí)例化的格式【格式】myColor=newColor(target);【功能】實(shí)例化一個(gè)顏色對(duì)象target。參數(shù)target是用來(lái)指定影

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論