【发布时间】:2017-06-18 13:05:50
【问题描述】:
我在尝试将多个屏幕外画布渲染到屏幕画布时遇到问题。我确实得到了一个渲染的屏幕外画布,但问题是之前应该有另外两个渲染。换句话说,只渲染最后一个画布。预期的结果将是三个重叠的矩形(或正方形:),红色、绿色和蓝色。代码如下:
function rectangle(color) {
var offScreenCanvas = document.createElement('canvas');
var offScreenCtx = offScreenCanvas.getContext('2d');
var width = offScreenCanvas.width = 150;
var height = offScreenCanvas.height = 150;
switch(color) {
case 1:
offScreenCtx.fillStyle='rgb(255,0,0)';
break;
case 2:
offScreenCtx.fillStyle='rgb(0,255,0)';
break;
case 3:
offScreenCtx.fillStyle='rgb(0,0,255)';
break;
}
offScreenCtx.fillRect(0,0,width,height);
return offScreenCanvas;
}
function draw(offScreenCanvas, x , y) {
var canvas = document.getElementById('canvas')
var ctx = canvas.getContext('2d');
var width = canvas.width = window.innerWidth;
var height = canvas.height = window.innerHeight;
ctx.drawImage(offScreenCanvas, x, y);
}
var images = [];
var color = 1;
for (var i=0; i<3; i++) {
var img = new rectangle(color);
images.push(img);
color++;
}
var x = 0;
var y = 0;
for (var i = 0; i < images.length; i++) {
draw(images[i], x, y);
x += 100;
y += 100;
}
我进行了一些搜索,似乎我不是第一个遇到此问题的人,但我无法使其正常工作。
【问题讨论】:
标签: javascript canvas