ActionScript - 私有参数?

时间:2010-11-16 18:01:01

标签: actionscript-3 parameters private forwarding

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

示例:

//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 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
     }

而不是重定向,有没有更好的方法来处理这个问题?也许“更好的方式”是一个糟糕的选择。有没有办法在不使用转发函数的情况下重构此代码,或者必须强制用户包含事件参数。

1 个答案:

答案 0 :(得分:1)

如果您希望能够在没有所需MouseEvent的情况下调用bounce,则可以这样说:

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

仅供参考,弹跳不需要公开......它也可以是私人功能。不幸的是,AS3不支持重载。