0
是否可以將參數標記爲私有,只對擁有該功能的類可訪問/有用?ActionScript - 私有參數?
例如:
//PRIVATE CLASS (.SWC)
public function set AutoBounce(value:Boolean):void
{
if (value)
addEventListener(MouseEvent.CLICK, bounce);
else
removeEventListener(MouseEvent.CLICK, bounce);
}
public function bounce():void //incorrect signature
{
//bounce ball
}
上述彈跳()方法的簽名是不正確。爲了方便事件聽衆,它需要是public function bounce(evt:MouseEvent):void
。但是,我不希望該類的用戶在調用bounce()函數時不得不提供此參數。因此,如果我可以將evt:MouseEvent參數標記爲private或隱藏於調用類中,它將解決此問題。
目前,我簡單地將事件監聽器轉發功能:
//PRIVATE CLASS (.SWC)
public function set AutoBounce(value:Boolean):void
{
if (value)
addEventListener(MouseEvent.CLICK, forwardBounce);
else
removeEventListener(MouseEvent.CLICK, forwardBounce);
}
private function forwardBounce(evt:MouseEvent):void
{
bounce();
}
public function bounce():void
{
//bounce ball
}
而不是重定向,有沒有辦法處理這一問題沒有更好的辦法?也許「更好的方式」是一個糟糕的詞語選擇。有沒有一種方法可以在不使用轉發功能的情況下重構此代碼,或者強制用戶包含事件參數。
這將工作重構。然而,這種方法允許用戶使用代碼提示(它不會做任何事情,看起來令人困惑)看到的MouseEvent提供該公共函數。 – TheDarkIn1978 2010-11-16 18:16:13
反彈()是公開的。用戶可以調用它。他們還可以選擇性地切換autoBounce屬性,該屬性可以或不會自動爲它們調用bounce()。 – TheDarkIn1978 2010-11-16 18:18:05
是的。我不得不說現在的方法是最好的。 – 2010-11-16 18:41:20