課件常用腳本語(yǔ)言(ActionScript)實(shí)例
第一節(jié)
幾個(gè)簡(jiǎn)單交互實(shí)例,一般課件制作中必須用到的腳本語(yǔ)言極其功能的實(shí)現(xiàn)。
一、 設(shè)置全屏尺寸(使畫(huà)面布滿整個(gè)屏幕)
幀上的腳本語(yǔ)言:
將如下腳本語(yǔ)言寫(xiě)在主場(chǎng)景的第一幀上。
fscommand("fullscreen","true");
//調(diào)用Flash命令集中的命令,滿屏,且當(dāng)條件為真的時(shí)候。
★語(yǔ)詞解釋:
fs——Flash中的命令集 command——命令 full——布滿 screen——屏幕 true——真 false——假
★操作注意:
1. 要在主場(chǎng)景中最上一層專門建立一個(gè)層,層的名字就命名為“as或Action”,只用來(lái)寫(xiě)腳本語(yǔ)言,這里的腳本多半是“stop();” 。
2. 寫(xiě)在幀上的腳本語(yǔ)言必須點(diǎn)選該幀,也就是在寫(xiě)腳本前先點(diǎn)擊這個(gè)幀(選中對(duì)象再操作)。
3. 分辨率設(shè)置,一般是設(shè)置成800×600像素。
4. 所有的腳本只能寫(xiě)在幀上、按鈕上和影片剪輯上。
5. 寫(xiě)在什么上就是要在寫(xiě)前先點(diǎn)擊什么。
6. 只有在場(chǎng)景中才能對(duì)影片剪輯元件和按鈕元件元件以及幀寫(xiě)入腳本(例如按鈕沒(méi)放上場(chǎng)景,則寫(xiě)不上去腳本語(yǔ)言)。
二、 退出(退出Flash動(dòng)畫(huà)的運(yùn)行,也就是關(guān)閉。)
按鈕上的腳本語(yǔ)言:(把腳本語(yǔ)言寫(xiě)在按鈕上。先點(diǎn)選主場(chǎng)景中的那個(gè)按鈕,再打開(kāi)動(dòng)作面板來(lái)寫(xiě)腳本。)
on(release){
fscommand("quit");
}
//當(dāng)鼠標(biāo)按下再釋放的時(shí)候,運(yùn)行命令集中的“退出”命令。
★語(yǔ)詞解釋:
on——在…的時(shí)候 release——釋放 quit——退出
★操作注意:
1. 按鈕上的腳本語(yǔ)言,要先做好按鈕或使用庫(kù)中的按鈕,或者將其他元件轉(zhuǎn)換成按鈕,再將該按鈕拖放到場(chǎng)景中。寫(xiě)腳本前先點(diǎn)選場(chǎng)景中的該按鈕,再打開(kāi)動(dòng)作面板寫(xiě)腳本語(yǔ)言。
2. 也可以點(diǎn)“關(guān)閉”窗口來(lái)退出。
三、 前進(jìn)(向前走一步,動(dòng)畫(huà)向下一個(gè)步驟運(yùn)行,或是快進(jìn)。)
按鈕上的腳本語(yǔ)言:
on(release){
nextFrame();
}
//當(dāng)鼠標(biāo)按下再釋放的時(shí)候,往下走一幀(前進(jìn)一幀)。
★語(yǔ)詞解釋:
next——下一個(gè) frame——幀
★操作注意:
1. 腳本語(yǔ)言中的單詞的大小寫(xiě):凡是開(kāi)頭的單詞首字母是要小寫(xiě)的,而中間的和后面的單詞的首字母則要大寫(xiě)。在Flash中的ActionScript 語(yǔ)言里是要區(qū)分大小寫(xiě)的。
2. 當(dāng)我們?cè)趯?xiě)腳本語(yǔ)言的時(shí)候,邊打字邊可以看出寫(xiě)對(duì)了沒(méi)有。當(dāng)一個(gè)語(yǔ)句部分打字完了的時(shí)候,那個(gè)語(yǔ)句部分文字的顏色就變成了藍(lán)色,如果還是黑色的,說(shuō)明這個(gè)語(yǔ)句沒(méi)打?qū)Α?br />
3. 請(qǐng)大家養(yǎng)成背語(yǔ)句的好習(xí)慣,別用助手或其他的幫助來(lái)添加語(yǔ)句。也就是要把整個(gè)語(yǔ)句記住,一個(gè)個(gè)往上打字,不依賴工具。
四、 后退(后退一幀,或是返回)
按鈕上的腳本語(yǔ)言:
on(release){
prevFrame();
}
//當(dāng)鼠標(biāo)按下再釋放的時(shí)候,往上走一幀(后退一幀)。
★語(yǔ)詞解釋:
prev——(previous)返回上一級(jí)
五、 播放
按鈕上的腳本語(yǔ)言:
on(release){
play();
}
//當(dāng)鼠標(biāo)按下再釋放的時(shí)候,運(yùn)行動(dòng)畫(huà)?;蜷_(kāi)始播放。
★語(yǔ)詞解釋:
play——播放
六、 幀跳轉(zhuǎn)(從某一幀跳轉(zhuǎn)到任意的某一幀。這是很有用的腳本語(yǔ)言,也是用得比較多的交互腳本語(yǔ)言,簡(jiǎn)潔而方便。)
按鈕上的腳本語(yǔ)言:
on(release){
stopAllSounds();
gotoAndStop(81);
}
//當(dāng)鼠標(biāo)按下再釋放的時(shí)候,停止所有的聲音,跳轉(zhuǎn)并且停在第81幀處。
★語(yǔ)詞解釋:
stop——停止 all——所有的 sound——聲音
goto——轉(zhuǎn)到 and——和
七、 控制對(duì)象的顯示(多用于填空)(讓對(duì)象可見(jiàn)與不可見(jiàn)的控制)
按鈕上的腳本語(yǔ)言:
on(release){
stopAllSounds();
t1._visible=!t1._visible;
}
同時(shí),對(duì)應(yīng)的幀上的腳本語(yǔ)言為:
stop();
t1._visible=0
t2._visible=0
t3._visible=0
t4._visible=0
t5._visible=0
//當(dāng)鼠標(biāo)按下再釋放的時(shí)候,停止所有的聲音,按鈕的對(duì)象——影片剪輯實(shí)例t1為可見(jiàn)的時(shí)候,則變?yōu)椴豢梢?jiàn);如果不可見(jiàn),則變?yōu)榭梢?jiàn)。
//(幀上的腳本)初始化——設(shè)置影片剪輯實(shí)例t1、t2、t3、t4、t5等不可見(jiàn)。
★語(yǔ)詞解釋:
visible——可見(jiàn) !——非(邏輯符號(hào):反)(相反的意思)
★操作注意:
1. 影片剪輯實(shí)例的名稱——t1,一定要在場(chǎng)景的屬性面板中將“實(shí)例名稱”打字為t1 。
2. 邏輯運(yùn)算符:(基本的邏輯——與、或、非)
表1 邏輯運(yùn)算符
名 稱
運(yùn)算符號(hào)
表達(dá)式
說(shuō) 明
與(AND)
&&
A&&B
只有A和B兩個(gè)值都成立,整個(gè)條件才成立。
或(OR)
||
A||B
只要A或B任何一個(gè)成立,整個(gè)條件就算成立。
非(NOT)
!
!A
把成立的變?yōu)椴怀闪⒌模巡怀闪⒌淖優(yōu)槌闪ⅰ?br />
★幫助說(shuō)明:
1.填空題的制作方法和步驟:
(1)、在主場(chǎng)景中畫(huà)一個(gè)矩形,改為漸變色,打開(kāi)屬性面板,設(shè)置它的寬為800像素,高為600像素,x的值為0,y的值為0,接著把它轉(zhuǎn)化為影片剪輯元件,命名為“背景圖1”。我們就把這個(gè)背景圖1當(dāng)作在其他影片剪輯元件里的一個(gè)模子——是主場(chǎng)景的尺寸和位置。
(2)、添加一個(gè)“影片剪輯元件”,元件名就叫做“填空1”。
(3)、將制作好了的“背景圖1”元件(這個(gè)背景圖元件最好在主場(chǎng)景中畫(huà)一個(gè)矩形,并對(duì)齊場(chǎng)景工作區(qū)——800×600)放在這個(gè)“填空1”的第一層里,且中心對(duì)齊。
(4)、再把影片剪輯元件“填空1”從庫(kù)里拖放到場(chǎng)景中去,并且對(duì)齊中心。在“填空1”里再加一個(gè)層,層的名字就叫做“文字”。把其他的層上鎖和關(guān)眼,只留這個(gè)文字層。我們就在這個(gè)層里做填空題的文字部分,先把所有的內(nèi)容都做上去,調(diào)整好外觀。但是,不要讓它們成為一個(gè)整體而是可以分開(kāi)的各個(gè)部分。
(4)、再把影片剪輯元件“填空1”從庫(kù)里拖放到場(chǎng)景中去,并且對(duì)齊中心。在“填空1”里再加一個(gè)層,層的名字就叫做“文字”。把其他的層上鎖和關(guān)眼,只留這個(gè)文字層。我們就在這個(gè)層里做填空題的文字部分,先把所有的內(nèi)容都做上去,調(diào)整好外觀。但是,不要讓它們成為一個(gè)整體而是可以分開(kāi)的各個(gè)部分。
(5)、在主場(chǎng)景里的影片剪輯“填空1”里再加新的層,將文字層里的要填空的括號(hào)里的內(nèi)容剪切到這個(gè)層,選“粘貼到當(dāng)前位置”。把所有的該分離的部分都一個(gè)個(gè)分離到別的新建立的層中的“當(dāng)前位置”上,并把它轉(zhuǎn)化為影片剪輯元件和命名為t1、t2、t3……別忘了在屬性面板里也要把“實(shí)例名稱”改為t1 。
(6)、加一個(gè)新層,在里面對(duì)著那括號(hào)的位置和大小畫(huà)一個(gè)矩形,接著把它轉(zhuǎn)化為按鈕元件。然后編輯這個(gè)按鈕元件。按鈕的四個(gè)幀,先選最后一個(gè)幀“插入關(guān)鍵幀”。接著把第一幀選中,在這個(gè)幀里把那個(gè)矩形刪除。這樣,我們就做了一個(gè)隱藏按鈕了。這個(gè)按鈕就是我們要寫(xiě)腳本語(yǔ)言的按鈕。它對(duì)應(yīng)的填空內(nèi)容(影片剪輯元件t1)就是這個(gè)按鈕腳本語(yǔ)言的對(duì)象。
(7)、有幾個(gè)要填空的就做幾個(gè)按鈕元件,相應(yīng)的也把那需要填空的答案(“文字”或“圖片”)也轉(zhuǎn)換成(有幾個(gè)就轉(zhuǎn)換幾個(gè))影片剪輯元件。
(8)、好了,我們可以把那個(gè)做參照的“背景圖1”元件所在的層刪除掉。點(diǎn)選按鈕元件,寫(xiě)上腳本語(yǔ)言。然后在影片剪輯元件“填空1”里最上面的層上再加一新層,寫(xiě)上幀腳本語(yǔ)言。
2.不要在主場(chǎng)景里做一大堆東西,而要把想做的內(nèi)容都做到影片剪輯元件或其他元件里,再把這些元件拖放到主場(chǎng)景中。要使得主場(chǎng)景表面看起來(lái)很簡(jiǎn)潔,這不是為了主場(chǎng)景好看。
3.我們已經(jīng)看到影片剪輯元件里還可以套另外的影片剪輯元件,這是個(gè)基本的技巧,就象程序的嵌套一樣。大的套住小的,小的嵌在大的里面。嵌套可以多重多層。嵌套還可以是別的其他元件(如在影片剪輯元件里套其他影片剪輯元件和按鈕元件以及圖形元件)。
4.用Flash來(lái)做課件,要學(xué)會(huì)用積木組合的方法。多做些元件,因?yàn)樵梢灾貜?fù)使用,使得我們做的課件的文件比較小。修改一個(gè)元件能使得凡是使用這個(gè)元件的地方都修改了,更省事。
5.對(duì)層和元件要給相應(yīng)的名字,剛開(kāi)始學(xué)做課件的時(shí)候如果不習(xí)慣英文的話,就用點(diǎn)中文。但是,不要全部用中文,能用英文的地方盡量用,加強(qiáng)自己的英文訓(xùn)練。也可以用拼音來(lái)代替。要逐漸養(yǎng)成運(yùn)用英文的習(xí)慣,慢慢積累,多了就自然熟悉啦。
八、 鏈接網(wǎng)站(運(yùn)行Flash動(dòng)畫(huà)的時(shí)候,當(dāng)點(diǎn)擊某個(gè)按鈕時(shí),就直接打開(kāi)了我們想要的網(wǎng)頁(yè)。)
按鈕上的腳本語(yǔ)言:
on(release){
getURL("http://www.hao123.com/","_blank");
}
//當(dāng)鼠標(biāo)按下再釋放的時(shí)候,獲得網(wǎng)站地址“網(wǎng)址之家”(的空白頁(yè))。
★語(yǔ)詞解釋:
get——獲得,到達(dá) URL——固定資源定位器(網(wǎng)站地址)
blank——空白
★操作注意:
1.當(dāng)我們寫(xiě)完了腳本語(yǔ)言的時(shí)候,請(qǐng)點(diǎn)“語(yǔ)法檢查”按鈕(√)讓Flash自己給你做個(gè)檢查,沒(méi)問(wèn)題了才關(guān)掉動(dòng)作面板。
2.按鈕上的腳本語(yǔ)言也可以用幀上的語(yǔ)言來(lái)代替,其格式是:
★知識(shí)擴(kuò)充:
運(yùn)算符
表2 ActionScript的算術(shù)運(yùn)算符
運(yùn)算符
說(shuō) 明
+
相 加
-
相 減
*
相 乘
/
相 除
%
模運(yùn)算(取余數(shù))
賦值是“=”,而Flash里邊的等于是“==”兩個(gè)相連的等號(hào)。
程序里的等號(hào)的意義是把等號(hào)右邊的值或運(yùn)算值賦給等號(hào)左邊的元素。
九、 加載外部動(dòng)畫(huà)、圖片等(網(wǎng)絡(luò)上有很多課件資源,老師們也下載一些課件來(lái)用。我們希望把這些課件也做到自己的課件中去,而直接導(dǎo)入往往會(huì)破壞文件的結(jié)構(gòu),所以就可以使用加載動(dòng)畫(huà)的方法,把這些課件完整地做到自己的課件中去播放。外部就是那動(dòng)畫(huà)不在這個(gè)Flash里,但是要放在和這個(gè)Flash動(dòng)畫(huà)的播放文件相同的目錄里——在同一個(gè)文件夾下。加載圖片也和加載動(dòng)畫(huà)一樣,所以只講加載課件動(dòng)畫(huà)了。)(下面我們將從很具體的步驟開(kāi)始)
1. 打開(kāi)Flash 8 先做基本設(shè)置。
(1)、菜單欄的: 窗口—工具欄—主工具欄(勾選)、控制器(勾選)
(2)、新建一個(gè)Flash文檔,設(shè)置文檔屬性:標(biāo)題—***課件,尺寸—800×600像素,幀頻—24幀/秒(fps),點(diǎn)“設(shè)為默認(rèn)值”按鈕,OK 。
(3)、先做文檔的保存(注意:建立一個(gè)專門的文件夾,文件夾里再建立幾個(gè)文件夾分別放素材和相關(guān)的東西,這個(gè)Flash文檔就放在這個(gè)文件夾的根目錄下,文檔名可以用拼音如FG1,就是風(fēng)光1。)
(4)、設(shè)置場(chǎng)景顯示比例為25%,好了,我們開(kāi)始做。
假設(shè)我們要加載的動(dòng)畫(huà)文件是叫jz.swf(加載)
2.先做個(gè)背景圖元件當(dāng)做其他元件的場(chǎng)景模板(這個(gè)很重要的)。
(1)、畫(huà)一矩形:按下矩形工具,設(shè)置:打開(kāi)混色器面板,調(diào)節(jié)好線性的兩種顏色,畫(huà)出帶漸變色的矩形,再用填充變形工具把這個(gè)矩形拉成40度左右,選中這個(gè)畫(huà)好了的矩形,在其屬性面板上將它的寬高設(shè)置為800×600,x和y都是0,它就和場(chǎng)景大小一樣位置相等了。
(2)、把這個(gè)矩形轉(zhuǎn)換成影片剪輯元件。元件名叫“背景圖1”。它就到庫(kù)中去了。
(3)、在主場(chǎng)景中把這個(gè)元件刪除掉。以后要用影片剪輯元件做什么的時(shí)候,就把它放到里面的第一層里做場(chǎng)景的模板。我們就能在這個(gè)元件里看到場(chǎng)景的位置和大小尺寸了。它為我們做其他的東西帶來(lái)了很方便的參考。
3.加載的外部動(dòng)畫(huà)是要放到一個(gè)影片剪輯中去的,而不是直接放到場(chǎng)景中,我們來(lái)做這個(gè)影片剪輯。在場(chǎng)景中畫(huà)一矩形把這個(gè)矩形轉(zhuǎn)換成影片剪輯—注冊(cè)點(diǎn)選左上角—名稱—loadswf(就是加載swf動(dòng)畫(huà)文件的意思)—OK。請(qǐng)記住這個(gè)影片剪輯的名字,也在它的屬性面板里將實(shí)例名稱改為loadswf,返回場(chǎng)景。
4.將場(chǎng)景中的loadswf元件點(diǎn)一下,設(shè)置屬性里x和y為0就對(duì)齊了場(chǎng)景左上角啦,在屬性面板里將“實(shí)例名稱”改為loadswf。再打開(kāi)動(dòng)作面板,這是幀上的腳本語(yǔ)言,先點(diǎn)場(chǎng)景里的那個(gè)影片剪輯元件,再打開(kāi)動(dòng)作面板寫(xiě)腳本語(yǔ)言。
寫(xiě)上腳本語(yǔ)言:
onClipEvent(data){
this._width=800;
this._height=600;
}
//當(dāng)影片剪輯加載數(shù)據(jù)的時(shí)候,畫(huà)面的尺寸設(shè)置為800×600。
★語(yǔ)詞解釋:
clip——夾子、剪輯(影片剪輯) event——事件、場(chǎng)合
data——數(shù)據(jù) this——這個(gè) width——寬度 height——高度
5.場(chǎng)景里加一層,名—按鈕1,別的層上鎖,在哪一層做事就只開(kāi)哪一層的鎖,放一個(gè)按鈕到這個(gè)層來(lái)。一個(gè)元件放一個(gè)層里,不要把很多元件放到一個(gè)層里去。在場(chǎng)景里點(diǎn)一下這個(gè)按鈕開(kāi)始寫(xiě)腳本語(yǔ)言。
6.打開(kāi)動(dòng)作面板寫(xiě):(這是按鈕上的腳本語(yǔ)言,所以先在場(chǎng)景里點(diǎn)一下那按鈕,再打開(kāi)動(dòng)作面板才能寫(xiě)腳本語(yǔ)言。)
on(release){
unloadMovie("swf");
loadMovie("jz.swf","loadswf");
}
//當(dāng)鼠標(biāo)按下再釋放的時(shí)候,清除掉原來(lái)加載的swf中的內(nèi)容。加載相同目錄下的一個(gè)叫做jz.swf的動(dòng)畫(huà)文件到影片剪輯loadswf中來(lái)。
★語(yǔ)詞解釋:
load——加載 unload——卸載 movie——電影(動(dòng)畫(huà))
★知識(shí)擴(kuò)展:
1.有時(shí)候,當(dāng)要加載(調(diào)入)的.swf文件有一些我們不想要的畫(huà)面內(nèi)容(比如有原作者的署名、單位的標(biāo)志等),我們想去掉又比較困難,有的課件的原來(lái)尺寸不符合我們的要求,有的課件我們只想要其中的一個(gè)片段,怎么辦呢?可以在腳本語(yǔ)言里加上代碼來(lái)設(shè)置它的屬性,以達(dá)到我們的要求。
(1)、把播放頭放到某一幀處讓它播放,再把播放頭放到某一幀處讓它停止的方法來(lái)截取原課件中的片段。(前提是我們知道原課件里想要的部分在多少幀到多少幀,如果不知道,可以用逐次逼近法來(lái)測(cè)試。)
假設(shè)我們只想要原課件里的65幀到326幀的內(nèi)容,其他部分不要,
那么,在腳本語(yǔ)言里可以增加這樣的語(yǔ)句:_root.swf.gotoAndPlay(65);
使得腳本語(yǔ)言為:
on(release){
unloadMovie("swf");
loadMovie("jz.swf","loadswf");
_root.swf.gotoAndPlay(65);
}
//當(dāng)鼠標(biāo)在按鈕上按下再釋放的時(shí)候,先卸載原有的影片內(nèi)容,再加載相同目錄下的一個(gè)叫做jz.swf的文件到影片剪輯loadswf中來(lái),主時(shí)間軸上的swf動(dòng)畫(huà)跳轉(zhuǎn)到65幀處開(kāi)始播放。
可以設(shè)置一個(gè)停止按鈕,讓動(dòng)畫(huà)暫停。
on(release){
_root.swf.stop();
}
(2)、用遮蓋原有標(biāo)志的方法去掉原來(lái)課件中的標(biāo)志。在loadswf影片剪輯里加一層,做出自己的標(biāo)志元件,讓它剛好能遮蓋住原有的標(biāo)志。
(3)、注冊(cè)點(diǎn):加載時(shí)我們一般是設(shè)置成左上角為參考點(diǎn),也就是x和y以左上角為0,請(qǐng)打開(kāi)“信息面板”,可以看到有九個(gè)參考注冊(cè)點(diǎn),這里就是可以對(duì)參考注冊(cè)點(diǎn)設(shè)置的。不同的設(shè)置為加載的動(dòng)畫(huà)選定了不同的參考中心。
(4)、畫(huà)面尺寸的設(shè)置:我們是設(shè)置成800×600的,想要其他的畫(huà)面尺寸,可以自己設(shè)置。
(5)、有時(shí)候我們想多加載幾個(gè)動(dòng)畫(huà)文件,那就再加幾個(gè)按鈕,每個(gè)按鈕對(duì)應(yīng)一個(gè)加載的動(dòng)畫(huà)。當(dāng)然了,我們也可以用其他的方式來(lái)播放,比如做成連續(xù)播放的方式,做成點(diǎn)一次放一次的方式等等。為了制作的思路清晰和程序的簡(jiǎn)潔,建議大家還是一個(gè)個(gè)地控制為好。
2.幀頻率設(shè)置,由于人眼的視覺(jué)暫留特性,使得一幅一幅接著播放的畫(huà)面能讓我們看到動(dòng)的感覺(jué)。幀頻少了就騙不了我們的眼睛,會(huì)讓我們感覺(jué)到畫(huà)面的閃爍;幀頻大了會(huì)加大這個(gè)動(dòng)畫(huà)文件的容量。所以建議大家設(shè)置成24幀/秒—30幀/秒之間。特殊情況另外再做具體設(shè)置。
3.如果不想在影片剪輯里寫(xiě)腳本語(yǔ)言,而是把所有的腳本語(yǔ)言都寫(xiě)到按鈕上的話,那么可以這樣寫(xiě):
on(release){
loadswf._width=800;
loadswf._height=600;
unloadMovie("swf");
loadMovie("jz.swf","loadswf");
_root.swf.gotoAndPlay(65);
movie_sound = new Sound(swf);
}
//當(dāng)鼠標(biāo)在該按鈕上按下再釋放的時(shí)候,這個(gè)叫做loadswf的影片剪輯元件的寬為800,高為600,卸載掉原來(lái)的動(dòng)畫(huà)內(nèi)容,加載相同文件目錄下的一個(gè)叫做“jz.swf”的動(dòng)畫(huà)文件到這個(gè)叫做“l(fā)oadswf”的影片剪輯中來(lái),主時(shí)間軸上的動(dòng)畫(huà)從65幀處開(kāi)始播放,捆綁影片SWF中的聲音文件。十、場(chǎng)景跳轉(zhuǎn)
nextScene();
//顯示下一個(gè)場(chǎng)景中的第一幀且停止在第一幀上。
★語(yǔ)詞解釋:
scene—場(chǎng)景
prevScene();
//顯示上一個(gè)場(chǎng)景中的第一幀且停止在第一幀上。
請(qǐng)注意:有時(shí)候我們要用幀標(biāo)簽以及場(chǎng)景名稱或場(chǎng)景編號(hào)來(lái)編輯場(chǎng)景跳轉(zhuǎn)。
希望大家不要用較多的場(chǎng)景來(lái)做課件。最好把所有的內(nèi)容都做在一個(gè)個(gè)影片剪輯元件里,再把它們都放到一個(gè)場(chǎng)景中去。
★知識(shí)擴(kuò)展:
1.為了以后能編寫(xiě)出比較復(fù)雜的語(yǔ)句,這里將程序編寫(xiě)的一些基本的知識(shí)介紹給大家。比較復(fù)雜的程序編寫(xiě)將放到ActionSctipt高級(jí)進(jìn)階篇里,到時(shí)候請(qǐng)大家去看。
(1)、從Flash5開(kāi)始,F(xiàn)lash的語(yǔ)言采用了源自歐洲計(jì)算機(jī)制造商組織(European Computer Manufacturers Association,ECMA)的ECMAScript3標(biāo)準(zhǔn)規(guī)范和ECMAScript4標(biāo)準(zhǔn)規(guī)范,類似于Java語(yǔ)言和C以及C++語(yǔ)言。這樣更有利于程序設(shè)計(jì)小組協(xié)同開(kāi)發(fā)大型項(xiàng)目,也可以吸引既有的面向?qū)ο蟮某绦騿T采用Flash開(kāi)發(fā)項(xiàng)目。
(2)、★用戶觸發(fā):用戶按下鼠標(biāo)按鈕、按下按鍵而觸發(fā)代碼
★時(shí)間軸觸發(fā):影片按時(shí)間或自動(dòng)觸發(fā)運(yùn)行的代碼
(3)、程序運(yùn)行的走向方式主要有三種:順序、判斷、循環(huán)。
順序——程序運(yùn)行時(shí)至上而下逐句執(zhí)行,而沒(méi)有分支。
判斷——程序運(yùn)行時(shí)出現(xiàn)分支,對(duì)判斷條件進(jìn)行判斷,選擇要執(zhí)行的語(yǔ)句。
判斷語(yǔ)句的格式:
If(判斷條件){
如果條件為真(即條件成立)則執(zhí)行這里的語(yǔ)句
}else{
如果條件為假(即條件不成立)則執(zhí)行這里的語(yǔ)句
}
循環(huán)——程序不斷重復(fù)執(zhí)行某一段語(yǔ)句,直至條件為假時(shí)退出循環(huán)。
循環(huán)語(yǔ)句的格式:
For(初始值;判斷條件;增量){
如果條件為假將退出循環(huán)否則將重復(fù)執(zhí)行這里的語(yǔ)句。
}
增量常常是i++(i++就是i=i+1),即每次使變量i增加1。
(4)、函數(shù)——是為了實(shí)現(xiàn)某個(gè)功能而設(shè)計(jì)的一個(gè)指令的集合??梢岳斫鉃榭梢灾貜?fù)使用的代碼塊。
(5)、變量——程序暫存數(shù)據(jù)的地方稱為變量。
(6)、常量——程序里一種存放固定不變量值的容器。
(7)、對(duì)象——是屬性和方法的集合,可以被代碼控制的東西。
(8)、類——是一個(gè)封裝所有針對(duì)其對(duì)象操作的一個(gè)包。
(9)、方法——指的是對(duì)象的功能。
(10)、屬性——代表對(duì)象的特性。
2.比較運(yùn)算符
表3 比較運(yùn)算符
比較運(yùn)算符
說(shuō) 明
==
如果兩者相等則成立。(要寫(xiě)成兩個(gè)連續(xù)的等號(hào))
!=
如果不相等則成立
<
如果左邊小于右邊則成立
>
如果左邊大于右邊則成立
<=
如果左邊小于或等于右邊則成立
>=
如果左邊大于或等于右邊則成立
===
如果兩者相等,而且數(shù)據(jù)類型也相等則成立
!===
如果兩者不相等,而且數(shù)據(jù)類型也不相等則成立
十一、鼠標(biāo)拖動(dòng)對(duì)象(要把畫(huà)面中的某個(gè)對(duì)象用鼠標(biāo)拖放到其他位置放好。也許對(duì)象有好幾個(gè),讓操作者選擇正確的那個(gè)對(duì)象來(lái)拖放,如果選對(duì)了再拖放,對(duì)象就能放到新的位置,如果選錯(cuò)了,則放不上去。這有點(diǎn)象填空題。)
1. 對(duì)象的拖動(dòng)
影片剪輯元件和按鈕元件是可以被拖動(dòng)的兩種對(duì)象。對(duì)象的拖動(dòng)一般用動(dòng)作語(yǔ)句來(lái)控制,startDrag語(yǔ)句用來(lái)拖動(dòng)開(kāi)始,stopDrag語(yǔ)句用來(lái)拖動(dòng)結(jié)束。
拖動(dòng)一個(gè)按鈕元件本身可以使用語(yǔ)句:
on(press){
startDrag("");
}
//當(dāng)鼠標(biāo)在按鈕上按下的時(shí)候,開(kāi)始拖動(dòng)。(括號(hào)內(nèi)必須要有一對(duì)引號(hào))
on(release){
stopDrag();
}
//當(dāng)鼠標(biāo)在按鈕上釋放的時(shí)候,停止拖動(dòng)。
★語(yǔ)詞解釋:
Press—按下 start—開(kāi)始 drag—拖曳
2. 碰撞檢測(cè)
我們用碰撞檢測(cè)函數(shù)來(lái)判斷兩個(gè)對(duì)象是否相互接觸。我們用hitTest函數(shù)來(lái)檢測(cè)碰撞,還要求這兩個(gè)對(duì)象都要有實(shí)例名稱(也就是要在場(chǎng)景的屬性面板上將“實(shí)例名稱”改為我們?yōu)槟窃鸬挠⑽拿?。
可以用碰撞語(yǔ)句:
m1.hitTest("m2");
//如果影片剪輯元件m1和m2發(fā)生碰撞,則函數(shù)返回true(真)值,否則返回false(假)值。
b1.hitTest("b2");
//如果按鈕元件b1和b2發(fā)生碰撞,則函數(shù)返回true(真)值,否則返回false(假)值。
★語(yǔ)詞解釋:
hit—碰撞 test—檢測(cè)
3. 用條件交互是程序里比較高級(jí)的交互方式。用條件交互是指當(dāng)某一個(gè)動(dòng)作、事件或結(jié)果出現(xiàn)的時(shí)候,如果滿足設(shè)定的條件要求,就會(huì)觸發(fā)相關(guān)的內(nèi)容。程序在這里有分支出現(xiàn)。
我們把程序理解為這樣的句子:
如果……(怎么)樣,就會(huì)……(怎么)樣。
否則,就會(huì)……(怎么)樣。
4. 對(duì)象拖放《桃花的結(jié)構(gòu)》實(shí)例操作步驟(這個(gè)實(shí)例步驟是1.制作課件封面,2.制作進(jìn)入按鈕和其他按鈕,3.制作背景畫(huà)面,4.制作拖放元件……)
(1)、前期工作。搜集相關(guān)的素材如桃花的圖片,Gif圖標(biāo),封面效果圖片,聲音素材,文字處理,做文件夾—名字就叫做“桃花的結(jié)構(gòu)課件”,里面再做幾個(gè)文件夾,分別叫做“素材”、“腳本”、“相關(guān)軟件”、“課件說(shuō)明”、“教案”等,在“素材”文件夾里再做“圖片”、“聲音”、“文字”、“視頻”、“網(wǎng)頁(yè)”、“動(dòng)漫”等文件夾。各個(gè)文件夾里放入應(yīng)有的文件和數(shù)據(jù)。課件題目等的文字處理—用Photoshop來(lái)做,很多圖片也用這個(gè)來(lái)處理等等。
(2)、打開(kāi)Flash 8 做好基本設(shè)置(略見(jiàn)前面部分)
(3)、把做封面用的圖片導(dǎo)入到庫(kù)里來(lái),做好“背景圖1”來(lái)作為其他影片剪輯元件的場(chǎng)景模板。
(4)、封面的制作。點(diǎn)“插入”—新建元件—影片剪輯—名稱為—封面—OK。將庫(kù)中的“背景圖1”元件拖到“封面”里,且中心對(duì)齊,也就是把兩個(gè)“+”號(hào)對(duì)齊,這里就可以看到場(chǎng)景的位置和大小了。返回場(chǎng)景,再把這個(gè)“封面”拖到場(chǎng)景里去,在屬性面板里將x和y都設(shè)置為0就對(duì)齊場(chǎng)景了。在場(chǎng)景里對(duì)著那個(gè)圖雙擊,就進(jìn)入了場(chǎng)景下的這個(gè)“封面”元件了,在這里將“封面”加一層名稱叫做背景圖,其他層上鎖,將導(dǎo)入的圖片拖到這個(gè)層中來(lái),在屬性面板里把它的寬改為800,高改為600,x和y的值改為0。要是沒(méi)對(duì)齊的話,就把x和y的值改為-400,-300或用“對(duì)齊”面板里的命令來(lái)對(duì)齊。再加一層,層的名稱叫做課題,把課題文字導(dǎo)入到庫(kù),再把這個(gè)文字拖到這個(gè)層里,安排好位置。其他文字也是加一個(gè)層,給層名稱,對(duì)其他層上鎖,把對(duì)應(yīng)的文字拖到里面或直接做文字,排好位置。每個(gè)零部件都加一層來(lái)放,一個(gè)元件放一層。如果想做成文字動(dòng)畫(huà)或文字特效的話,請(qǐng)先將它們放到別的影片剪輯元件里做好了再放到這里來(lái)。再加一層,名稱叫做背景音樂(lè),這個(gè)時(shí)候?qū)⑽覀兯鸭谋尘耙魳?lè)文件導(dǎo)入到庫(kù)里來(lái),把別的層上鎖,選中這一層的第一幀,在屬性面板中“聲音”里將這個(gè)音樂(lè)文件加進(jìn)來(lái),在“效果”里改為“淡入”,在“同步”里改為“開(kāi)始”—“循環(huán)”。封面就做好了。返回場(chǎng)景,這個(gè)時(shí)候,場(chǎng)景里只有一幀,一層,都是這個(gè)影片剪輯元件——封面。在場(chǎng)景里將這個(gè)層命名為封面。

(5)、按鈕元件的制作和安排。在場(chǎng)景里加5個(gè)新的層,分別命名為按鈕1、按鈕2……將庫(kù)中的按鈕元件或別的Gif圖片轉(zhuǎn)換成的按鈕元件一個(gè)個(gè)拖放到場(chǎng)景里的各個(gè)按鈕層里來(lái),對(duì)齊、排好??梢杂貌藛螜诶锏摹靶薷摹泵罴锏摹皩?duì)齊”命令來(lái)做對(duì)齊。這些按鈕的名稱也可以是“導(dǎo)入新課”、“新課學(xué)習(xí)”、“知識(shí)擴(kuò)充”、“考考你”、“趣味游戲”、“探究發(fā)現(xiàn)”等。按鈕制作和按鈕上文字的制作以及按鈕特效等等將放在以后作為一個(gè)專門的章節(jié)來(lái)講?,F(xiàn)在場(chǎng)景里有6個(gè)層,每個(gè)層里只有一個(gè)元件。
(6)、在場(chǎng)景里最上面加一層,放腳本語(yǔ)言。層的名稱叫做“AS”。先在這個(gè)層里的幀上寫(xiě)上腳本語(yǔ)言stop(); (注意:先把其他層上鎖,再點(diǎn)這個(gè)層的第一幀,才打開(kāi)動(dòng)作面板寫(xiě)腳本語(yǔ)言。)最好讓這個(gè)層總是在最上面。
(7)、按鈕1對(duì)應(yīng)的是“導(dǎo)入新課”部分,點(diǎn)擊它就讓程序進(jìn)到場(chǎng)景里的第2幀去,我們把一個(gè)叫做“導(dǎo)入新課”的影片剪輯元件里放上我們想做的導(dǎo)入部分的內(nèi)容。再把它放到這個(gè)按鈕上新加的一個(gè)層里,層的名稱也叫做“導(dǎo)入新課”,在這個(gè)層里“插入空白關(guān)鍵幀”,這個(gè)關(guān)鍵幀就加到第2幀了。將那個(gè)“導(dǎo)入新課”的影片剪輯元件拖放到這里。對(duì)所有層上鎖,只開(kāi)“按鈕1”層的鎖,點(diǎn)一下這個(gè)按鈕,寫(xiě)上腳本語(yǔ)言:
on(release){
stopAllSounds();
gotoAndStop(2);
}
當(dāng)按這個(gè)按鈕的時(shí)候程序就跳到場(chǎng)景的第2幀上了。也就是運(yùn)行“導(dǎo)入新課”里的內(nèi)容了。也就是按鈕1對(duì)應(yīng)的是第2幀。
(8)、按鈕2對(duì)應(yīng)的是第3幀,按鈕3對(duì)應(yīng)的是第4幀,等等。
(9)、制作“返回”按鈕,在“AS”層的下面加一層,層的名稱叫做“返回按鈕”。在這里放一個(gè)返回按鈕,可以用這個(gè)按鈕來(lái)當(dāng)返回按鈕— ,且在這里把所有的幀都延長(zhǎng),它下面的幀有多長(zhǎng)就延長(zhǎng)對(duì)齊多長(zhǎng)。寫(xiě)上腳本語(yǔ)言:
on(release){
stopAllSounds();
gotoAndStop(1);
}
//當(dāng)鼠標(biāo)在按鈕上按下再釋放的時(shí)候,停止所有聲音,跳轉(zhuǎn)并停止在第1幀處。也就是返回到封面的主界面上來(lái)了。
做了這么久了,該做個(gè)文件的保存啦??墒?,還沒(méi)進(jìn)到我們的主題中來(lái)吶。以上部分是做課件的基本步驟和方法,也是做課件的基本功之一。請(qǐng)老師們多多練習(xí)。
(10)、現(xiàn)在制作我們的主要部分——鼠標(biāo)拖動(dòng)對(duì)象。我們用按鈕3來(lái)做進(jìn)入這個(gè)部分的控制部件,整個(gè)內(nèi)容就放在一個(gè)影片剪輯元件“新課學(xué)習(xí)”里,且把這個(gè)元件放在場(chǎng)景的第4幀上。
按鈕3上的腳本語(yǔ)言:
on(release){
stopAllSounds();
gotoAndStop(4);
}
//當(dāng)鼠標(biāo)在這個(gè)按鈕上按下再釋放的時(shí)候,停止所有的聲音,跳轉(zhuǎn)并停在第4幀處。
在按鈕3這個(gè)層的上方加一新層,層名字就叫做“新課學(xué)習(xí)”。把其他的層上鎖,這個(gè)層在第4幀上“插入空白關(guān)鍵幀”。這里將放“新課學(xué)習(xí)”影片剪輯元件。菜單欄“插入”—新建元件—名—新課學(xué)習(xí)—OK。將庫(kù)中的“背景圖1”元件拖到這個(gè)元件里,中心對(duì)齊,再返回場(chǎng)景,將影片剪輯元件“新課學(xué)習(xí)”拖到場(chǎng)景里的“新課學(xué)習(xí)”層的第4幀上來(lái)。打開(kāi)“對(duì)齊”面板,讓它相對(duì)于舞臺(tái)(就是場(chǎng)景)對(duì)齊中心(垂直中齊、水平居中分布)?,F(xiàn)在這個(gè)“新課學(xué)習(xí)”元件到了場(chǎng)景里了。在工作區(qū)里對(duì)著那圖(“新課學(xué)習(xí)”元件)雙擊,就打開(kāi)了場(chǎng)景下的“新課學(xué)習(xí)”元件。這個(gè)時(shí)候的編輯狀態(tài)是把“新課學(xué)習(xí)”元件放到場(chǎng)景里去的,是在場(chǎng)景里對(duì)這個(gè)元件做編輯的。加一層,層名字叫背景。把其他的層上鎖,把桃花圖導(dǎo)入到庫(kù),再拖到這里排好位置。再加層放其他的東西,等把所有的東西都放好了就把那個(gè)放“背景圖1”的層刪除掉。
(10)、現(xiàn)在制作這個(gè)課件的主要部分——鼠標(biāo)拖動(dòng)對(duì)象。我們用按鈕3來(lái)做進(jìn)入這個(gè)部分的控制部件,整個(gè)內(nèi)容就放在一個(gè)影片剪輯元件“新課學(xué)習(xí)”里,且把這個(gè)元件放在場(chǎng)景的第4幀上。
按鈕3上的腳本語(yǔ)言:
on(release){
stopAllSounds();
gotoAndStop(4);
}
//當(dāng)鼠標(biāo)在這個(gè)按鈕上按下再釋放的時(shí)候,停止所有的聲音,跳轉(zhuǎn)并停在第4幀處。
在按鈕3這個(gè)層的上方加一新層,層名字就叫做“新課學(xué)習(xí)”。把其他的層上鎖,這個(gè)層在第4幀上“插入空白關(guān)鍵幀”。這里將放“新課學(xué)習(xí)”影片剪輯元件。菜單欄“插入”—新建元件—名—新課學(xué)習(xí)—OK。將庫(kù)中的“背景圖1”元件拖到這個(gè)元件里,中心對(duì)齊,再返回場(chǎng)景,將影片剪輯元件“新課學(xué)習(xí)”拖到場(chǎng)景里的“新課學(xué)習(xí)”層的第4幀上來(lái)。打開(kāi)“對(duì)齊”面板,讓它相對(duì)于舞臺(tái)(就是場(chǎng)景)對(duì)齊中心(垂直中齊、水平居中分布)?,F(xiàn)在這個(gè)“新課學(xué)習(xí)”元件到了場(chǎng)景里了。在工作區(qū)里對(duì)著那圖(“新課學(xué)習(xí)”元件)雙擊,就打開(kāi)了場(chǎng)景下的“新課學(xué)習(xí)”元件。這個(gè)時(shí)候的編輯狀態(tài)是把“新課學(xué)習(xí)”元件放到場(chǎng)景里去的,是在場(chǎng)景里對(duì)這個(gè)元件做編輯的。加一層,層名字叫背景。把其他的層上鎖,把桃花圖導(dǎo)入到庫(kù),再拖到這里排好位置。再加層放其他的東西,等把所有的東西都放好了就把那個(gè)放“背景圖1”的層刪除掉。要是不刪除畫(huà)面也很美觀的話,就保留這個(gè)層。將“花瓣”、“花托”、“花蕊”、“子房”等文字排在一方,將桃花圖排在另一方,桃花圖上畫(huà)上線條和問(wèn)號(hào)框,再把它們分別放到不同的層里去,原位粘貼好,回到原始圖畫(huà)面上,把該剪切的剪切掉。用逐層開(kāi)眼的方法查看一下,是否對(duì)。再將問(wèn)號(hào)框轉(zhuǎn)換成影片剪輯元件分別對(duì)它們命名為d1、d2……將文字部分按詞轉(zhuǎn)換成按鈕元件也分別命名為s1、s2、s3……我們就是要把s1拖到d1上、s2拖到d2上……別忘了在場(chǎng)景屬性面板里將它們的“實(shí)例名稱”改為相應(yīng)的名字,否則將無(wú)法執(zhí)行腳本語(yǔ)言。同樣地,在“新課學(xué)習(xí)”影片剪輯元件里最上面加一層寫(xiě)腳本語(yǔ)言。這里,我們只講一對(duì)對(duì)象的碰撞,其他的照著做就是。
幀上的腳本語(yǔ)言:
sx1=s1._x;
sy1=s1._y;
//獲取s1按鈕的x坐標(biāo)并保存在變量sx1里。
//獲取s1按鈕的y坐標(biāo)并保存在變量sy1里。
然后,在工作區(qū)里點(diǎn)一下按鈕s1,打開(kāi)動(dòng)作面板寫(xiě)腳本語(yǔ)言。
按鈕上的腳本語(yǔ)言:
on(press){ //當(dāng)鼠標(biāo)按下的時(shí)候
startDrag("s1"); //開(kāi)始拖動(dòng)按鈕s1
}
on(release){ //當(dāng)鼠標(biāo)釋放的時(shí)候
if(d1.hitTest(s1)){ //如果按鈕s1和影片剪輯d1相碰撞
s1._x=d1._x; //就使得按鈕s1的x坐標(biāo)等于影片剪輯d1的x坐標(biāo)
s1._y=d1._y; //就使得按鈕s1的y坐標(biāo)等于影片剪輯d1的y坐標(biāo)
}else{ //否則
s1._x=sx1; //就使得按鈕s1的x坐標(biāo)等于變量sx1的值
s1._y=sy1; //就使得按鈕s1的y坐標(biāo)等于變量sy1的值
}
stopDrag(); //停止拖動(dòng)
}
愛(ài)華網(wǎng)本文地址 » http://www.klfzs.com/a/25101011/97253.html
愛(ài)華網(wǎng)



