有没有办法用html5 canvas'fillText方法将文本放在一个不可见的文本框中?

时间:2012-04-22 18:41:21

标签: javascript html5 text

我正在制作HTML5游戏,我需要一种以文字方式告知玩家事情的方法。我想使用fillText方法将文本放在此框中:

enter image description here

现在,我只知道如何在一行中呈现文本,但这显然不够,因为需要有文本的换行符。有没有办法快速完成这项工作,还是我必须自己编写代码?

这是一条消息看起来像这样: enter image description here

1 个答案:

答案 0 :(得分:1)

查看spec,如果您只想使用画布,则必须自己动手。

为此,您需要使用measureText来获取文字的大小并手动分解。但这似乎很麻烦。

我发现更优雅的另一个解决方案是使用HTML的叠加层。用于此的HTML可能如下所示:

<div id="outer" syle="position:relative">
   <canvas id='myCanvas'/>
   <div id="textualDiv" syle="position:absolute"></div>
</div>

然后根据您的需要定位textualDiv,您只需在需要时填写它。之后你就会隐藏它。并在需要时再次显示它。