更改MovieClip中TextField的字体颜色

时间:2013-01-27 16:44:30

标签: actionscript-3 flash

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

// .....

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

3 个答案:

答案 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;