首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在CreateJS中添加不间断的空格?

是否可以在CreateJS中添加不间断的空格?
EN

Stack Overflow用户
提问于 2019-10-10 19:42:08
回答 2查看 109关注 0票数 0

在使用CreateJS (或EaselJS)时,我尝试添加一个不间断的空格。但它不起作用。例如:我不想在"text“和"!”之间换行。示例:

代码语言:javascript
运行
复制
this.copy_01 = new cjs.Text("This is a text\u00A0!", "bold 60px 'Times New Roman'", "#FFFFFF");

\u00A0通常在JavaScript中工作。但现在它只添加了一个空格,而不是不间断的空格。

有人知道是否可以在CreateJS中添加一个不间断的空格吗?

EN

回答 2

Stack Overflow用户

发布于 2019-10-10 22:55:34

EaselJS中的换行是在画布中手动实现的,因此它不遵循JavaScript规则集。您必须手动添加对它的支持。抱歉的!

票数 1
EN

Stack Overflow用户

发布于 2019-10-11 23:21:45

我目前正在尝试一种解决方法。似乎对我很有效,但我对此并不是很满意。

代码语言:javascript
运行
复制
function nonBreak(textObj) {
    var origString = textObj.text; 
    var compStr = origString.replace(/(.|[\r\n])*?<nbr>.*?($|\s)/, "");
    compStr = origString.replace(compStr, ""); 
    compStr1 = compStr.replace(/<nbr>/, " "); 
    compStr2 = compStr.replace(/<nbr>/, "\n"); 
    textObj.text = compStr1;
    var sizeStr1 = textObj.getMetrics().height;
    textObj.text = compStr2;
    sizeStr2 = textObj.getMetrics().height;
    textObj.text = origString;

    if (sizeStr1 == sizeStr2) {
        newString1 = origString.replace(/\s?[^ ]*<nbr>.*/, "");
        newString2 = origString.replace(newString1 + " ", "");
        newString1 = newString1 + "\n";
        newString2 = newString2.replace(/<nbr>/, " ");
        newString = newString1 + newString2;
        textObj.text = newString;
    } else {
        newString = origString.replace(/<nbr>/, " ");
        textObj.text = newString;
    }

}




var origString = this.copy_01.text;
var textCopy = this.copy_01;
var countBR = origString.match(/<nbr>/g);
if (countBR !== null) {
    for (i = 0; i < countBR.length; i++) {

        if (countBR[i] == "<nbr>") {
            nonBreak(textCopy);
        }

    }

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58322106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档