2012-06-21 11 views
5

ottengo il seguente errore:Come è possibile modificare il colore di un'etichetta in fase di esecuzione in ActionScript 3.0?

1119: Access of possibly undefined property color through a reference with static 
type mx.controls:Label. 

La cosa di questo è che, in MXML, il colore è un attributo di etichetta. Ma se provo a dire qualcosa del tipo:

lblUpgrade.color = "#000000"; 

getta questo errore. Ho cercato di trovare un rimedio per gli ultimi 45 minuti. Come posso impostarlo in fase di runtime? Grazie!

risposta

10

Label non hanno una proprietà color, invece ha uno stile di colore che può essere impostato in questo modo:

lblUpgrade.setStyle("color","#000000"); 
5

stili sono accessibili come questo in AS3

lblUpgrade.setStyle("color","#000000"); 
4

colore è uno stile non una proprietà, la si imposta usando setStyle. Inoltre con as3 usi 0x invece di # per il colore, ma forse questo funziona per gli stili.

lblUpgrade.setStyle ("color", "0x000000");

2

Wow, ho lottato per 45 minuti DOPO che ho trovato questo post. Sto usando Adobe CS6 (non chiedere perché!) E l'unico modo che finalmente funziona per me è questo:

/* Create a new TextFormat object, 
which allows you to set multiple text properties at a time. */ 

var tf:TextFormat = new TextFormat(); 
tf.color = 0xFF0000; 

/* Apply this specific text format (red text) to the Label instance. */ 
a_label.setStyle("textFormat", tf); 

Spero che questo aiuti qualcuno. Fonte: Adobe Help Center

È inoltre possibile utilizzare TextFormat per modificare altre proprietà come Font, Size ecc

Problemi correlati