- 显示文本
显示文本
使用一个 Text 对象 (PIXI.Text)在舞台上展示文本。简单来说,你可以这样使用它:
let message = new Text("Hello Pixi!");app.stage.addChild(message);
这将会在画布上展示文本“Hello, Pixi”。Pixi的文本对象继承自Sprite类,所以它包含了所有相同的属性,像x, y, width, height,alpha, 和 rotation。你可以像处理其他精灵一样在舞台上定位或调整文本。例如,你可以像下面这样使用position.set来设置message的x和y位置:
message.position.set(54, 96);

这样你会得到基础的未加修饰的文本。但是如果你想要更绚丽的文字,使用Pixi的TextStyle函数来自定义文字效果。下面展示如何操作:
let style = new TextStyle({fontFamily: "Arial",fontSize: 36,fill: "white",stroke: '#ff3300',strokeThickness: 4,dropShadow: true,dropShadowColor: "#000000",dropShadowBlur: 4,dropShadowAngle: Math.PI / 6,dropShadowDistance: 6,});
这将创建一个新的包含所有你想用的样式的style对象。所有样式属性,see here。
添加style对象作为Text函数的第二个参数来应用样式到文本上,就像这样:
let message = new Text("Hello Pixi!", style);

如果你想要在你创建文本对象之后改变它的内容,使用text属性。
message.text = "Text changed!";
如果你想要重新定义样式属性,使用style属性。
message.style = {fill: "black", font: "16px PetMe64"};
Pixi通过调用Canvas绘画api将文本渲染成不可见或临时的canvas元素来创建文本对象。它之后会将画布转化为WebGL纹理,所以可以被映射到精灵上。这就是为什么文本的颜色需要被包裹成字符串:那是Canvas绘画api的颜色值。与任何canvas颜色值一样,你可以使用“red”或“green”等常用颜色的单词,或使用rgba,hsla或十六进制值。
Pixi也能包裹文本的长段。设置文本的 wordWrap 样式属性到 true,然后设置wordWrapWidth到一行文字应该到的最大像素。调用align属性来设置多行文本的对齐方式。
message.style = {wordWrap: true, wordWrapWidth: 100, align: center};
(注意:align 不会影响单行文本。)
如果你想要使用自定义的字体文件,使用CSS的@font-face规则来链接字体文件到Pixi应用运行的HTML页面。
@font-face {font-family: "fontFamilyName";src: url("fonts/fontFile.ttf");}
添加这个@font-face语句到你的HTML页面的CSS里面。
Pixi也支持位图字体。你可以使用Pixi的加载器来加载XML位图文件,就像你加载JSON或图片文件一样。
