在将TextField作为子项添加到MovieClip后,我有一个问题需要更改TextField的字体颜色。
我的代码:
var btn:MovieClip = new MovieClip();
// other code for button
var tf:TextFormat = new TextFormat();
tf.size = 12;
tf.bold = true;
tf.font = "Arial"
tf.color = 0x000000;
var capt:TextField = new TextField();
capt.defaultTextFormat = tf;
capt.width = 200;
capt.height = 50;
capt.text = "Test";
capt.y = 20;
capt.x = 20;
capt.border = false;
capt.selectable = false;
btn.addChild(capt);
// .....
如何在最后一行之后更改字体颜色?
答案 0 :(得分:4)
假设TextField
在最后一行之后超出范围(你没有足够的知道它是否存在),你需要循环按钮来获取TextField并执行它从那里。
var i:uint;
var l:uint = btn.numChildren; //numChildren and length are 'heavy' getters, never use them as restrictors in a loop
for ( i = 0; i < l; i++ ) {
var cur:DisplayObject = btn.getChildAt( i );
if ( cur is TextField ) {
( cur as TextField ).setTextFormat( /*set new TextFormat in here*/);
break;
}
}
假设当然只有单个TextField。如果有多个,我会扩展MovieClip并为要更改的值添加公共属性。
答案 1 :(得分:3)
听起来你正在寻找TextField.setTextFormat()。您可以调整原始TextFormat
或只是制作一个全新的。{/ p>
tf.color = 0xFF0000;
capt.setTextFormat(tf);
答案 2 :(得分:1)
您也可以使用textfield的textColor属性:
capt.textColor = 0xFF0000;