2012-06-21 2 views
5

bekomme ich folgende Fehlermeldung:Wie können Sie die Farbe eines Labels zur Laufzeit in ActionScript 3.0 ändern?

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

Die daran ist, dass in der MXML, Farbe ein Attribut Label ist. Aber wenn ich versuche, etwas wie zu sagen:

lblUpgrade.color = "#000000"; 

wirft es diesen Fehler. Ich habe versucht, in den letzten 45 Minuten einen Workaround zu finden. Wie kann ich das zur Laufzeit einstellen? Vielen Dank!

Antwort

10

Label keine color Eigenschaft hat, sondern hat eine Farbe, die ist wie so eingestellt werden kann:

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

Styles wie dies in AS3 zugegriffen werden

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

Farbe ist ein Stil keine Eigenschaft, Sie setzen es mit setStyle. Auch mit as3 verwenden Sie 0x anstelle von # für die Farbe, aber vielleicht funktioniert das für Stile.

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

2

Wow, ich habe seit 45 Minuten gekämpft, NACHDEM ich diesen Beitrag gefunden habe. Ich bin mit Adobe CS6 (nicht fragen, warum!) Und der einzige Weg, der schließlich für mich funktioniert, ist dies:

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

Hope this jemand hilft. Quelle: Adobe Help Center

Sie können auch Textformat verwenden, um andere Eigenschaften zu ändern, wie Font, Size usw.

Verwandte Themen