Apache flex 为什么可以';我不能从文本组件中获取文本宽度吗?
为什么我不能获取组件的文本宽度?我可以在文本字段中找到它 我使用了名称空间代码,我有:Apache flex 为什么可以';我不能从文本组件中获取文本宽度吗?,apache-flex,actionscript,Apache Flex,Actionscript,为什么我不能获取组件的文本宽度?我可以在文本字段中找到它 我使用了名称空间代码,我有: var txtIt:Text = new Text(); txtIt.text = full_array[t][0]; txtIt.width = 700; txtIt.buttonMode = true; txtIt.mouseChildren = false;
var txtIt:Text = new Text();
txtIt.text = full_array[t][0];
txtIt.width = 700;
txtIt.buttonMode = true;
txtIt.mouseChildren = false;
txtIt.selectable = false;
txtIt.y = t * 30;
trace(txtIt.textWidth);
myCanvas.addChild(txtIt);
但是我得到TypeError:Error#1009:无法访问空对象引用的属性或方法。您需要使用mx_内部命名空间,以便可以访问文本组件的TextField对象。在ActionScript代码中,您必须声明
import mx.core.mx_internal;
use namespace mx_internal;
var txtIt:Text = new Text();
txtIt.text = full_array[t][0];
txtIt.width = 700;
txtIt.buttonMode = true;
txtIt.mouseChildren = false;
txtIt.selectable = false;
txtIt.y = t * 30;
var txtfld:TextField = txtIt.getTextField() as TextField;
trace(txtfld.textWidth);
myCanvas.addChild(txtIt);
然后像
import mx.core.mx_internal;
use namespace mx_internal;
所有文本测量属性和方法都可以通过TextField获得我得到一个TypeError:Error#1009:无法访问空对象引用的属性或方法。我将我的新代码添加到我的主要问题中。我是新来的,所以我不确定是否应该把它放在评论中。请尝试导入flash.text.TextField。要了解更多信息,请转到“事实上”,现在我用“晨脑”查看您的问题,我有另一个建议。创建一个新的TextLineMetrics对象,并为其分配txIt.measureText()的返回值。然后在调试器中检查对象,看看是否获得了TextLineMetrics的所有属性,包括宽度、高度等。感谢我这么做:var metrics:TextLineMetrics=measureText(txtIt.text);跟踪(度量、宽度);而且它似乎在起作用。
var myText:Text = new Text();
var txtfld:TextField = myText.getTextField() as TextField;