2012-06-21 49 views
5

me sale el siguiente error:¿Cómo se puede cambiar el color de una etiqueta en tiempo de ejecución en ActionScript 3.0?

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

Lo que pasa con esto es que, en el MXML, el color es un atributo de la etiqueta. Pero si trato de decir algo como:

lblUpgrade.color = "#000000"; 

, arroja este error. He estado tratando de encontrar una solución alternativa durante los últimos 45 minutos. ¿Cómo puedo configurar esto en tiempo de ejecución? ¡Gracias!

Respuesta

10

Label no tiene una propiedad color, sino que tiene un estilo de color que se puede establecer de este modo:

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

estilos se accede así en AS3

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

color es un estilo no es una propiedad, la configura usando setStyle. También con as3 usa 0x en lugar de # para el color, pero tal vez eso funcione para los estilos.

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

2

Guau, he estado luchando durante 45 minutos DESPUÉS de encontrar esta publicación. Estoy usando Adobe CS6 (no pregunte por qué!) Y la única manera de que finalmente funciona para mí es la siguiente:

/* 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); 

Espero que esto ayude a alguien. Fuente: Adobe Help Center

También puede utilizar TextFormat para cambiar otras propiedades como Font, Size etc.

Cuestiones relacionadas