我正在画架中为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数组是只读的?或者我可能需要完全重绘每一帧的圆圈?我想避免这种情况,因为在这个圈子的任何一个框架都有许多其他属性可以改变。
如何在画架中更新圆圈的渐变填充?
答案 0 :(得分:1)
你的方法非常接近。由于Canvas如何创建渐变,您无法直接修改渐变属性。而是在填充命令上调用radialGradient函数:
thisBlur1.circleCmd.radialGradient([...newColors], [.25, .9], 0, 0, 0, 0, 0, 5);
我最近回答了一个关于渐变渐变的问题,您可以在此处阅读:How to animate an EaselJS gradient using TweenJS?