AS3: Graphics.lineStyle () - Изменить только АЛЬФА? - PullRequest
3 голосов
/ 19 января 2010

В методе Graphics.lineStyle() вы передаете альфа в качестве третьего параметра. Я не хочу менять толщину или цвет, которые являются первыми 2 параметрами, так есть ли способ, которым я могу просто изменить альфа? или, по крайней мере, "получить" толщину и цвет, чтобы я мог повторно передать их, чтобы они не изменились?

Спасибо !!

1 Ответ

2 голосов
/ 19 января 2010

Один из вариантов - обернуть передаваемый графический объект и добавить геттеры и сеттеры для отдельных свойств, которые в противном случае доступны только в качестве параметров.

Псевдо-код:

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 );
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...