4

我有一个 HTML5 画布并context.fillText(...);使用 @font-face-font 编写文本。
使用 Firefox (3.6) 显示页面 我有一个问题,即在画布的第一次绘制中,尚未下载字体,因此文本将以标准字体显示。我在这里
找到了一个“解决方案” ,但它不起作用,因为该字体仅在画布中使用,并且使用 jQuery 使用 ajax 加载和显示画布。 有没有比尝试使用超时更好的解决方案?
setTimeout(repaintCanvas, 500);

4

2 回答 2

4

嗯,你可以试试这个,

$.get('font/url.ttf',function(){
   // do canvas codes.... cause font is loaded...
});
于 2010-08-03T07:38:00.787 回答
4

我想我在 Reigel 的回答的帮助下找到了解决方案:

$.get('font/url.ttf', function() {
    // do canvas codes.... cause font is loaded...
});

此外,将字体 viafont-family: 'fontfacename';用于画布的父元素。
可能是字体加载了两次,不知道。但是如果没有第二次加载,它将无法正确显示。

于 2010-08-03T07:53:19.657 回答