Javascript/ Easeljs 添加动态文本
Javascript/ Easeljs Adding Dynamic Text
我在 Adobe Animate 中使用 HTML5 Canvas。
我正在尝试编写一个功能,允许我在舞台上的任何地方放置一条文本消息。
请看下面我的代码。
function newtext(TextToDisplay, xposition, yposition, textcolor, textfont)
{var textvar = new createjs.Text();
textvar.x = xposition;
textvar.y = yposition;
textvar.color = textcolor;
textvar.font = textfont;
textvar.text = TextToDisplay;
this.addChild(textvar);}
newtext("Hi there!",200,200,"#ff7799","50px Arial");
我不确定我做错了什么。我找不到包含 EaselJS 包的查看器,因此在此处显示错误消息没有多大意义。此外,"Compiler Errors" 在 Adobe Animate HTML5 Canvas 中作为 window 选项显示为灰色,因此我在测试代码时看不到那里的错误。
如果有人可以推荐合适的查看器,那也会有帮助。
我只是想添加我用来提取代码的内容,而这段代码在函数之外工作。
var fl_TF = new createjs.Text();
var fl_TextToDisplay = "Lorem ipsum dolor sit amet.";
fl_TF.x = 200;
fl_TF.y = 100;
fl_TF.color = "#ff7700";
fl_TF.font = "20px Arial";
fl_TF.text = fl_TextToDisplay;
this.addChild(fl_TF);
评论者建议函数中存在 "this" 可能是问题所在。这可能是问题的一部分,也可能是其他问题。
根据您的描述,addChild
似乎失败了,因为在没有作用域的情况下调用了 newText()
方法。
您应该 收到控制台日志,显示您"addChild is not a function"。
您不能简单地删除 this
。不过,您有两个简单的选择:
1) 通常用来解决这个问题的 hacky 是 "this/that" 模式:
var that = this;
function newText(your args) {
// your other code
that.addChild(fl_TF); // <-- Uses "that" which references the original scope
}
2) 您也可以只在正确的范围内调用该方法:
newText.call(this, "Hi There", 200, 200, "#ff0000", "50px Arial");
希望对您有所帮助!
我在 Adobe Animate 中使用 HTML5 Canvas。 我正在尝试编写一个功能,允许我在舞台上的任何地方放置一条文本消息。
请看下面我的代码。
function newtext(TextToDisplay, xposition, yposition, textcolor, textfont)
{var textvar = new createjs.Text();
textvar.x = xposition;
textvar.y = yposition;
textvar.color = textcolor;
textvar.font = textfont;
textvar.text = TextToDisplay;
this.addChild(textvar);}
newtext("Hi there!",200,200,"#ff7799","50px Arial");
我不确定我做错了什么。我找不到包含 EaselJS 包的查看器,因此在此处显示错误消息没有多大意义。此外,"Compiler Errors" 在 Adobe Animate HTML5 Canvas 中作为 window 选项显示为灰色,因此我在测试代码时看不到那里的错误。 如果有人可以推荐合适的查看器,那也会有帮助。
我只是想添加我用来提取代码的内容,而这段代码在函数之外工作。
var fl_TF = new createjs.Text();
var fl_TextToDisplay = "Lorem ipsum dolor sit amet.";
fl_TF.x = 200;
fl_TF.y = 100;
fl_TF.color = "#ff7700";
fl_TF.font = "20px Arial";
fl_TF.text = fl_TextToDisplay;
this.addChild(fl_TF);
评论者建议函数中存在 "this" 可能是问题所在。这可能是问题的一部分,也可能是其他问题。
根据您的描述,addChild
似乎失败了,因为在没有作用域的情况下调用了 newText()
方法。
您应该 收到控制台日志,显示您"addChild is not a function"。
您不能简单地删除 this
。不过,您有两个简单的选择:
1) 通常用来解决这个问题的 hacky 是 "this/that" 模式:
var that = this;
function newText(your args) {
// your other code
that.addChild(fl_TF); // <-- Uses "that" which references the original scope
}
2) 您也可以只在正确的范围内调用该方法:
newText.call(this, "Hi There", 200, 200, "#ff0000", "50px Arial");
希望对您有所帮助!