PDA

Просмотр полной версии : Цвет шрифта в динамическом поле


Gin
25.03.2012, 15:14
В динамическом поле отображается число, которое равно числу попыток пользователя сделать кое-какое действие. Как сделать так, чтобы после того, как число станет равным восьми, все последующие цифры отображались другим (например красным) цветом?

samana
25.03.2012, 15:41
Как-то так:
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;

/**
* ...
* @author Samana
*/
public class Main extends Sprite
{
static public const RED:uint = 0xFF0000;
static public const BLACK:uint = 0x000000;

private var tf:TextField = new TextField();
private var count:int = 0;

public function Main():void
{
tf.width = 150;
tf.height = 20;
tf.text = String(count);
addChild(tf);

stage.addEventListener(MouseEvent.CLICK, stage_click);
}

private function stage_click(e:MouseEvent):void
{
count++;
tf.text = String(count);
if (count >= 8) tf.textColor = RED
else tf.textColor = BLACK;
}


}

}

Gin
25.03.2012, 16:19
неужели все так сложно? Чтобы просто задать цвет шрифта в динамическом поле этого достаточно:
count1.textColor="red";
?
count1 это instance name динамического текстового поля.

samana
25.03.2012, 16:24
Я всего лишь набросал пример, это не значит что именно весь мой код вам нужен, это просто набросок.
tf - текстовое поле
count - переменная щетчик, которая увеличивается на единицу при клике
После клика идёт проверка чему равен щетчик. Если он равен восьми или больше, то текст становиться красным, иначе будет чёрным.

RhPlus
25.03.2012, 22:30
например так:
tf.addEventListener(Event.CHANGE, showLen);

function showLen (e:Event):void {
if(tf.length > 9) tf.textColor = 0xFF0000;
else tf.textColor = 0x000000;
}

Добавлено через 2 минуты
имя инстанса ловите через getChildByName() или берите напрямую если в кадрах работаете