3
在方法Graphics.lineStyle()
中,您传递了alpha作为第三个参数。我不想改变前两个参数的厚度或颜色,所以有什么办法可以改变阿尔法?或至少“获得”厚度和颜色,所以我可以重新通过他们,所以他们不会改变?AS3:Graphics.lineStyle() - 仅更改ALPHA?
谢谢!
在方法Graphics.lineStyle()
中,您传递了alpha作为第三个参数。我不想改变前两个参数的厚度或颜色,所以有什么办法可以改变阿尔法?或至少“获得”厚度和颜色,所以我可以重新通过他们,所以他们不会改变?AS3:Graphics.lineStyle() - 仅更改ALPHA?
谢谢!
一种选择是将您正在传递的图形对象封装起来,并为各个属性添加getter和setter,否则这些属性只能用作参数。
伪代码:
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);
}
}
你继承的东西,你没有源代码?我问,因为通常*你*设置阿尔法,厚度等,所以你可以缓存这些值 – jedierikb 2010-01-19 17:27:37
是的我扩展了一个类传递一个Graphics对象来绘制,已经有一个lineStyle设置。我只想改变alpha。 – 2010-01-19 17:35:22