Une option consisterait à envelopper l'objet graphique que vous transmettez et à ajouter des getters et des setters pour des propriétés individuelles qui ne sont autrement disponibles qu'en tant que paramètres.
Pseudo-code:
public class CustomGraphics
{
// -- here is the wrapped graphics object
protected var _graphics:Graphics;
// -- unique properties for line style
protected var _lineColor:uint;
protected var _lineThickness:int;
protected var _lineAlpha:Number;
public function CustomGraphics(gfx:Graphics)
{
_graphics = gfx;
_lineColor = 0;
_lineThickness = 1;
_lineAlpha = 1;
draw();
}
public function set lineAlpha(value:Number):void
{
if(_lineAlpha != value) {
_lineAlpha = value;
// -- insert code to redraw or invalidate here
draw();
}
}
public function draw():void {
_graphics.setLineStyle(_lineThickness, _lineColor, _lineAlpha);
}
}
Êtes-vous quelque chose que vous ne le sous-classement avez pas le code source? Je demande parce que normalement * vous * définissez l'alpha, l'épaisseur, etc afin que vous puissiez mettre en cache ces valeurs – jedierikb
Oui, je suis étendu une classe qui obtient un objet Graphics sur lequel dessiner, qui a déjà un ensemble lineStyle. Je veux changer l'alpha seulement. –