加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 07:26:52 所属栏目:百科 来源:网络整理
导读:我试图用开始和结束渐变动态构造一条线.我想避免使用GradientBox,因为线条是动态的.我想做的就是让线开始变红,结束蓝色.这段代码不起作用:( myLine = new Shape();myLine.graphics.lineStyle(2);myLine.graphics.lineGradientStyle(GradientType.LINEAR,[0x0
我试图用开始和结束渐变动态构造一条线.我想避免使用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],0xff],mtx);
myLine.graphics.moveTo(itemPoint[i].x,itemPoint[i].y);
myLine.graphics.lineTo(itemPoint[j].x,itemPoint[j].y);

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读