Goo*_*man 4 flash actionscript gradient actionscript-3
我试图用开始和结束渐变动态构造一条线.我想避免使用GradientBox,因为线条是动态的.我想做的就是让线开始变红,结束蓝色.这段代码不起作用:(
myLine = new Shape();
myLine.graphics.lineStyle(2);
myLine.graphics.lineGradientStyle(GradientType.LINEAR, [0x0000FF, 0xFF0000], [1, 1], [0, 255]);
myLine.graphics.moveTo(itemPoint[i].x, itemPoint[i].y); // Dynamic
myLine.graphics.lineTo(itemPoint[j].x, itemPoint[j].y); // Dynamic
addChild(myLine);
Run Code Online (Sandbox Code Playgroud)
谢谢!
您需要使用矩阵来指示渐变的面积有多大,以及应该在哪个方向上绘制渐变.尝试这些方面:
// Get dimensions (absolute)
var d : Point = itemPoint[j].subtract(itemPoint[i]);
d.x = Math.abs(d.x);
d.y = Math.abs(d.y);
// Create gradient box matrix
var mtx : Matrix = new Matrix;
mtx.createGradientBox(d.x, d.y, Math.atan2(d.y, d.x), itemPoint[j].x, itemPoint[j].y);
myLine.graphics.lineStyle(2);
myLine.graphics.lineGradientStyle(GradientType.LINEAR, [0x0000ff, 0xff0000], [1,1], [0, 0xff], mtx);
myLine.graphics.moveTo(itemPoint[i].x, itemPoint[i].y);
myLine.graphics.lineTo(itemPoint[j].x, itemPoint[j].y);
Run Code Online (Sandbox Code Playgroud)
基本上,这将创建一个渐变框,其宽度和高度与您要创建的线的边界矩形相同.它还应根据两点之间的角度旋转渐变,以确保渐变从一个点到另一个点.
| 归档时间: |
|
| 查看次数: |
5546 次 |
| 最近记录: |