2011-10-06 146 views
3

我有一個實體類與destroy()函數。AS3 - 擴展函數?

我也有一個Enemy類擴展實體,我想添加一些行到destroy()函數。

有沒有辦法在ActionScript 3中擴展功能,或者是複製粘貼的方式?謝謝。

回答

9

您需要標記與override關鍵詞的方法,並從那裏使用相同的命名空間(publicprotected等)和名稱組成你想在你擴展的類要覆蓋的方法。

該方法還必須有相同的返回類型,並接受相同的參數

樣品覆蓋:

override public function destroy():void 
{ 
    // add more code 

    super.destroy(); 
} 

如果排除其內容super.destroy()行,基類中的函數不會運行,只會使用您的新代碼。

+0

謝謝!我認爲super()只能用於構造函數。 – apscience

+0

Super只是對基類進行擴展的引用,通常每當你重載一個函數時,你應該總是調用super.funcName()有時候這不是必須的,但這是一個很好的習慣。 –

+0

這很好,因爲您可以將聲明放置在重載函數中的任意位置,這意味着您可以決定是否需要在新代碼之前,之後或之間的任何地方運行擴展類中的代碼。 – Marty