gpt4 book ai didi

javascript - 如何在运行时替换 PIXI.Text 对象中的文本

转载 作者:行者123 更新时间:2023-12-04 17:38:41 27 4
gpt4 key购买 nike

我正在使用 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);
}

最佳答案

正如 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,它不会让您重新声明变量并给出错误。

关于javascript - 如何在运行时替换 PIXI.Text 对象中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55548979/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com