使用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); 基本上,这将创建一个渐变框,其宽度和高度与您要创建的线的边界矩形相同.它还应根据两点之间的角度旋转渐变,以确保渐变从一个点到另一个点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |