3

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

// .....

最後の行の後にフォントの色を変更するにはどうすればよいですか?

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 が 1 つしかないことを前提としています。複数ある場合は、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 に答える