ActionScript 3.0 - 线条渐变定位?

时间:2011-10-14 09:44:52

标签: actionscript-3 matrix line gradient

我正在绘制一条渐变样式的线条,但由于某种原因,线条的x位置在添加到显示列表时似乎大约为4或5而不是0。跟踪该行的x位置会返回0,但可以清楚地看到该行未定位在该坐标处。

如果我删除渐变框然后它被正确定位,但这不是解决方案,因为我会失去渐变。

我使用Flash Builder定位FlashPlayer 11 / AIR 3。任何想法?

//Constants
private static const LINE_COLOR:uint = 0xFFFFFF;
private static const LINE_WIDTH:uint = 10;

//Variables
private var volumeLineShape:Shape = new Shape();
private var volumeLineMatrix:Matrix = new Matrix();

// ~

volumeLineMatrix.createGradientBox(widthProperty, heightProperty);

volumeLineShape.graphics.clear();
volumeLineShape.graphics.lineStyle(LINE_WIDTH, 0, 1.0, false, LineScaleMode.NONE, CapsStyle.NONE);
volumeLineShape.graphics.lineGradientStyle(GradientType.LINEAR, [LINE_COLOR, LINE_COLOR, LINE_COLOR], [0.0, 1.0, 0.0], [0, 255 * toneProperty, 255], volumeLineMatrix);
volumeLineShape.graphics.moveTo(0, heightProperty - heightProperty * volumeProperty);
volumeLineShape.graphics.lineTo(widthProperty, heightProperty - heightProperty * volumeProperty); 

2 个答案:

答案 0 :(得分:0)

只是给宽度和位置赋予一些静态值,并绘制一条左角和直线在角落处是透明的线。检查您的值并更改背景以查看白色透明部分。

volumeLineShape.graphics.clear();
volumeLineShape.graphics.lineStyle(LINE_WIDTH, 0, 1.0, false, LineScaleMode.NONE, CapsStyle.NONE);
volumeLineShape.graphics.lineGradientStyle(GradientType.LINEAR, [LINE_COLOR, LINE_COLOR, LINE_COLOR], [0.0, 1.0, 0.0], [0, 255 * toneProperty, 255], volumeLineMatrix);
volumeLineShape.graphics.moveTo(0, 0);
volumeLineShape.graphics.lineTo(100, 100); 

答案 1 :(得分:0)

这是一个条带问题。在alpha 0处设置零位置,在alpha 1处设置另一个零位置会导致问题。