我正在使用画布生成具有间隔的随机彩色对象。我想要做的是,将物体淡化成白色,就像它们淡化成雾一样。
我想在不需要重绘每一帧中的每个对象的情况下实现这一点。相反,我在对象之间放置了白色层(不透明度很小),这样它就可以产生淡出效果。
这是我目前的方法:http: //jsfiddle.net/zettam/pUVkA/26/
var cvas = document.getElementById("ctxt");
var cx = cvas.getContext("2d");
function randomColor(num) {
return Math.floor(Math.random() * num);
}
setInterval(function() {
var r = randomColor(255);
var g = randomColor(255);
var b = randomColor(255);
cx.fillStyle = "rgba(" + r + "," + g + "," + b + ",1.0)";
cx.fillRect(200*Math.random(), 200*Math.random(), 300*Math.random(), 300*Math.random());
}, 200);
setInterval(function() {
cx.fillStyle = "rgba(255,255,255,0.025)"
cx.fillRect(0, 0, 500, 500);
}, 20);
如您所见,这些对象永远不会淡出为全白,而是停留在灰色的某个地方。
我怎样才能实现我所需要的,而不必在每一帧都重新绘制所有内容?
谢谢。