是否可以将参数标记为私有的,仅对拥有该函数的类可访问/有用的?
例子:
//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
}
上面的bounce()方法签名不正确。为了方便事件侦听器,需要
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
}
有没有更好的方法来解决这个问题,而不是改变方向?也许“更好的方式”是一个糟糕的词的选择。有没有一种方法可以在不使用转发函数或强制用户包含事件参数的情况下重构此代码。