大家好,我一直在不懈地尝试编写一个脚本来检查字符串的宽度,如果它大于某个数量,则降低字体大小并再次绘制它。除了这不起作用。一旦我最初绘制文本,它就永远不会更新为正确的字体大小。它只是保持原来的样子,并且永远不会变得更小,从而使脚本陷入无限循环。这是我的代码:
var nFontSize = 25;
var draw_name = function(text) {
var c=document.getElementById("badgeCanvas");
var ctx=c.getContext("2d");
ctx.font="nFontSize OpenSansBold";
ctx.fillStyle = "#000000";
ctx.fillText(text,80,25);
var metrics = ctx.measureText(text);
var width = metrics.width;
while (width > 200) {
nFontSize--;
ctx.font="nFontSize OpenSansBold";
ctx.fillText(text,80,25);
metrics = ctx.measureText(text);
width = metrics.width;
}
ctx.font="nFontSize OpenSansBold";
ctx.fillStyle = "#000000";
ctx.fillText(text,80,25);