2010-08-16 86 views
0

我得到此ActionScript 2代碼:試圖瞭解此ActionScript 2代碼

fuseModel = [{mx:0, my:-5.5, x:0, y:-4, pen:.5, clr:0x000033, alpha:50}]; 

MovieClip.prototype.setModel = function(m) 
{ 
this.drawModel(m); 
} 

MovieClip.prototype.drawModel = function(m) 
{ 
var pt = m[0]; 
beginFill(pt.bf, pt.bfa); 
lineStyle(pt.pen,pt.clr,pt.alpha); 
lineTo(100,100); 
endFill(); 
} 

_root.createEmptyMovieClip("ship_mc", 2); 
ship_mc.setModel(fuseModel); 

該代碼只是畫一條線(I刪除的其他600行代碼爲簡單起見)。

我想了解MovieClip.prototype.setModel方法的調用方式。看起來像現在這樣,但是,如果我刪除它,這條線不會被繪製。

那麼,誰在調用MovieClip.prototype.setModel()?

--update

看起來像ship_mc.setModel(fuseModel)呼喚它,所以對於影片剪輯的每個實例的則setModel還會存在嗎?它沒有意義,因爲它不在MovieClip中,而在MovieClip.prototype中。

回答

1

在ActionScript 2(以及ActionScript 1和JavaScript)中,您可以將方法添加到對象原型,並且該類型的所有對象(即該類)都將具有該方法。您可以將原型視爲類定義,因此在您的代碼中,定義MovieClip.prototype.setModel和MovieClip.prototype.drawModel類似於將方法添加到MovieClip類。