Изменение цвета для fillText() на HTML5 <canvas>
Я пытаюсь изменить цвет для каждой строки своих сообщений на холсте, но пока ничего не добился. Я попытался создать переменную для каждого из них, но все равно не повезло. любая помощь будет оценена.
function initiate(){
var elem = document.getElementById("canvas");
canvas = elem.getContext("2d");
addEventListener("mousemove", animation);
canvas.shadowColor = "rgba(0, 0, 0, 0.5)";
canvas.shadowOffsetX = 4;
canvas.shadowOffsetY = 4;
canvas.shadowBlur = 5;
canvas.font = "bold 24px verdana, sans-serif ";
var welcomeMessage ="Welcome to the store!";
canvas.textAlign = "start";
canvas.textBaseline = "bottom";
canvas.fillText(welcomeMessage, 400, 50);
canvas.font = "bold 14px verdana, sans-serif";
var message2 = "Your favorite store for videos games and latest DVDs!";
canvas.textAlign = "start";
canvas.textBaseline = "bottom";
canvas.fillText(message2, 400, 100);
canvas.font = "bold 12px verdana, sans-serif";
canvas.textAlign = "start";
canvas.textBaseline = "bottom";
// Create gradient
//var gradient=canvas.createLinearGradient(0,0,c.width,0);
//gradient.addColorStop("0","magenta");
//gradient.addColorStop("0.5","blue");
//gradient.addColorStop("1.0","red");
//canvas.fillStyle = gradient;
canvas.fillText(" <-- Move your mouse aroud to interact with Macroplay smily!", 400, 250);
}
Ответы
Ответ 1
вам нужно установить цвет текста.
Что-то вроде этого:
canvas.font = "bold 24px verdana, sans-serif ";
var welcomeMessage ="Welcome to the store!";
canvas.textAlign = "start";
canvas.textBaseline = "bottom";
canvas.fillStyle = "#ff0000"; //<======= here
canvas.fillText(welcomeMessage, 400, 50);
canvas.font = "bold 14px verdana, sans-serif";
var message2 = "Your favorite store for videos games and latest DVDs!";
canvas.textAlign = "start";
canvas.textBaseline = "bottom";
canvas.fillStyle = "#00ff00"; //<======= and here
canvas.fillText(message2, 400, 100);
Кроме того, может быть хорошей идеей назвать вашу контекстную переменную "context" или "cxt" вместо "canvas". Это будет менее запутанным:)
Ответ 2
Вы пробовали простые fillStyles как:
canvas.fillStyle = "#ff00ff";
Отрисовка текста на <canvas>
может не поддерживать расширенные стили заполнения.
Просто установите новый fillStyle перед визуализацией каждого сообщения.