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:

Einstellung text-Farbe des Funkens.Komponenten.Label

(wie Sie oben sehen, alle zahlen grün sind - auch wenn setColor(0xFF0000) wurde 3 mal genannt).

Getestet habe ich den code und es funktioniert für mich... vielleicht solltest du uns mehr detail.
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

Schreibe einen Kommentar