как конвертировать код цвета в as3 - PullRequest
0 голосов
/ 21 октября 2011

Моя цель - динамически добавлять цвет для текста.

var tf:TextField = new TextField();
tf.text ="jkg"
tf.textColor = chatData.user;
listChat.addChild(tf);

Вот мой chatData.user 16777215 этого формата. Но мне нужен chatData.user (0xFF0000) этого формата. Как мне преобразовать код цвета?

Ответы [ 4 ]

1 голос
/ 21 октября 2011

Проверьте глобальную функцию: parseInt (String [, radix])

Он обрабатывает строки, начинающиеся с 0x, как шестнадцатеричные. Если нет 0x; Вы можете указать 16 для параметра radix.

tf.textColor = parseInt(chatData.user);
tf.textColor = parseInt(chatData.user, 16);
0 голосов
/ 03 ноября 2011
var number:uint = chatData.user;
tf.textColor = number

Попробуйте это

0 голосов
/ 21 октября 2011

Легко.Просто разберите строку в uint.

var txtColor:uint=uint(chatData.user);
tf.textColor=txtColor;
0 голосов
/ 21 октября 2011

Очень неясно, в чем именно заключается ваша проблема / что вы пытаетесь сделать.

Но сначала шестнадцатеричное представление десятичного числа 16777215 10 - это FFFFFF 16 . Который белый ... Не красный (который будет FF0000 16 )

A uint - это просто беззнаковое целое число. Это могут быть представлены основы.

16 10 = 20 8 = 10000 2 = 10 16 = G 17

Это все одно целое, просто разные способы их отображения, но для большинства языков программирования это одно и то же. Во флэш-памяти вы представляете буквенные шестнадцатеричные числа, используя обозначение 0x. В JavaScript двоюродного брата ActionScript вы можете создать восьмеричный литерал, добавив к нему ноль (что серьезно иногда отбрасывает некоторых людей 010==8)

Но вернемся к тому, что вы спрашиваете. Я проверил это очень быстро, и установщик textColor объединит строку в uint, если вы дадите ей строку.

        var tf:TextField = new TextField();
        tf.text = "Test";

        var color;
        color = 0xFF0000; // Red
        color = 16711680; // Red
        color = "16711680"; // Red
        color = "0xFF0000"; // Red

        tf.textColor = color;
        this.addChild(tf);

Это все приемлемые "красные", но на самом деле .textColor хочет uint, поэтому первые два являются наиболее действительными. Но 0xFF0000 == 16711680. Это не «разные» числа ... Это одно и то же число, просто разные способы их выражения.

Итак, я не понимаю, в чем ваша проблема? Ваш код должен работать, и делать именно то, что вы сказали, чтобы сделать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...