• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-08-2010, 17:06   #1 (permalink)
Flasher
 
Registriert seit: Aug 2010
Beiträge: 328
dynamisches Befüllen einer TextArea Komponente

Hallo!

Ich scheitere an folgendem (wahrscheinlich simplen) Problem, zudem mir einfach aufgrund mangelnder Erfahrung mit FlashBuilder 4 kein Lösungsansatz einfallen mag...

Ich erstelle zu allererst eine TextArea
Code:
<s:TextArea id="textArea" width="100%" height="155" borderColor="#32c747" selectable="false" editable="false" verticalAlign="top"/>
Nun möchte entsprechend der Datensätze aus einer Datenbank (das funktioniert alles schon...) diese Textarea mit unterschiedlichen Informationen befüllen, von welcher einzelne Teile anders gefärbt/bold erscheinen sollen.

Mit der text-Eigenschaft der textArea kann ich nur den String verändern, nicht aber das Erscheinungsbild des Textes. Ich habe nun schon verschiedene Versuche mit textDisplay und textFlow unternommen, werde nun aber langsam verrückt...

Daher meine Frage: gibt es eine einfache und elegante Möglichkeit, im Script-Teil der mxml dynamischen Text zu generieren und auch zu formatieren? Ist TextArea überhaupt die dafür geeignete Komponente oder geht das auch besser?

Vielen Dank! (Ich befürchte gerade ein wenig, das die Lösung so banal und simpel sein wird, das allein das stellen der Frage schon peinlich ist...)
Ouroborus23 ist offline   Mit Zitat antworten
Alt 24-08-2010, 17:08   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Ja, das geht alles - auch einigermaßen komplexe Sachen.
Omega Psi ist offline   Mit Zitat antworten
Alt 24-08-2010, 17:25   #3 (permalink)
Flasher
 
Registriert seit: Aug 2010
Beiträge: 328
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Ja, das geht alles - auch einigermaßen komplexe Sachen.
=D Vielen dank für die schnelle Antwort - Ich ging davon aus das das funktioniert, die Frage ist nur: wie? Wenn du vielleicht Links zu Beispielen oder einer guten Dokumentation hast, immer her damit, ab dort kann ich dann auch wieder allein laufen. Ich finde halt immer nur Beispiele, wie ich formatierten Text innerhalb der Komponente einfügen kann, allerdings nicht, wie man es im Script-Bereich löst..

Würde mich sehr über eine genauere Erklärung freuen
Ouroborus23 ist offline   Mit Zitat antworten
Alt 24-08-2010, 17:47   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Code:
<?xml version="1.0"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
         implements="mx.core.IDataRenderer">

    <fx:Script>
        <![CDATA[

        import flashx.textLayout.elements.ParagraphElement;
        import flashx.textLayout.elements.SpanElement;
        import flashx.textLayout.elements.TextFlow;

        //-----------------------------
        //          data
        //-----------------------------

        /**
         * Storage for the data property.
         */
        private var _data:Object;

        /**
         * Flag indicating the data property changed.
         */
        private var _dataChanged:Boolean;

        [Bindable("dataChanged")]
        /**
         * @inheritDoc
         */
        public function get data():Object
        {
            return _data;
        }

        public function set data(value:Object):void
        {
            if (_data == value)
            {
                return;
            }
            _data = value;
            _dataChanged = true;
            invalidateProperties();
            dispatchEvent(new Event("dataChanged"));
        }

        //---------------------------------------------------------------------
        //
        //          Methods
        //
        //---------------------------------------------------------------------

        /**
         * Creates a new TextFlow object containing text read from the given object.
         *
         * @param data
         *        The object containing the data to be displayed.
         * @param labelField
         *        A string identifying the property to be read.
         *
         * @return the textFlow instance created.
         */
        private function dataToTextFlow(data:Object, labelField:String):TextFlow
        {
            var s:SpanElement = new SpanElement();
            s.text = data[labelField];

            var p:ParagraphElement = new ParagraphElement();
            p.addChild(s);

            var t:TextFlow = new TextFlow();
            t.addChild(p);

            return t;
        }

        //---------------------------------------------------------------------
        //
        //          Overridden Methods
        //
        //---------------------------------------------------------------------

        /**
         * @inheritDoc
         */
        protected override function commitProperties():void
        {
            super.commitProperties();

            textDisplay.textFlow = data ? dataToTextFlow(data, "label") : null;
        }

        ]]>
    </fx:Script>

    <s:TextArea id="textDisplay" />
</s:Group>
So als Beispiel.
Omega Psi ist offline   Mit Zitat antworten
Alt 25-08-2010, 09:58   #5 (permalink)
Flasher
 
Registriert seit: Aug 2010
Beiträge: 328
Aaaah okay die Geschichte mit dem SpanElement war mir nicht bekannt.. Ich hatte gedacht man müsse da irgendwie mit html-Statements rumeiern.

Vielen Dank!
Ouroborus23 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
flashbuilder, flex, formatierung, richtext, textarea

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Backend zum Befüllen einer Datenbank headkit Flash und Datenbanken 2 02-07-2007 11:15
inhalt einer textarea komponente auswerten rok°! Flash MX 2004 4 29-01-2005 17:43
Größe einer Textarea Komponente ändern alex-t.de Flash MX 2004 0 10-07-2004 08:54
Popup link in einer Textarea Komponente m.friedli Flash MX 2004 0 13-02-2004 13:28
Popup link in einer Textarea Komponente m.friedli Flash MX 2004 2 12-02-2004 13:41


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:35 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele