如何在EaselJS中更新径向渐变填充颜色

时间:2017-10-04 14:25:37

标签: javascript animation canvas createjs easeljs

我正在画架中为javascript画布动画构建一个径向渐变填充圆圈:

ssh://git@bitbucket.CompanyName.tools/sp/company-project.git

我正在使用命令功能,以便稍后我可以更新该填充。

在请求动画框架中,我希望能够说const blur1 = new createjs.Shape(); const endColor = this.hexToRGBA(data.settings.startColor,0); blur1.circleCmd = blur1.graphics.beginRadialGradientFill([data.settings.startColor,endColor], [.25, .9], 0, 0, 0, 0, 0, 50).command; blur1.graphics.drawCircle(0,0,50); - 我正在补间的颜色值。所以我有:

update the fill of this circle to the current color

我看到它正确地设置了圆的属性,但它没有更新屏幕上的颜色,所以我猜测style.props.colors数组是只读的?或者我可能需要完全重绘每一帧的圆圈?我想避免这种情况,因为在这个圈子的任何一个框架都有许多其他属性可以改变。

如何在画架中更新圆圈的渐变填充?

1 个答案:

答案 0 :(得分:1)

你的方法非常接近。由于Canvas如何创建渐变,您无法直接修改渐变属性。而是在填充命令上调用radialGradient函数:

thisBlur1.circleCmd.radialGradient([...newColors], [.25, .9], 0, 0, 0, 0, 0, 5);

我最近回答了一个关于渐变渐变的问题,您可以在此处阅读:How to animate an EaselJS gradient using TweenJS?