12
2015
05

createjs中Text中文不换行的问题

前段时间用createjs做了个小游戏,发现一个问题:在使用Text显示文本的时候,中文内容无论多长都会不换行,后来在每个文字之间都加入一个空格,总算能换行了。

看了看createjs的源码,Text类的 _drawText方法中有这么两句:

  1. var hardLines = String(this.text).split(/(?:\r\n|\r|\n)/);

  2. var words = str.split(/(\s)/);

结合源码上下文来看就是,先根据“\r\n|\r|\n”来分行,然后一行内再通过"\s"来分词,单词中间是不换行的,单词之间可以换行。英文单词与单词之间是有空格的,而中文文字之间是没有空格的,所以中文会有问题。中文换行实现起来并不难,只是createjs的作者没有考虑到吧。这点lufyLegend做的就比较好。

最近createjs官网还是上不去,也懒得去看源码有没有更新了。目前做的时候是在中文之间插入空格,效果看着也还可以。

这个问题并不是什么大问题,解决起来也不难,知道了就好,就不再多说了。

createjs中Text中文不换行的问题(2)

« 上一篇下一篇 »

相关文章:

使用Typescript开发基于createjs的项目  (2016-8-25 9:54:40)

createjs中文API  (2016-8-18 8:45:24)

pixi和createjs效率对比  (2016-8-2 9:45:21)

createjs中stage.mouseX的bug  (2016-7-12 9:14:44)

createjs启用touch事件  (2016-7-12 9:7:5)

createjs指定文本最大高度  (2016-6-14 10:0:38)

如何使用Createjs来编写HTML5游戏(转)  (2016-2-3 13:57:38)

createjs中Text中文不换行的问题(2)  (2015-11-25 10:58:11)

(十二)createjs游戏-围住神经猫  (2015-11-18 14:7:20)

(十一)createjs游戏-游戏框架  (2015-11-18 11:16:31)

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。