国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 辦公 > Flash > 正文

AS2.0面向對象編程的解釋

2020-07-17 13:19:01
字體:
來源:轉載
供稿:網友
有時間,有興趣,E文還行的可以直接上這看:http://www.kirupa.com/developer/oop2/AS2OOPindex.htm,很長,很詳細。
我簡單地把我理解的說一下,錯誤在所難免,不嗇賜教,共同進步
引用張圖先:


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


//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實現)
//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"
關于構造函數
如果子類的構造函數沒有顯示調用父類的構造函數,那么flash會自動給你加上,當然也可以通過super()手動加上
也可通過super去調用父類的其他方法,比如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;
}
}
在當前路徑下,新建一個mc,然后按下圖:


最后ctrl enter就能看到效果了。
源文件下載:ball.rar

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄山市| 新泰市| 德庆县| 葫芦岛市| 白山市| 潞城市| 梓潼县| 临沭县| 禄丰县| 商城县| 凉城县| 吴川市| 府谷县| 峡江县| 西吉县| 保定市| 惠州市| 西吉县| 肇源县| 惠来县| 琼结县| 海晏县| 永寿县| 涡阳县| 荔浦县| 正宁县| 元谋县| 鹤峰县| 孟州市| 宁河县| 舟曲县| 伊春市| 浦县| 舞阳县| 贵州省| 嘉义县| 巴中市| 宜春市| 九龙坡区| 枣庄市| 赣榆县|