【发布时间】:2016-08-21 00:32:05
【问题描述】:
我正在尝试创建一个事件,在单击按钮时将形状的描边颜色更改为 5 秒,然后在持续时间后形状恢复为原始颜色。
我可以通过清除整个舞台并重新绘制新形状(这会重置它们的位置)来做到这一点,但我无法用当前形状来解决这个问题。
问。在补间期间更改形状颜色的最佳方法是什么?
我也很好奇是否有更好的方法来处理形状宽度的补间?目前我依赖 ScaleX 和 ScaleY - 但这也会改变笔画的大小 - 这是不希望的。
HTML
<button id="change">Click to Change Color</button>
<canvas id="demoCanvas" width="500" height="500"></canvas>
JS
var stage,
circle;
function init() {
stage = new createjs.Stage("demoCanvas");
createjs.Ticker.setFPS(60);
createjs.Ticker.addEventListener("tick", stage);
}
function createCircle(){
circle = new createjs.Shape().set({name:"circle"});
circle.graphics.setStrokeStyle(1).beginStroke("#000").beginFill( "#FFF" ).drawCircle(0, 0, 20);
circle.x = 100;
circle.y = 100;
stage.addChild(circle);
createjs.Tween.get(circle, {loop: true})
.to({x: 225, y: 225}, 1000, createjs.Ease.getPowInOut(1))
.to({x: 100, y: 100}, 1000, createjs.Ease.getPowInOut(1));
circle2 = new createjs.Shape().set({name:"circle"});
circle2.graphics.setStrokeStyle(1).beginStroke("#000").beginFill( "#FFF" ).drawCircle(0, 0, 20);
circle2.x = 400;
circle2.y = 400;
stage.addChild(circle2);
createjs.Tween.get(circle2, {loop: true})
.to({scaleX: 2, scaleY: 2, x: 425, y: 125}, 1000, createjs.Ease.getPowInOut(1))
.to({scaleX: 1, scaleY: 1, x: 400, y: 400}, 1000, createjs.Ease.getPowInOut(1));
stage.update();
}
$( "#change" ).click(function() {
// change color
});
$(document).ready(function() {
init();
createCircle();
});
【问题讨论】:
标签: javascript createjs easeljs tweenjs