使用PIXIJS创建游戏。我希望在发生某些事件时替换状态消息。问题是上面添加了文本,但旧文本并未删除:
这听起来很简单,但是我在Pixt.Text对象的文档中没有找到任何更改文本的方法。 谢谢。
var statusMessage;
// create a Text Sprite from a text message
function getStausMessageSprite(message){
var style = {font: 'bold italic 36px Arial'};
var statusMessage = new PIXI.Text(message.value, style);
statusMessage.x = 10;
statusMessage.y = 550;
return statusMessage;
}
// drawing status message (update message)
function drawStatusMessage(message) {
// try to remove the old sprite from the stage (it still appears)
app.stage.removeChild(statusMessage);
// create a new Text Sprite and add it
statusMessage = getStausMessageSprite(message);
app.stage.addChild(statusMessage);
}
答案 0 :(得分:0)
正如HankMoody在评论中所说:更改.text属性。您无需创建新对象。
function updateStatusMessage(message) {
statusMessage.text = message.value;
}
此外,您的示例未正确删除文本的原因可能是这样的:
您声明一个全局var statusMessage;
,然后在getStausMessageSprite
函数中再次声明它。我猜想全局statusMessage
将不包含新的文本对象。
删除第二个变量,它可能会起作用:
// create a Text Sprite from a text message
function getStausMessageSprite(message){
var style = {font: 'bold italic 36px Arial'};
statusMessage = new PIXI.Text(message.value, style);
statusMessage.x = 10;
statusMessage.y = 550;
return statusMessage;
}
最后说明:我最近了解到,如果您使用let
而不是var
,它不会让您重新声明变量并给出错误。
答案 1 :(得分:0)
- set_fact:
var2: "{% if var|int == 1 %}summer{% else %}winter{% endif %}"
我们可以在运行时使用 textObj.text 替换文本。