我刚刚在这里阅读了另一个动画颜色选项:http: //community.createjs.com/discussions/easeljs/4637-graphics-colour-animation
它利用了 createjs 注入方法。我从提供的代码示例中复制了相关代码,并附上了一些我自己的解释。
根据文档:
注入(回调,数据):提供一种将任意 Context2D(又名 Canvas)API 调用注入图形队列的方法。指定的回调函数将与其他绘图指令依次调用(...)
例如,使用此方法,您可以更改本机 context2d 填充样式,以便我们可以更改easeljs 用于在画布上绘制的填充颜色。
在这里,我们告诉 createjs 我们自己的 setColor 函数(定义如下),因此该函数将在每次重绘之前自动执行:
var shape = new createjs.Shape();
shape.graphics.beginFill(createjs.Graphics.getRGB(255, 0, 0));
shape.graphics.inject(setColor, data)
shape.graphics.drawCircle(0, 0, 10);
stage.addChild(shape);
调用画布原生 fillStyle 方法的 setColor 函数的定义:
function setColor(o) {
// sets the context2D's fillStyle to the current value of data.fill:
this.fillStyle = o.fill; // "this" will resolve to the canvas's Context2D.
}
以及改变填充值的刻度函数:
function tick(evt) {
count = (count+3)%360;
// update the value of the data object:
data.fill = createjs.Graphics.getHSL(count, 100, 50);
// redraw the stage:
stage.update();
}