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;