1
HTML5 Canvas에서 오디오 비주얼 라이저로 사용되는 일련의 직사각형에 배경 패턴으로 PNG를 사용하고 있지만 Uncaught TypeError with my 번호 :'CanvasRenderingContext2D'에서 'createPattern'을 실행하지 못했습니다.
HTML :
<canvas id="analyser_render"></canvas>
JS :
이것은 내 실제 코드의 일부분이다canvas = document.getElementById('analyser_render');
ctx = canvas.getContext('2d');
ctx.clearRect(0, 0, canvas.width, canvas.height);
pattern = ctx.createPattern("images/analyser.png", "repeat-x");
ctx.fillStyle = pattern;
bars = 30;
for (var i = 0; i < bars; i++) {
bar_x = i * 10;
bar_width = 9;
bar_height = -(dataArray[i]/2);
ctx.fillRect(bar_x, canvas.height, bar_width, bar_height);
}
, 직사각형의 생성을 포함하는 부분. dataArray 변수는 Web Audio API의 일부이며 문제의 일부가 아닙니다.
에게 문의하십시오. – K3N
필자는 반드시 @KenFyrstenberg 일 필요는 없다. 위 코드를 내 함수에 넣기 만하면 모든 언로드없이 원하는대로 작동했다. 그런 다음 img 선언은 INIT 함수에 있었고 createPattern은 루핑 requestAnimationFrame 함수에있었습니다. 따라서 혼란이있을 수 있습니다. – Murphy1976
이미지가 브라우저에 캐시되어 로컬로로드되기 때문입니다. 이 코드를 온라인에 올리면 사용자가 이미지를 처음로드 할 때 이미지가 시간에 맞게로드되거나로드되지 않을 수 있습니다. 이것이 onload *가 제대로 처리되어야하는 이유입니다. – K3N