Einstellung text-Farbe des Funkens.Komponenten.Label
Habe ich diese sehr einfache benutzerdefinierte Komponente, aus zwei Etiketten: _left und _right.
Er sollte mehrere Arten von score in einem Spiel: 1.2.3.4.5.6
Die Letzte Ziffer ("6" im Beispiel oben), sollte in Fettschrift, wenn es sich gerade geändert hat (in der aktuellen Spiel-Runde), ansonsten sind alle zahlen Aussehen sollte derselben.
Auch die Letzte Zahl sollte rot oder grün (je nachdem ob es "schlechte" oder "gute" Bewertung).
Hier ist mein Quellcode für ScoreLabel.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:HGroup
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
gap="0">
<fx:Script>
<![CDATA[
public function setText(str:String, changed:Boolean=false):void {
if (!changed) {
_right.text = '';
_left.text = str;
return;
}
var array:Array = str.split('.');
_right.text = array.pop();
_left.text = array.join('.') + '.';
}
public function setColor(n:uint):void {
_right.setStyle('color', n);
trace('setColor: ' + n);
}
]]>
</fx:Script>
<s:Label id="_left" width="100%" textAlign="right"/>
<s:Label id="_right" width="25" fontWeight="bold" color="#006600"/>
</s:HGroup>
Mein problem ist: wenn ich Anrufe, myLabel.setColor(0xFF0000); der text nicht rot ändern, bleibt aber in der Standard-Farbe grün - auch wenn ich sehe die Spuren im debugger.
Irgendwelche Ideen bitte, warum die Farbe nicht ändern?
Ich weiß auch, dass ich ändern könnte, die oben genannten Komponente:
private var _color:uint;
<s:Label id="_right" width="25" fontWeight="bold" color="{_color}"/>
und ändern _color Mitglied, aber ich würde lieber nicht tun, führen eine mehr Datenbindung, denn ich werde noch viele ScoreLabel in meine Anwendung:
(wie Sie oben sehen, alle zahlen grün sind - auch wenn setColor(0xFF0000) wurde 3 mal genannt).
Danke für den Versuch und das tut mir Leid: ich hatte einen Tippfehler in meiner Haupt-source-code - kommt von der Arbeit spät abends auf meinem hobby-Projekt.
InformationsquelleAutor Alexander Farber | 2011-11-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint, dass ohne einen impliziten cast zu Label, Flash Builder 4.6 Premium einfach nicht kompilieren, da es sagt das folgende:
Wenn Sie ändern:
:
sollte es funktionieren.
InformationsquelleAutor evannieuwburg