Как изменить цвета текстовой области в ActionScript?
-
05-07-2019 - |
Вопрос
Я создаю TextArea в actionscript:
var textArea:TextArea = new TextArea();
Я хочу, чтобы у него был черный фон. Я пробовал
textArea.setStyle("backgroundColor", 0x000000);
и я пробовал
textArea.opaqueBackground = 0x000000;
но TextArea остается белым. Что мне делать?
Решение
TextArea - это компонент пользовательского интерфейса, созданный из TextField и других встроенных классов Flash и компонентов UIComponents. Как и с большинством компонентов Adobe UI, при настройке свойств все выглядит иначе. Чтобы установить цвет области за текстом в TextArea, вам необходимо установить непрозрачный фон его внутреннего TextField с помощью свойства textField:
var textArea:TextArea = new TextArea()
textArea.textField.opaqueBackground = 0x000000;
Конечно, теперь, когда фон черный, текст также не может быть черным, поэтому мы изменим его цвет, используя новый TextFormat:
var myFormat:TextFormat = new TextFormat();
myFormat.color = 0xffffff;
textArea.setStyle("textFormat",myFormat);
затем просто установите текст и добавьте на сцену:
textArea.text = "hello";
addChild(textArea);
Кроме того, если вы хотите немного больше контроля, здесь есть хороший класс расширения, который устраняет множество проблем с TextArea:
Другие советы
Вот что сработало для меня, что я обнаружил самостоятельно после просмотра обновленной документации AC3
TextArea - Цвет фона, AC3 2011
Я навсегда понял, что в AC3, по состоянию на сейчас (2011), они официально говорят вам использовать spark TextArea вместо mx
( s: TextArea
вместо mx: TextArea
)
<s:TextArea
id="joy_text"
color="0xFF0000"
contentBackgroundColor="0x000000"
text = "joy"
/>
Обратите внимание
color = font color
не забудьте включить в свои пространства имен: (вверху .mxml файла)
xmlns:s="library://ns.adobe.com/flex/spark"