倒计时动画通告 - CreateJS / EaselJS / TweenJS
Countdown animation circular - CreateJS / EaselJS / TweenJS
我对 createJS 很陌生 - 我想实现倒数计时器动画:
我偶然发现了这个 issue which have this fiddle - 我想实现这样的效果,但我想创建一个弧形:
我尝试调整代码并更改点值,但它只给了我一个钻石而不是完美的曲线。
我是否需要指向每个值以实现完美的圆,如:
points = [{x: 50, y: 0}, {x: 51, y: 1}, {x:52, y: 2}, ...etc]
或者是否有其他方式(可能是函数或插件)来做这些事情?我在他们的 documentation
上找不到任何内容
您可能对使用 arc()
图形以及 EaselJS "Command" 图形方法感兴趣:
1) 创建一个完整的圆弧
var s = new createjs.Shape().set({x:100,y:100});
s.strokeCmd = s.graphics.s("red")
.ss(10,"round")
.arc(0,0,80,0,Math.PI*2)
2) 存储最后一个 "command"
var cmd = s.command; // This will be the arc command
3) 将命令 endAngle
设置为 0。您也可以在 arc() 方法中执行此操作
cmd.endAngle = 0;
4) 在您的动画中,随时间递增 endAngle
。在这个例子中,我将 100 归一化为半径的 100% (Math.PI*2
)
var index = 0;
function tick(event) {
index += 1; // Fake Percent
cmd.endAngle = index/100 * Math.PI*2;
stage.update(event);
}
这是一个快速 fiddle:https://jsfiddle.net/lannymcnie/pgeut9cr/
如果您只想在固定时间段内为圆圈设置动画,则可以补间 endAngle
值。这是一个使用 TweenJS 的例子:https://jsfiddle.net/lannymcnie/pgeut9cr/2/
createjs.Tween.get(cmd)
.to({endAngle:Math.PI*2}, 2000, createjs.Ease.quadInOut);
干杯,
我对 createJS 很陌生 - 我想实现倒数计时器动画:
我偶然发现了这个 issue which have this fiddle - 我想实现这样的效果,但我想创建一个弧形:
我尝试调整代码并更改点值,但它只给了我一个钻石而不是完美的曲线。
我是否需要指向每个值以实现完美的圆,如:
points = [{x: 50, y: 0}, {x: 51, y: 1}, {x:52, y: 2}, ...etc]
或者是否有其他方式(可能是函数或插件)来做这些事情?我在他们的 documentation
上找不到任何内容您可能对使用 arc()
图形以及 EaselJS "Command" 图形方法感兴趣:
1) 创建一个完整的圆弧
var s = new createjs.Shape().set({x:100,y:100});
s.strokeCmd = s.graphics.s("red")
.ss(10,"round")
.arc(0,0,80,0,Math.PI*2)
2) 存储最后一个 "command"
var cmd = s.command; // This will be the arc command
3) 将命令 endAngle
设置为 0。您也可以在 arc() 方法中执行此操作
cmd.endAngle = 0;
4) 在您的动画中,随时间递增 endAngle
。在这个例子中,我将 100 归一化为半径的 100% (Math.PI*2
)
var index = 0;
function tick(event) {
index += 1; // Fake Percent
cmd.endAngle = index/100 * Math.PI*2;
stage.update(event);
}
这是一个快速 fiddle:https://jsfiddle.net/lannymcnie/pgeut9cr/
如果您只想在固定时间段内为圆圈设置动画,则可以补间 endAngle
值。这是一个使用 TweenJS 的例子:https://jsfiddle.net/lannymcnie/pgeut9cr/2/
createjs.Tween.get(cmd)
.to({endAngle:Math.PI*2}, 2000, createjs.Ease.quadInOut);
干杯,