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);
为什么我不能获得组件的textWidth?我可以为textFields获取它。
我使用了命名空间代码,我有这个:
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);
但是我得到TypeError:错误#1009:无法访问空对象引用的属性或方法。
答案 0 :(得分:1)
您需要使用mx_internal命名空间,以便可以访问Text组件的TextField对象。在您的ActionScript代码中,您必须声明
import mx.core.mx_internal;
use namespace mx_internal;
然后像
var myText:Text = new Text();
var txtfld:TextField = myText.getTextField() as TextField;
所有文本测量属性和方法都可以通过TextField
获得