3

在将 TextField 作为子项添加到 MovieClip 后,我无法更改其字体颜色。

我的代码:

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);

// .....

如何在最后一行之后更改字体颜色?

4

3 回答 3

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 并为您要更改的值添加一个公共属性。

于 2013-01-28T18:55:22.503 回答
3

听起来您正在寻找TextField.setTextFormat()。您可以调整您的原件TextFormat,也可以制作一个全新的。

tf.color = 0xFF0000;
capt.setTextFormat(tf);
于 2013-01-27T17:17:23.600 回答
1

您也可以只使用文本字段的 textColor 属性:

capt.textColor = 0xFF0000;
于 2015-10-04T06:18:01.513 回答