gpt4 book ai didi

javascript - 创建多个 Canvas 图案失败

转载 作者:行者123 更新时间:2023-11-29 20:46:46 27 4
gpt4 key购买 nike

<分区>

我正在尝试创建一组模式以用于我的 Chart.js圆环图所以我这样做:

var surfacePatterns
var surfaceNames = ['Unknown', 'Paved', 'Unpaved', 'Concrete', 'Cobblestone', 'Metal', 'Wood', 'Ground', 'Sand', 'Grass']

$(document).ready(() => {
surfacePatterns = []
console.log(surfacePatterns)
for (i = 0; i < surfaceNames.length; i++) {
var temp = new Image()
temp.onload = () => surfacePatterns.push($("#canvas1")[0].getContext('2d').createPattern(temp, 'repeat'))
temp.src = '../img/surfaces/'+ surfaceNames[i] + '.jpg'
}
});

function chart(){
console.log(surfacePatterns)
}

chart() 函数通过按下按钮调用。我故意等了几秒钟,以便它可以加载图像并创建图案,但是当我调用该函数时,它给了我这个:

console

在九张图像中,只有 8 和 9 被转换为图案,其余为空。我不知道发生了什么,因为我没有收到任何错误并且找到了所有图像。如果我更改 surfaceNames 中的字符串,我会如预期的那样收到无法找到图像的错误,如果我使用模式 8 和 9,它们工作得很好。

另一个奇怪的事情:如果我改变

temp.onload = () => surfacePatterns.push($("#canvas1")[0].getContext('2d').createPattern(temp, 'repeat'))

temp.onload = () => surfacePatterns[i] = canvas1[0].getContext('2d').createPattern(temp, 'repeat')

整个数组完全是空的 (=/= null)。此外,将数组初始化为空数组后的第一个日志为我提供了一个长度为 9 的空数组,我不知道为什么,因为还没有发生其他事情。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com