Flash as基礎入門教程:FLASH面向對象編程_Flash教程
推薦:Flash as基礎教程:文本與字符串本例繼續講解AS的基礎知識,今天講解的是AS入門第六課文本與字符第四節之字符串,對Flash的AS編程有興趣的朋友可以到論壇與作者交流。 字符串是String類的一個實例。它用于操作基元字符串值類
面向對象編程基礎
ActionScript是一種面向對象的編程語言.通常我們會認為編程就是連續地寫一系列指令,計算機按順序地執行它.而面向對象編程則是將程序分成各個塊,分散到對象上.什么是對象?對象就是我們在flash中能看到的一切東西.舞臺是一個對象,時間軸、影片剪輯、按鈕、文本、位圖都是對象.在第一課中我們己說過:在ActionScript2.0中我們可以將程序寫在關鍵幀、影片剪輯、按鈕元件上.即便是將程序完全寫在關鍵幀上,它也必須要對象的事件驅動才能執行.
在理解了面向對象編程后,我們必需要對一些概念有所了解.事實上我們在上面對對象己經有了一定的了解.就如同我們的家中,所有的東西都可以叫做對象.比如,電視機,電冰箱,書桌,衣柜等等.很容易發現,這些東西,總有那么幾個都有相似之處.比如,電視機、電冰箱都需要用電;書桌、衣柜都是用木頭做成的. 我們便把家里的東西分成了幾類,并為每一類東西取上一個名字,比如,電器類、木器類等.這樣我們就理解了另一個重要的概念一"類".
類是某一類型對象的概括或者說是模板,在ActionScript中,所有對象都是由類定義的.每個類都包括了三個重要的元素:事件、屬性、方法,這是我們必須要了解的三個重要概念.
事件:在面向對象的編程中,并不是將程序按順序交給計算機去執行,上面己經談到了,程序被分散到了對象上.那么要計算機執行這些程序就需要事件來觸發.通俗地講就是:當某件事情發生時就去做一些事情.這個某件發生的事情就是事件.在flash中,常常會放上一個按鈕,比如"開始"按鈕.程序設計者可能是這樣的思路:當按鈕按下時就播放動畫.那么"當按鈕按下時"就是按鈕對象的事件.在ActionScript2.O中,程序可以寫在關鍵幀和元件上,事件在關健幀中和原件中的輸寫方法是不一樣的.
事件在關健幀中的寫法:
元件名稱.事件名稱 = function(){
要執行的語句
....
}
事件在元件上的寫法:
on(事件名稱){
要執行的語句
.....
}
我們來做一個練習,在舞臺上有一名為play_btn的按鈕,現在要實現點擊按鈕動畫就播放.新建flash文檔,用橢園工具畫一個園,然后,在40幀插入關健幀,將園移到另一位置,建立補間動畫.新建一圖層,從內部庫中拖一個按鈕到舞臺上.打開屬性面板,為按鈕命名為play_btn.這里先介紹一個最常用的事件:release,這是當放開鼠標按鍵時觸發.實際也就是完成了一個點擊動作時發生.
首先,在幀動作面板上寫程序的方式完成練習:
新建圖層,命名為action,當這不是必須的,你完全可以給它取個其它名字.
打開幀動作面板,輸入:
stop();
//這是讓動畫停止播放,以便讓我們點擊按鈕時才播放.
play_btn.onRelease = function(){
play();
//讓動畫開始播放
}
測試影片,當點擊按鈕后,園形開始移動.
回到場景中,可以看到,在action圖層時間軸的第1幀上,有一個a字,這說明在這一幀上有程序.
下面用在元件上寫程序的方式來完成練習:
將幀動作除第一行的stop();外其它的程序全部刪除.然后,在按鈕元件上點右鍵,點擊"動作",打開動作面板,輸入如下代碼:
On(replease){
Play();
}
測試影片,得到相同的效果.
注意:在幀動作面板中同元件動作面板中事件的名稱不一樣,如上例,在幀動作中是:onRelease,而在元件上則是:release
屬性:對象的屬性可以理解為對象的特性,比如,大小,位置,顏色等.屬性的輸寫規則是:
對象名稱.屬性名稱 = 值;
下面介紹幾個最常用的屬性:
_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;
函數:你可能要問,屬性介紹完了該介紹方法了,你怎么介紹起函數來了?原因很簡單,方法也是函數.將函數附加到對象時,它就被稱為方法.什么是函數呢?將完成一個任務的若干語句封裝起來,就叫函數.也許用例子來說明會好理解一些.比如,要完成一個開電視的任務,可能需要很多步驟,插上電源,開機,選頻道,設置音量.我們將這些步驟封裝起來,并給它取個名字"開電視"這就創建了一個開電視的函數.在ActionScript2.O中創建函數的格式是:
function 函數名稱(){
要執行的語句;
.....
}
比如要創建上面開電視函數,就這樣寫:
function 開電視(){
插電源;
開機;
選頻道;
設音量;
}
函數創建以后,要調用這個函數只需:函數名()即可,比如我們要執行開電視的任務,只需輸入:
開電視();
練習一下,我們來創建一個函數,然后調用它.打開第一幀的動作面板,輸入:
function test(){
trace("我會寫函數了");
}
test();
測試影片,在輸出面板中,會出現"我會寫函數了"幾個字.這個練習我們首先創建了一個叫test的函數,然后用test();調用了它.
有時會有這樣的情況,在函數內的語句中要用到數據,在創建函數的時候,卻不能確定這些數據,比如每次調用會用不同的數據.這時就會用到參數,調用時,通過參數將數據傳遞給函數.格式如下:
創建函數的格式:
function 函數名稱(參數1,參數2,…){
要執行的語句
}
調用函數的格式:
函數名稱(值1,值2,…);
還是以開電視為例:
創建開電視函數:
function 開電視(頻道,音量){
插電源;
開機;
選頻道=頻道;
設音量=音量;
}
調用函數:
開電視(12,28);
調用后,電視打開,并將頻道設為12,音量設為28.
練習:在幀動作面板中輸入:
function
test(a,b){
c=a b;
trace(c);
}
test(3,5);
測試影片,輸出面板中應顯示 8 .
了解了函數后,再來說方法就簡單多了.上面已經說過,將函數附加到對象,就稱為方法.AS中內置了很多方法,對于這些方法,我們不需要去了解它執行了些什么語句,只需要知道它可以完成的任務就行了.我們可以用:
對象名稱.方法名稱();
的格式來調用這些方法.比如有一個my_mc的影片剪輯元件,我們可以調用它的一些方法:
my_mc.stop();
my_mc.startDrag();
按鈕:在交互式的動畫制作中, 經常會用到按鈕,比如我們會放上一個"播放"、"停止"、"重放"等按鈕.有兩種方式可以將按鈕添加到舞臺上,一種是從內部庫中拖一個按鈕到舞臺上;另一種方法是自己創建一個按鈕,這里主要介紹一下自己創建按鈕的方法,因為常常有人會問:為什么我創建的按鈕點擊它時不起作用?這可能就是創建按鈕時出了問題.現在點擊"插入"菜單-"創建新元件",選擇按鈕,這時就進入按鈕編輯窗口,可以看到,時間軸上只有4幀,分別是:彈起,指針經過,按下,點擊.特別要注意的是,點擊那一幀,這一幀是點擊的范圍,因此這一幀是必須的,而且要注意的是,如果你的按鈕是純文字的,如Play,那么在這一幀應該畫一個矩型,作為點擊范圍,不然,用戶就只有點擊到文字的筆劃上才能觸發按鈕事件.在按鈕編輯窗口中同樣可以有很多層,比如第一層為圖形,第二層為文字等.下面來制作一個按鈕:
點擊“插入”-“新建元件”,選擇按鈕,確定,這樣就進入元件編輯窗口。
在彈起那一幀畫一矩形,按鈕大小吧。黑色筆觸,灰色填充。在指針經過那一幀、按下幀幀、點擊幀,插入關鍵幀。在指針經過幀將矩形填充色變為深灰色。在按下那幀,將邊框線條粗細調為2。新插入圖層,建一靜態文本框,輸入“Play”.這樣按鈕就做好了。
現在可以將這個按鈕從庫中拖到舞臺上,測試影片,看一下,當鼠標移到按鈕上,點下按鈕時的效果。
練習:按鈕的應用。點擊一下按鈕,影片剪輯元件就向右移動一點。新建一影片剪輯元件,就畫一個園就行了。將這個mc拖入舞臺上,放到稍左一點的位置,打開屬性面板,為其取名為:my_mc。新建一個按鈕,然后拖入舞臺,為其取名為:yy_btn.新插入一層,命名為:action,打開動作面板,輸入:
yy_btn.onRelease = function(){
my_mc._x = my_mc._x 10;
}
測試影片,點擊一次按鈕,園就會向右移動一點。
作業:請用本章所介紹的知識,完成下的效果:
分享:Flash教程:全面掌握按鈕相關內容問題1:如何制作按鈕?為什么我制作的文字按鈕,很不容易點擊到? 解決思路 在按鈕編輯區的時間軸上只有四個幀,第4幀的”點擊”是按鈕的反應區,這個區域在舞臺中是看不到的,
- 相關鏈接:
- 教程說明:
Flash教程-Flash as基礎入門教程:FLASH面向對象編程
。