我試圖做一個事件,改變我的形狀描邊顏色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();
});
我很感激你花時間把所有這些寫出來,當我讀到所有的東西時 - 這是有道理的。然而,當我嘗試了它,我無法讓它正常工作。也許我在這裏錯過了一些東西? 我是否會使用'.style'來繪製筆畫和形狀的陰影? http://jsfiddle.net/m4qznqa6/9/ – DRB
啊,我看到我錯誤地引用了它。如果這個形狀有一個陰影,它會是一個類似的過程嗎?我唯一的問題是筆畫畫兩次(我是否需要以某種方式清除它們),並且不知道如何以相同的方式應用投影/盒陰影。 http://jsfiddle.net/m4qznqa6/14/ – DRB