CocoonJS Не работает заливка рисунка Canvas
Я использую HTML5 Canvas для рисования GUI.
Заливка рисунка отлично работает в браузерах (включая мобильные), но когда я использую пусковую установку Cocoon JS на Android или iPad, узор текстуры просто отображается черным.
var pattern = context.createPattern(imageResource,"repeat");
context.fillStyle = pattern;
context.fillRect(0,0,300,300);
Глядя на консоль CocoonJS, текстура загружается правильно, и context.drawImage() отлично работает с тем же изображением.
Документы указывают, что шаблоны Canvas поддерживаются. Есть идеи, почему шаблонная заливка не работает в программе запуска CocoonJS?
Спасибо
2 ответа
Шаблоны холста поддерживаются в CocoonJS. Этот пример отлично работает на CocoonJS Launcher с текстурами POT и NPOT:
var canvas = document.createElement("canvas");
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
document.body.appendChild(canvas);
var ctx = canvas.getContext("2d");
var img = new Image();
img.onload = function() {
var pattern = ctx.createPattern(img,"repeat");
ctx.fillStyle = pattern;
ctx.fillRect(0,0,300,300);
}
img.src = "img.png";
Пожалуйста, поделитесь больше кода, чтобы воспроизвести проблему.
Мне удалось отследить это до того факта, что я загружал ресурсы изображений после инициализации Three JS (рендерера, камеры и т. Д.).
Несмотря на то, что я ждал загрузки графических ресурсов, прежде чем пытаться заполнить текстуру Canvas, в случае запуска Cocoon у меня возникла проблема "без заливки".
Все, что я сделал, это изменил порядок вещей: сначала загрузите ресурсы изображения, а затем инициализируйте ThreeJS. Кажется, что Fill отлично работает сейчас в лаунчере, хотя я не совсем уверен, почему.