发布于 2021-11-11 20:20:21
您需要两个图像img1和img2。由于需要在绘制之前加载这两个图像,可以使用rxjs运算符和rxjs fromEvent运算符。
fromEvent,就像
formEvent(img1,'load').subscribe(_=>{
...
})
//its equal than
img1.onLoad=function(){
...
}观察的好处是你可以组合,合并,改变.(我知道一开始有点困难,但一点知识是必要的,记住,在角度上,所有的都是可观测的)
zip,在所有可观察到的发出之后,都会以数组的形式发出值。
这样你就可以写一些
zip([fromEvent(img1,'load'),fromEvent(img2,'load')]).subscribe(_=>{
for(let i = 0; i < row; i++){
posx = 0;
for(let j = 0; j < col; j++) {
if ((i + j) % 2 == 0)
ctx.drawImage(img1, posx, posy, 75, 75);
else
ctx.drawImage(img2, posx, posy, 75, 75);
posx += 75;
}
posy += 75;
}
})
img1.src='https://picsum.photos/id/100/75/75';
img2.src='https://picsum.photos/id/235/75/75'你可以看到一个愚蠢的闪电战
https://stackoverflow.com/questions/69895395
复制相似问题