Come cambio i colori di una textarea in ActionScript?
-
05-07-2019 - |
Domanda
Creo un TextArea in ActionScript:
var textArea:TextArea = new TextArea();
Voglio che abbia uno sfondo nero. Ho provato
textArea.setStyle("backgroundColor", 0x000000);
e ho provato
textArea.opaqueBackground = 0x000000;
ma TextArea rimane bianco. Cosa devo fare?
Soluzione
TextArea è un componente dell'interfaccia utente creato da TextField e altre classi incorporate Flash e componenti UIC. Come con la maggior parte dei componenti dell'interfaccia utente di Adobe, nulla è come sembra quando si impostano le proprietà. Per impostare il colore dell'area dietro il testo in TextArea, devi effettivamente impostare lo sfondo opaco del suo TextField interno usando la proprietà textField:
var textArea:TextArea = new TextArea()
textArea.textField.opaqueBackground = 0x000000;
Naturalmente ora che lo sfondo è nero, anche il testo non può essere nero, quindi cambiamo colore con un nuovo TextFormat:
var myFormat:TextFormat = new TextFormat();
myFormat.color = 0xffffff;
textArea.setStyle("textFormat",myFormat);
quindi imposta il testo e aggiungi allo stage:
textArea.text = "hello";
addChild(textArea);
Inoltre, se vuoi un po 'più di controllo, qui c'è una bella classe di estensioni che risolve molti problemi con TextArea:
Altri suggerimenti
Ecco cosa ha funzionato per me, che ho scoperto da solo dopo aver esaminato la documentazione AC3 aggiornata
TextArea - Colore di sfondo, 2011 AC3
Mi ha preso per sempre per rendermi conto che in AC3, a partire da ora (2011), ti hanno ufficialmente detto di usare spark TextArea invece di mx
( s: TextArea
anziché mx: TextArea
)
<s:TextArea
id="joy_text"
color="0xFF0000"
contentBackgroundColor="0x000000"
text = "joy"
/>
Nota
color = font color
assicurati di includere nei tuoi spazi dei nomi: (nella parte superiore del file .mxml)
xmlns:s="library://ns.adobe.com/flex/spark"