我正在尝试在 HTML5 Canvas 中自动换行,但我很挣扎!
我创建了一个 TextTyper 对象,该对象将管理多行自动换行文本。
我遇到的问题是我得到了一个无限循环!
我需要一个使用纯 JavaScript(无 jQuery)和 HTML5 Canvas 的解决方案。
我制作了一个 JSFiddle 来帮助解决我的问题并测试不同的策略:http: //jsfiddle.net/Jamesking56/eECar/
到目前为止,这是我的 TextTyper 对象:
function TextTyper(text, x, y, font, colour)
{
this.text = text || "";
this.x = x || 20;
this.y = y || 20;
this.font = font || false;
this.colour = colour || [0, 0, 0];
this.lines = 0;
// Calculate and draw the lines
this.draw = function ()
{
canvas.width = canvas.width;
var maxWidth = (canvas.width - 40);
var words = this.text.split(' ');
var line = [words[0]]; //begin with a single word
for (var i = 1; i < words.length; i++)
{
while (ctx.measureText(line.join(' ')) < maxWidth && i < words.length - 1)
{
line.push(words[i++]);
}
if (i < words.length - 1)
{
//Loop ended because line became too wide
line.pop(); //Remove last word
i--; //Take one step back
}
this.lines++;
}
}
}
有任何想法吗?