Cocos2d JS混合字体标签



在 Cocos2d JS 中,我们可以使用 LabelTTF 来创建标签,并给它一个字体。

我们如何创建混合字体标签,例如">这是我的名字"。

1.(我应该能够更改文本的颜色,字体和大小。在objective-c中,等效的是NSAttributedString。

2.( 或者,我们可以在 cocos2d-js 中显示 html 文本吗?

谢谢

v4 中有一些这样的功能,但现在还没有一个简单的方法。

您必须创建自己的类,该类在内部保留多个LabelTTF,每个部分对应不同格式的文本的每个部分,并在所需的空间内正确排序。

祝你好运!

它被称为富文本。

这是示例代码:

 var richText = new ccui.RichText();
var text1 = new ccui.RichElementText(1, cc.color.RED, 255, "HELLO", "Arial", 25);
var text2 = new ccui.RichElementText(1, cc.color.GREEN, 255, "HELLO", "Arial", 35);
richText.pushBackElement(text1);
richText.pushBackElement(text2);
richText.setPosition(cc.p(200,200));
this.addChild(richText);

看这里

这是我对第二个问题的回答:

基本上,您在输出屏幕中看到的内容来自HTML文件。其中有一个元素可以看到我们的 cocos2dJS 输出。所以,我的想法是...您可以使用不同的 ID 名称创建标签或div。风格必须如下:

idName{display: none; position: fixed;} 

一旦您需要显示div 或标签,您可以通过以下代码访问它并将其显示在屏幕上:

document.getElementById('idName').style.display = 'block';

如果要将其放置在正确的位置,请使用以下代码:

document.getElementById('idName').style.top = cc.winSize.height/2;//This value can be as you wanted to display. 
document.getElementById('idName').style.left = cc.winSize.width/2;//This value can be as you wanted to display. 

这就是完整的场景。你已经完成了。:)

我认为您将需要此链接:https://docs.cocos2d-x.org/api-ref/js/V2.2/symbols/cc.LabelTTF.html

这是来自 cocos2d-x 的文档,下面是一个示例:

var lbCoin =  new cc.LabelTTF( '123.456.789',           /* content */
                               'Arial',                 /* font family */
                               24,                      /* font size */
                               cc.size(0, 0),           /* position */
                               cc.TEXT_ALIGNMENT_LEFT); /* alignment */
lbCoin.attr({
     x: cc.winSize.width / 2,
     y: cc.winSize.height / 2
});
lbCoin.zIndex = 2005;
lbCoin.color = cc.color(250, 221, 149); 
// or you can use lbCoin.setColor(cc.color(250, 221, 149));
this.addChild(this.lbCoin);

最新更新