假設我有兩個AS3類。 1是Hero
類。第二個是Action
類。動作類在其中有一個函數walk()
。AS3導入功能並將其用作本地功能
我希望Hero
類使用Action
類函數walk()
,但好像它是英雄類的本地函數。 在這裏,我找到了方法,但我想知道這是否是一個更好的做法,或者有更優化的方式來做到這一點
在Action類我寫道:
function Walk(MC,mcspeed,varexample1,varexample2,varexample3,varexample4){
MC.x += mcspeed
MC.varexample1 = varexample1
MC.varexample2 = varexample2
MC.varexample3 = varexample3
MC.varexample4 = varexample4
}
//in the Hero class I wrote:
import Action
// few line later ...
Action.walk(this,5,1,2,3,4)
它的工作。但是,如果英雄有很多變量通過漫遊功能,那可能不是一種非常優化的工作方式。如果Hero
有50個函數,其中有許多以30fps運行的參數,那可能是一團糟。而當地這將是更有效的
地方,這將是:
function walk(){
x += 5 // or = to any local variable
varexample1 = 2
varexample2 = 3
varexample3 = 4
varexample4 = 5
}
因此,要回顧一下。我想使用散步功能,就好像它是Hero
類的本地功能一樣。 如何做到這一點?
感謝
無論是本地範圍或不一個函數調用是一個函數調用,所以很少有更多的功能不如其他人。你沒有範圍你的方法,你不要輸入你的變量。此時不要去寫課程。 – BotMaster 2014-10-31 17:57:38
你實際上正在調用一個你沒有定義的叫做'walk'的靜態函數,所以你的第一個代碼實際上是行不通的。您不可能注意到任何性能差異,但是本地函數在技術上會更高效,因爲它不必訪問其他類。你最好使用繼承 - 將你的'walk'方法放在一個基類中,讓你的英雄(和其他使用它的東西)擴展這個基類 – BadFeelingAboutThis 2014-10-31 18:39:44