gpt4 book ai didi

flash - 使用 ActionScript 3/Flash 在线条上应用颜色渐变

转载 作者:行者123 更新时间:2023-12-04 22:38:10 25 4
gpt4 key购买 nike

我正在尝试动态构建一条线,带有开始和结束渐变。我想避免使用 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);

谢谢!

最佳答案

您需要使用矩阵来指示渐变区域有多大,以及应该向哪个方向绘制。尝试以下方法:

// 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);

基本上这将创建一个渐变框,其宽度和高度与您将创建的线条的边界矩形相同。它还应该根据两点之间的角度旋转渐变,以确保渐变从一个点延伸到另一个点。

关于flash - 使用 ActionScript 3/Flash 在线条上应用颜色渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1937184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com