est-il possible de marquer les paramètres comme privés, uniquement accessibles/utiles pour la classe qui possède la fonction?ActionScript - Paramètres privés?
exemple:
//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
}
la signature de la méthode ci-dessus rebond() est incorrect. pour faciliter les auditeurs d'événement, il doit être public function bounce(evt:MouseEvent):void
. Cependant, je ne veux pas que l'utilisateur de la classe doive fournir ce paramètre lors de l'appel de la fonction bounce(). par conséquent, si je pouvais marquer le paramètre evt: MouseEvent comme privé ou caché de la classe appelante, cela résoudrait le problème.
actuellement, je suis redirigeant simplement l'écouteur d'événement à une fonction de transfert:
//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
}
plutôt que de rediriger, est-il une meilleure façon de traiter cette question? peut-être que «meilleur moyen» est un mauvais choix de mots. existe-t-il un moyen de refactoriser ce code sans utiliser de fonction de transfert ou d'obliger l'utilisateur à inclure le paramètre event.
qui fonctionnerait pour le refactoring. cependant, cette approche permet à l'utilisateur de fournir cette fonction publique avec un MouseEvent qu'ils verraient avec l'indication de code (ce qui ne ferait rien et semblerait confus). – TheDarkIn1978
bounce() est public. l'utilisateur peut l'appeler. ils peuvent également, en option, basculer une propriété autoBounce qui appelait ou non automatiquement bounce() pour eux. – TheDarkIn1978
True. Je dois dire que votre méthode actuelle serait la meilleure. –