Flash ActionScript編程基礎

本例繼續(xù)講解AS的基礎知識,今天講解的是AS入門第二課:面向對象編程基礎,對Flash的AS編程有興趣的朋友可以到論壇與作者交流 ActionScript是一種面向對象的編程語言.通常我們會認為編程就是連續(xù)地寫一系列指令,計算機按順序地執(zhí)行它.而面向對象編程則是將程序分成各個塊,分散到對象上.什么是對象?對象就是我們在flash中能看到的一切東西.舞臺是一個對象,時間軸、影片剪輯、按鈕、文本、位圖都是對象.在第一課中我們己說過:在ActionScript2.0中我們可以將程序寫在關鍵幀、影片剪輯、按鈕元件上.即便是將程序完全寫在關鍵幀上,它也必須要對象的事件驅動才能執(zhí)行. 上一篇Flash教程文章:Flash教程:認識Flash ActionScript的環(huán)境
在理解了面向對象編程后,我們必需要對一些概念有所了解.事實上我們在上面對對象己經(jīng)有了一定的了解.就如同我們的家中,所有的東西都可以叫做對象.比如,電視機,電冰箱,書桌,衣柜等等.很容易發(fā)現(xiàn),這些東西,總有那么幾個都有相似之處.比如,電視機、電冰箱都需要用電;書桌、衣柜都是用木頭做成的. 我們便把家里的東西分成了幾類,并為每一類東西取上一個名字,比如,電器類、木器類等.這樣我們就理解了另一個重要的概念一"類".
類是某一類型對象的概括或者說是模板,在ActionScript中,所有對象都是由類定義的.每個類都包括了三個重要的元素:事件、屬性、方法,這是我們必須要了解的三個重要概念.
事件:在面向對象的編程中,并不是將程序按順序交給計算機去執(zhí)行,上面己經(jīng)談到了,程序被分散到了對象上.那么要計算機執(zhí)行這些程序就需要事件來觸發(fā).通俗地講就是:當某件事情發(fā)生時就去做一些事情.這個某件發(fā)生的事情就是事件.在flash中,常常會放上一個按鈕,比如"開始"按鈕.程序設計者可能是這樣的思路:當按鈕按下時就播放動畫.那么"當按鈕按下時"就是按鈕對象的事件.在ActionScript2.O中,程序可以寫在關鍵幀和元件上,事件在關健幀中和原件中的輸寫方法是不一樣的.
事件在關健幀中的寫法:
元件名稱.事件名稱 = function(){
要執(zhí)行的語句
....
}
事件在元件上的寫法:
on(事件名稱){
要執(zhí)行的語句
.....
}
我們來做一個練習,在舞臺上有一名為play_btn的按鈕,現(xiàn)在要實現(xiàn)點擊按鈕動畫就播放.新建flash文檔,用橢園工具畫一個園,然后,在40幀插 入關健幀,將園移到另一位置,建立補間動畫.新建一圖層,從內(nèi)部庫中拖一個按鈕到舞臺上.打開屬性面板,為按鈕命名為play_btn.這里先介紹一個最常用的事件:release,這是當放開鼠標按鍵時觸發(fā).實際也就是完成了一個點擊動作時發(fā)生.
首先,在幀動作面板上寫程序的方式完成練習:
新建圖層,命名為action,當這不是必須的,你完全可以給它取個其它名字.
打開幀動作面板,輸入:
stop();
//這是讓動畫停止播放,以便讓我們點擊按鈕時才播放.
play_btn.onRelease = function(){
play();
//讓動畫開始播放
}
測試影片,當點擊按鈕后,園形開始移動.
回到場景中,可以看到,在action圖層時間軸的第1幀上,有一個a字,這說明在這一幀上有程序.
下面用在元件上寫程序的方式來完成練習:
將幀動作除第一行的stop();外其它的程序全部刪除.然后,在按鈕元件上點右鍵,點擊"動作",打開動作面板,輸入如下代碼:
On(replease){
Play();
}
測試影片,得到相同的效果.
注意:在幀動作面板中同元件動作面板中事件的名稱不一樣,如上例,在幀動作中是:onRelease,而在元件上則是:release #p# 屬性:對象的屬性可以理解為對象的特性,比如,大小,位置,顏色等.屬性的輸寫規(guī)則是:
對象名稱.屬性名稱?。健≈?;
下面介紹幾個最常用的屬性:
_x,_y:分別是對象在舞上臺的x,y坐標,這兩個屬性可以確定對象在舞臺上的位置.
_xscale,_yscale:分別是對象在舞臺上沿x,y軸方向的縮放比例,實際上就是寬和高的縮放比例,以百分比表示,例如:
my_mc._xscale = 50;
這表示,元件my_mc的寬度縮小到原來的50%.
_alpha:這是對象的透明度,取值為0-100.
_rotation:這是對象的旋轉度,以角度為單位.
_visible:為是對象是否可見,可設置兩個值,true(或1)和false(或0).比如要設置元件my_mc在舞臺上不可見,可用:
my_mc._visible = false; 或 my_mc._visible = 0;
相反要設置它在舞臺上可見則用:
my_mc._visible = true; 或 my_mc._visible = 1; #p# 函數(shù):你可能要問,屬性介紹完了該介紹方法了,你怎么介紹起函數(shù)來了?原因很簡單,方法也是函數(shù).將函數(shù)附加到對象時,它就被稱為方法.什么是函數(shù)呢?將完成一個任務的若干語句封裝起來,就叫函數(shù).也許用例子來說明會好理解一些.比如,要完成一個開電視的任務,可能需要很多步驟,插上電源,開機,選頻道,設置音量.我們將這些步驟封裝起來,并給它取個名字"開電視"這就創(chuàng)建了一個開電視的函數(shù).在ActionScript2.O中創(chuàng)建函數(shù)的格式是:
function 函數(shù)名稱(){
要執(zhí)行的語句;
.....
}
比如要創(chuàng)建上面開電視函數(shù),就這樣寫:
function 開電視(){
插電源;
開機;
選頻道;
設音量;
}
函數(shù)創(chuàng)建以后,要調(diào)用這個函數(shù)只需:函數(shù)名()即可,比如我們要執(zhí)行開電視的任務,只需輸入:
開電視();
練習一下,我們來創(chuàng)建一個函數(shù),然后調(diào)用它.打開第一幀的動作面板,輸入:
function test(){
trace("我會寫函數(shù)了");
}
test();
測試影片,在輸出面板中,會出現(xiàn)"我會寫函數(shù)了"幾個字.這個練習我們首先創(chuàng)建了一個叫test的函數(shù),然后用test();調(diào)用了它.
有時會有這樣的情況,在函數(shù)內(nèi)的語句中要用到數(shù)據(jù),在創(chuàng)建函數(shù)的時候,卻不能確定這些數(shù)據(jù),比如每次調(diào)用會用不同的數(shù)據(jù).這時就會用到參數(shù),調(diào)用時,通過參數(shù)將數(shù)據(jù)傳遞給函數(shù).格式如下:
創(chuàng)建函數(shù)的格式:
function 函數(shù)名稱(參數(shù)1,參數(shù)2,…){
要執(zhí)行的語句
}
調(diào)用函數(shù)的格式:
函數(shù)名稱(值1,值2,…);
還是以開電視為例:
創(chuàng)建開電視函數(shù):
function 開電視(頻道,音量){
插電源;
開機;
選頻道=頻道;
設音量=音量;
}
調(diào)用函數(shù):
開電視(12,28);
調(diào)用后,電視打開,并將頻道設為12,音量設為28.
練習:在幀動作面板中輸入:
function
test(a,b){
c=a b;
trace(c);
}
test(3,5);
測試影片,輸出面板中應顯示 8 .
了解了函數(shù)后,再來說方法就簡單多了.上面已經(jīng)說過,將函數(shù)附加到對象,就稱為方法.AS中內(nèi)置了很多方法,對于這些方法,我們不需要去了解它執(zhí)行了些什么語句,只需要知道它可以完成的任務就行了.我們可以用:
對象名稱.方法名稱();
的格式來調(diào)用這些方法.比如有一個my_mc的影片剪輯元件,我們可以調(diào)用它的一些方法:
my_mc.stop();
my_mc.startDrag();
按鈕:在交互式的動畫制作中, 經(jīng)常會用到按鈕,比如我們會放上一個"播放"、"停止"、"重放"等按鈕.有兩種方式可以將按鈕添加到舞臺上,一種是從內(nèi)部庫中拖一個按鈕到舞臺上;另一種方法是自己創(chuàng)建一個按鈕,這里主要介紹一下自己創(chuàng)建按鈕的方法,因為常常有人會問:為什么我創(chuàng)建的按鈕點擊它時不起作用?這可能就是創(chuàng)建按鈕時出了問題.現(xiàn)在點擊"插 入"菜單-"創(chuàng)建新元件",選擇按鈕,這時就進入按鈕編輯窗口,可以看到,時間軸上只有4幀,分別是:彈起,指針經(jīng)過,按下,點擊.特別要注意的是,點擊那一幀,這一幀是點擊的范圍,因此這一幀是必須的,而且要注意的是,如果你的按鈕是純文字的,如Play,那么在這一幀應該畫一個矩型,作為點擊范圍,不然,用戶就只有點擊到文字的筆劃上才能觸發(fā)按鈕事件.在按鈕編輯窗口中同樣可以有很多層,比如第一層為圖形,第二層為文字等.下面來制作一個按鈕:
點擊“插 入”-“新建元件”,選擇按鈕,確定,這樣就進入元件編輯窗口。
在彈起那一幀畫一矩形,按鈕大小吧。黑色筆觸,灰色填充。在指針經(jīng)過那一幀、按下幀幀、點擊幀,插 入關鍵幀。在指針經(jīng)過幀將矩形填充色變?yōu)樯罨疑?。在按下那幀,將邊框線條粗細調(diào)為2。新插 入圖層,建一靜態(tài)文本框,輸入“Play”.這樣按鈕就做好了。
現(xiàn)在可以將這個按鈕從庫中拖到舞臺上,測試影片,看一下,當鼠標移到按鈕上,點下按鈕時的效果。
練習:按鈕的應用。點擊一下按鈕,影片剪輯元件就向右移動一點。新建一影片剪輯元件,就畫一個園就行了。將這個mc拖入舞臺上,放到稍左一點的位置,打開屬性面板,為其取名為:my_mc。新建一個按鈕,然后拖入舞臺,為其取名為:yy_btn.新插 入一層,命名為:action,打開動作面板,輸入:
yy_btn.onRelease = function(){
my_mc._x = my_mc._x 10;
}
測試影片,點擊一次按鈕,園就會向右移動一點。
作業(yè):請用本章所介紹的知識,完成下的效果:
相關文章
- flash cs6想要實現(xiàn)鼠標跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實現(xiàn)鼠標跟隨效果的教程,需要的朋友可以參考下2019-05-19
- Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請看下文詳細的教程,需要的朋友2018-03-11
- flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡單的例子,需要的朋友可以參考下http://chabaoo.cn/softs/408402.2018-02-28
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2018-01-25- 本教程給大家分享一個Flash小教程,教大家在Flash CS6中怎么實現(xiàn)鼠標點擊決定圖像位置?方法很簡單,感興趣的朋友歡迎前來一起分享學習2018-01-12
- 本教程教腳本之家的ActionScript教程學習者在Flash中如何用代碼將圖片放在自己想要的舞臺位置,教程講解的詳細,感興趣的朋友歡迎前來分享學習2017-11-20
在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學習者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細,方法也不難,非常適合Flash新手入門學習2017-11-18Flash怎么設置元件坐標?flash使用代碼設置元件的坐標的教程
Flash怎么設置元件坐標?flash中導如的元件需要添加坐標,該怎么定位元件坐標呢?下面我們就來看看flash使用代碼設置元件的坐標的教程,需要的朋友可以參考下2017-10-11- Flash怎么制作來回搖擺的花朵的動畫?Flash中想要給花朵制作一段搖擺的動畫效果,該怎么制作呢?下面我們就來看看詳細的教程,很簡單,需要的朋友可以參考下2017-05-23
- Flash怎么制作流動七彩色的文字?想要讓文字動起來,該怎么使用flash給文字制作一個流動七彩色的動畫呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2017-04-23