Actionscript 3 ActionScript-私有参数?

Actionscript 3 ActionScript-私有参数?,actionscript-3,parameters,private,forwarding,Actionscript 3,Parameters,Private,Forwarding,是否可以将参数标记为private,仅对拥有该函数的类可访问/有用 例如: //PRIVATE CLASS (.SWC) public function set AutoBounce(value:Boolean):void { if (value) addEventListener(MouseEvent.CLICK, bounce); else removeEventListener(MouseEvent.CLICK, boun

是否可以将参数标记为private,仅对拥有该函数的类可访问/有用

例如:

//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()方法签名不正确。为了方便事件侦听器,它需要是
公共函数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
     }

有没有更好的方法来处理这个问题,而不是重定向?也许“更好的方式”是一个糟糕的词语选择。有没有一种方法可以重构此代码,而无需使用转发功能或强制用户包含事件参数。

如果您想在不使用所需鼠标事件的情况下调用
bounce
,可以这样说:

public function bounce(evt:MouseEvent=null):void
{
    //...
}

仅供参考,bounce不需要公开。。。它也可以是一个私有函数。不幸的是,AS3不支持重载。

这将适用于重构。但是,这种方法允许用户向该公共函数提供一个MouseEvent,他们可以通过代码提示看到该MouseEvent(这不会做任何事情,而且看起来很混乱)。bounce()是公共的。用户可以调用它。它们还可以(可选)切换自动盎司属性,该属性将自动或不自动为它们调用bounce().True。我得说你现在的方法最好。