AS2.0面向?qū)ο缶幊痰慕忉?/h1>
互聯(lián)網(wǎng) 發(fā)布時間:2008-10-06 01:25:13 作者:佚名
我要評論
有時間,有興趣,E文還行的可以直接上這看:http://www.kirupa.com/developer/oop2/AS2OOPindex.htm,很長,很詳細(xì)。
我簡單地把我理解的說一下,錯誤在所難免,不嗇賜教,共同進(jìn)步
引用張圖先:
所有的類都是在外部定義,當(dāng)然如果要使用它們的話,需要設(shè)置一
有時間,有興趣,E文還行的可以直接上這看:http://www.kirupa.com/developer/oop2/AS2OOPindex.htm,很長,很詳細(xì)。
我簡單地把我理解的說一下,錯誤在所難免,不嗇賜教,共同進(jìn)步
引用張圖先:

所有的類都是在外部定義,當(dāng)然如果要使用它們的話,需要設(shè)置一下類路徑,點擊發(fā)布設(shè)置->actionscript2設(shè)置,在類路徑里添加你要使用的類路徑就行了,當(dāng)然如果你希望每個flash都使用那些類,那么可以在"編輯->首選項->actionscript2設(shè)置"那添加類路徑。當(dāng)然如果只是圖個方便的話,直接放到當(dāng)前文件夾下面就可以了。
在一個.as文件里只能有一個class,而且這個class的name必須和文件名相同。比如有一個motion.as,那么就必須定義一個motion類:
//motion.as
class motion extends MovieClip{
function motion(){
// constructor
}
}
看起來比較死板,但管理起來確實方便了不少。
可以建立一個構(gòu)造函數(shù)(就是跟class同名的函數(shù)),這樣實例化的時候就可以調(diào)用該函數(shù)。
變量的類型
支持private,static和public,private不允許外部訪問和修改,但可以被children讀寫(所以相當(dāng)于protected),默認(rèn)如果用var聲明的話,是public,static可以不用實例化,直接使用。
函數(shù)的類型
跟變量的類型一樣,也是private,static和public三種,static聲明的可以直接使用,比如Math.random()。靜態(tài)函數(shù)只能使用靜態(tài)變量,其他類型的函數(shù)不受影響。
再來講講interface,給我的感覺,interface就是為了方便多人協(xié)作,避免某些函數(shù)沒有被聲明。

//simpleInterface.as
interface simpleInterface {
function head();
function body();
function foot();
//myClass.as
class myClass implements simpleInterface {
function head(){
trace("I'm head");
}
function body(){
trace("I'm body");
}
function foot(){
trace("I'm foot");
}
}
繼承
繼承的類擁有父類的所有方法和變量(通過extends實現(xiàn))
//ball擁有mc的所有方法,同時還有自己的fly方法
//ball.as
class ball extends MovieClip{
private var height:Number;
function fly(){
trace("I can fly " height " m");
}
function ball(h){
height = h;
}
}
//時間軸
myball = new ball(30);
myball.fly();//trace "I can fly 30 m"
關(guān)于構(gòu)造函數(shù)
如果子類的構(gòu)造函數(shù)沒有顯示調(diào)用父類的構(gòu)造函數(shù),那么flash會自動給你加上,當(dāng)然也可以通過super()手動加上
也可通過super去調(diào)用父類的其他方法,比如super.parentMethod();
如果想讓舞臺上的某個mc使用我們自定義的類的話,在鏈接處的class里天上類名就可以了:

最后來說說文件的管理,最好是新建一個項目,這樣查看起來非常方便。
好了,就說這么多了,有時間附上個demo。
歡迎討論。
附個小demo
ball.as
class ball extends MovieClip {
private var spring:Number = 0.1;
private var friction:Number = 0.95;
private var centerX = (Stage.width-this._width)/2;
private var v:Number = 0;
public function ball() {
_x = 0;
_y = Stage.height/2 - _height/2;
this.onEnterFrame = this.start_spring;
}
private function start_spring() {
var a:Number = (centerX - _x)*spring;
v = a;
//v *= friction;
_x = v;
}
}
在當(dāng)前路徑下,新建一個mc,然后按下圖:

最后ctrl enter就能看到效果了。
源文件下載:ball.rar
相關(guān)文章

flash cs6鼠標(biāo)跟隨效果實現(xiàn)代碼分享
flash cs6想要實現(xiàn)鼠標(biāo)跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實現(xiàn)鼠標(biāo)跟隨效果的教程,需要的朋友可以參考下 2019-05-19
Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請看下文詳細(xì)的教程,需要的朋友 2018-03-11
flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡單的例子,需要的朋友可以參考下http://m.fzitv.net/softs/408402. 2018-02-28 
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下 2018-01-25 
Flash中怎么實現(xiàn)鼠標(biāo)點擊決定圖像位置?
本教程給大家分享一個Flash小教程,教大家在Flash CS6中怎么實現(xiàn)鼠標(biāo)點擊決定圖像位置?方法很簡單,感興趣的朋友歡迎前來一起分享學(xué)習(xí) 2018-01-12
本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺位置,教程講解的詳細(xì),感興趣的朋友歡迎前來分享學(xué)習(xí) 2017-11-20 
在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細(xì),方法也不難,非常適合Flash新手入門學(xué)習(xí) 2017-11-18 
Flash怎么設(shè)置元件坐標(biāo)?flash使用代碼設(shè)置元件的坐標(biāo)的教程
Flash怎么設(shè)置元件坐標(biāo)?flash中導(dǎo)如的元件需要添加坐標(biāo),該怎么定位元件坐標(biāo)呢?下面我們就來看看flash使用代碼設(shè)置元件的坐標(biāo)的教程,需要的朋友可以參考下 2017-10-11
Flash怎么制作來回?fù)u擺的花朵的動畫?Flash中想要給花朵制作一段搖擺的動畫效果,該怎么制作呢?下面我們就來看看詳細(xì)的教程,很簡單,需要的朋友可以參考下 2017-05-23
Flash怎么制作流動七彩色的文字?想要讓文字動起來,該怎么使用flash給文字制作一個流動七彩色的動畫呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下 2017-04-23
最新評論
我簡單地把我理解的說一下,錯誤在所難免,不嗇賜教,共同進(jìn)步
引用張圖先:

所有的類都是在外部定義,當(dāng)然如果要使用它們的話,需要設(shè)置一下類路徑,點擊發(fā)布設(shè)置->actionscript2設(shè)置,在類路徑里添加你要使用的類路徑就行了,當(dāng)然如果你希望每個flash都使用那些類,那么可以在"編輯->首選項->actionscript2設(shè)置"那添加類路徑。當(dāng)然如果只是圖個方便的話,直接放到當(dāng)前文件夾下面就可以了。
在一個.as文件里只能有一個class,而且這個class的name必須和文件名相同。比如有一個motion.as,那么就必須定義一個motion類:
//motion.as
class motion extends MovieClip{
function motion(){
// constructor
}
}
看起來比較死板,但管理起來確實方便了不少。
可以建立一個構(gòu)造函數(shù)(就是跟class同名的函數(shù)),這樣實例化的時候就可以調(diào)用該函數(shù)。
變量的類型
支持private,static和public,private不允許外部訪問和修改,但可以被children讀寫(所以相當(dāng)于protected),默認(rèn)如果用var聲明的話,是public,static可以不用實例化,直接使用。
函數(shù)的類型
跟變量的類型一樣,也是private,static和public三種,static聲明的可以直接使用,比如Math.random()。靜態(tài)函數(shù)只能使用靜態(tài)變量,其他類型的函數(shù)不受影響。
再來講講interface,給我的感覺,interface就是為了方便多人協(xié)作,避免某些函數(shù)沒有被聲明。

//simpleInterface.as
interface simpleInterface {
function head();
function body();
function foot();
//myClass.as
class myClass implements simpleInterface {
function head(){
trace("I'm head");
}
function body(){
trace("I'm body");
}
function foot(){
trace("I'm foot");
}
}
繼承
繼承的類擁有父類的所有方法和變量(通過extends實現(xiàn))
//ball擁有mc的所有方法,同時還有自己的fly方法
//ball.as
class ball extends MovieClip{
private var height:Number;
function fly(){
trace("I can fly " height " m");
}
function ball(h){
height = h;
}
}
//時間軸
myball = new ball(30);
myball.fly();//trace "I can fly 30 m"
關(guān)于構(gòu)造函數(shù)
如果子類的構(gòu)造函數(shù)沒有顯示調(diào)用父類的構(gòu)造函數(shù),那么flash會自動給你加上,當(dāng)然也可以通過super()手動加上
也可通過super去調(diào)用父類的其他方法,比如super.parentMethod();
如果想讓舞臺上的某個mc使用我們自定義的類的話,在鏈接處的class里天上類名就可以了:

最后來說說文件的管理,最好是新建一個項目,這樣查看起來非常方便。
好了,就說這么多了,有時間附上個demo。
歡迎討論。
附個小demo
ball.as
class ball extends MovieClip {
private var spring:Number = 0.1;
private var friction:Number = 0.95;
private var centerX = (Stage.width-this._width)/2;
private var v:Number = 0;
public function ball() {
_x = 0;
_y = Stage.height/2 - _height/2;
this.onEnterFrame = this.start_spring;
}
private function start_spring() {
var a:Number = (centerX - _x)*spring;
v = a;
//v *= friction;
_x = v;
}
}
在當(dāng)前路徑下,新建一個mc,然后按下圖:

最后ctrl enter就能看到效果了。
源文件下載:ball.rar
相關(guān)文章

flash cs6鼠標(biāo)跟隨效果實現(xiàn)代碼分享
flash cs6想要實現(xiàn)鼠標(biāo)跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實現(xiàn)鼠標(biāo)跟隨效果的教程,需要的朋友可以參考下2019-05-19
Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請看下文詳細(xì)的教程,需要的朋友2018-03-11
flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡單的例子,需要的朋友可以參考下http://m.fzitv.net/softs/408402.2018-02-28
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下2018-01-25
Flash中怎么實現(xiàn)鼠標(biāo)點擊決定圖像位置?
本教程給大家分享一個Flash小教程,教大家在Flash CS6中怎么實現(xiàn)鼠標(biāo)點擊決定圖像位置?方法很簡單,感興趣的朋友歡迎前來一起分享學(xué)習(xí)2018-01-12
本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺位置,教程講解的詳細(xì),感興趣的朋友歡迎前來分享學(xué)習(xí)2017-11-20
在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細(xì),方法也不難,非常適合Flash新手入門學(xué)習(xí)2017-11-18
Flash怎么設(shè)置元件坐標(biāo)?flash使用代碼設(shè)置元件的坐標(biāo)的教程
Flash怎么設(shè)置元件坐標(biāo)?flash中導(dǎo)如的元件需要添加坐標(biāo),該怎么定位元件坐標(biāo)呢?下面我們就來看看flash使用代碼設(shè)置元件的坐標(biāo)的教程,需要的朋友可以參考下2017-10-11
Flash怎么制作來回?fù)u擺的花朵的動畫?Flash中想要給花朵制作一段搖擺的動畫效果,該怎么制作呢?下面我們就來看看詳細(xì)的教程,很簡單,需要的朋友可以參考下2017-05-23
Flash怎么制作流動七彩色的文字?想要讓文字動起來,該怎么使用flash給文字制作一個流動七彩色的動畫呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下2017-04-23











