tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
11
ZUGRIFFE
1262
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Stiff Stiff ist offline Mitglied Silber
    Registriert seit
    Sep 2003
    Beiträge
    80
    Hallo Community,
    ich habe eine XML Datei erstellt, die ich in einer DataGrid Komponente ausgebe. Die XML-Datei wird jedoch ständig aktualisiert. Also es ändern sich Werte. Lasse halt den Film immer wieder von vorne beginnen, um zu erreichen, dass die XML Datei neu eingelesen wird. Das klappt bis hier hin noch ganz gut.

    Ich würde nun aber gerne die Spalten sortieren. Das klappt auch noch, aber nur so lange bis die XML Datei neu eingelesen wird. Dies geschiet ca. jede Sekunde einmal.

    Irgendwie komm ich nicht weiter und weiß auch nicht ob ich auf dem richtigen Weg bin. Gibt es eine Möglichkeit, jede Änderung der XML Datei live in einem DataGrid darzustellen, ohne dabei auf Sachen wie sortieren und scrollen zu verzichten?
     

  2. #2
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    wie wird die XML-Datei eingelesen und der Komponente zugewiesen?

    Ein Neustart des kompletten Films ist sicher unnötig, aber ggf. musst Du die Werte "manuell" aktualisieren.

    Poste bitte einmal Deine .fla und die dazugehörige XML-Datei.

    Gruß
    .
     

  3. #3
    Stiff Stiff ist offline Mitglied Silber
    Registriert seit
    Sep 2003
    Beiträge
    80
    Also ich habe zwei Movieclips:

    Der erste sieht so aus und besteht aus 2 Bildern, um die Aktualisierung auszuführen:

    PHP-Code:
    var entry = new Array();
    var 
    xm = new XML();
    xm.ignoreWhite true;
    xm.load(_parent.textfelder.urlname);
    var 
    dg_data1:Array = new Array();
    xm.onLoad = function() {
    obj this.firstChild// meincontent-Tag
    }
    for (var 
    i=0i<obj.childNodes.lengthi++) {
        
    child obj.childNodes[i];
        
    Nummer.text child.attributes.Nummer;
        
    dg_data1.push ({
            
    Raum:child.attributes.Nummer
            
    Temperatur:child.attributes.Temperatur
            
    Sollwert:child.attributes.Sollwert
            
    Schiebung:child.attributes.Schiebung,
            
    KLVentiel:child.attributes.KLVentiel,
            
    HZVentiel:child.attributes.HZVentiel
            
    });
        
    Temperatur.text child.attributes.Temperatur;
    }
    _parent.textfelder.dg_etage.dataProvider dg_data1
    Der Zweite so:

    PHP-Code:
    var urlname "raumliste.xml";
    var 
    startButton:mx.controls.Button;
    var 
    startButton1:mx.controls.Button;
    var 
    urlloader:Object;
    var 
    urlloader1:Object;
    urloader = new Object();
    urloader1 = new Object();
    urloader.click = function(evtObj){
    //  trace("The " + evtObj.target.label + " button was clicked");
      
    urlname "raumliste.xml";
    }
    urloader1.click = function(evtObj){
    //  trace("The " + evtObj.target.label + " button1 was clicked");
      
    urlname "raumliste1.xml";
    }
    startButton.addEventListener("click"urloader);Y
    startButton1
    .addEventListener("click"urloader1);Y
    trace 
    (urlname);

    var 
    dg_data2:Array = new Array();
    //var dg_etage:mx.controls.DataGrid;
    this.createClassObject(mx.controls.DataGrid"dg_etage"10 );
    dg_etage.setSize(450300);
    //dg_etage.sortableColumns = true;
    //dg_etage.getColumnAt(1).sortOnHeaderRelease = false;
    dg_etage.selectable false;
    dg_etage.editable false;
    dg_etage.vScrollPolicy false;
    //dg_etage.height = "160";
    first_run.onLoad "1" ;
    if ( 
    first_run == "1" ) {
    dg_etage.addColumn("Raum");
    dg_etage.addColumn("Temperatur");
    dg_etage.addColumn("Sollwert");
    dg_etage.addColumn("KLVentiel");
    }

    var 
    myListener = new Object();
    myListener.headerRelease = function(event) {
        
    trace("column " event.columnIndex " header was pressed");
    };
    dg_etage.addEventListener("headerRelease"myListener); 
    Das XML so:

    PHP-Code:
    <?xml version"1.0"?>
    <data>
        <Raum Nummer="103" Temperatur="21,5 °C" Sollwert="22,5 °C" Schiebung="0 °C" KLVentiel="50 %" HZVentiel="0 %" />
        <Raum Nummer="104" Temperatur="21,5 °C" Sollwert="22,5 °C" Schiebung="0 °C" KLVentiel="51 %" HZVentiel="0 %" />
        <Raum Nummer="105" Temperatur="21,5 °C" Sollwert="22,5 °C" Schiebung="0 °C" KLVentiel="51 %" HZVentiel="0 %" />
        <Raum Nummer="105" Temperatur="21,5 °C" Sollwert="22,5 °C" Schiebung="0 °C" KLVentiel="51 %" HZVentiel="0 %" />
        <Raum Nummer="105" Temperatur="21,5 °C" Sollwert="22,5 °C" Schiebung="0 °C" KLVentiel="51 %" HZVentiel="0 %" />
        <Raum Nummer="105" Temperatur="21,5 °C" Sollwert="22,5 °C" Schiebung="0 °C" KLVentiel="51 %" HZVentiel="0 %" />
        <Raum Nummer="105" Temperatur="21,5 °C" Sollwert="22,5 °C" Schiebung="0 °C" KLVentiel="51 %" HZVentiel="0 %" />
        <Raum Nummer="105" Temperatur="21,5 °C" Sollwert="22,5 °C" Schiebung="0 °C" KLVentiel="51 %" HZVentiel="0 %" />
    </data>
    Bitte nicht an den startButton und startButton1 aufhängen. Meine abendliche Überlegung führte dahin, dass ich selber über Buttons sortiere, indem ich vorsortiert XML Dateien erzeuge und diese direkt auslese.

    Vielen Dank im voraus.
    Geändert von Stiff (28.06.07 um 14:16 Uhr)
     

  4. #4
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    ich möchte Dich bitten, die komplette .fla zu posten, da ich nicht weiß, wie sich diese Clips in Relation zu einander befinden - und zum Herumprobieren bei dem Versuch, die Datei nachzubauen, habe ich keine Zeit.

    Gruß
    .
     

  5. #5
    Stiff Stiff ist offline Mitglied Silber
    Registriert seit
    Sep 2003
    Beiträge
    80
    Oh natürlich. Leider ist die Datei zu gross. Packe es mal eben auf den Webserver

    http://www.inolares.de/xmlread.rar
     

  6. #6
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    leider passt in der Datei kaum etwas zum anderen (z.B. ließt Du die XML-Datei in einer Schleife immer wieder ein, statt das nur zu tun, wenn Du neue Daten anfordern willst - zudem wird die Variable mit dem Pfad zur XML-Datei erst gesetzt, wenn das Laden schon abgeschlossen ist ...). Ich werde die komplette Übergabe der Daten neu schreiben müssen - bitte hab etwas Geduld, denn ich kann noch nicht sagen, wann ich dazu komme.

    Gruß
    .
     

  7. #7
    Stiff Stiff ist offline Mitglied Silber
    Registriert seit
    Sep 2003
    Beiträge
    80
    Ej, das finde ich echt nen Hammer. Hätte ich jetzt garnicht erwartet. Ich lese die XML in einer Schleife, weil ich immer die aktuellen Daten brauche. Diese ändern sich ziemlich häufig (~jede Sekunde oder häufiger).

    Da ich echt kein Profi bin und mir das alles aus der Doku zusammengebaut habe, gibt es von meiner Seite momentan leider keine elegantere Lösung. Ist es denn Grundsätzlich möglich, eine "Live Verbindung" zu einer XML Datei herzustellen, so dass ich jede Änderung mitbekomme?
     

  8. #8
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    ohne entsprechenden Server (der Flash Media Server bietet z.B. dauerhafte Socket-Verbindungen) bleibt Dir nichts anderes übrig, als die Datei in gewissen Intervallen neu einzulesen.

    Machbar sollte die Aktualisierung schon sein, aber ich muss mich erst einmal ein wenig einlesen, da ich ansonsten nicht mit den mitgelieferten Komponenten arbeite (ich erstelle lieber eigene; eine DataGrid-Komponente habe ich auch im Portfolio, aber die Option, Spalten zu sortieren ist noch nicht implementiert ...).

    Gruß
    .
     

  9. #9
    Stiff Stiff ist offline Mitglied Silber
    Registriert seit
    Sep 2003
    Beiträge
    80
    So, ich bin nun auf meiner Suche auf eine XMLSocket Verbindung gestossen. Leider finde ich keinen freien und vor allem aktuellen Socker Server. Hat jemand einen Tipp für mich?
     

  10. #10
    Stiff Stiff ist offline Mitglied Silber
    Registriert seit
    Sep 2003
    Beiträge
    80
    Hallo Leude,
    also ich habe mir nun einige Socket Server angeschaut und bin letztendlich bei RED5 Media Server stehen geblieben. Hat jemand Erfahrungen mit dem Teil. Habe eine Verbindung zum Server aufgebaut und auch Daten abgerufen bzw. in meinem Flash Movie ausgegeben. Leider habe ich es bisher nicht geschafft, die Daten in meinem geliebten Data Grid LIVE auszugeben. Das heißt, dass alle Änderungen automatisch erkannt und aktualisiert werden, ohne die Tabelle (data Grid) neu aufzubauen. Bitte nochmals um eure Hilfe. Mir würde schon reicehn, wenn mir jemand sagt, dass das was ich vor habe überhaupt in der Form möglich ist. Nicht dass ich mich hier in etwas verrenne und unmenschlich viel Zeit vergolde.
     

  11. #11
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    ich gehe schon davon aus, dass das möglich ist. Die mitgelieferten Komponenten fasse ich allerdings bestenfalls mit der Kneifzange an, daher kann ich Dir keine Lösung aus dem Stehgreif bieten (hinzu kommt, dass ich die Aktualisierung mangels passendem Server nicht testen könnte).

    Ich empfehle es (naturgegeben) nur ungerne, aber vielleicht solltest Du mal beim Flashforum(.de) vorbeischauen - allein wegen der - im Vergleich zu uns - Menge der dort versammelten Flashuser ist die Chance recht groß, dass jemand mit dem von Dir beschriebenen Problem schon eigene Erfahrungen hat.

    Gruß
    .
     

  12. #12
    Stiff Stiff ist offline Mitglied Silber
    Registriert seit
    Sep 2003
    Beiträge
    80
    Vielen Dank für Deine Unterstützung.
     

Ähnliche Themen

  1. Datei aktualisieren?
    Von Peter Parker im Forum .NET Archiv
    Antworten: 7
    Letzter Beitrag: 04.11.08, 11:06
  2. aktualisieren INI-Datei mit hilfe der Listbox
    Von czemmel im Forum .NET Datenverwaltung
    Antworten: 2
    Letzter Beitrag: 23.01.08, 08:48
  3. .properties Datei aktualisieren
    Von AndieDuframe im Forum Java
    Antworten: 8
    Letzter Beitrag: 07.05.07, 16:15
  4. label aktualisieren - nach datei
    Von GRU_EGO im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 11.01.07, 19:04
  5. Datei einbinden und ständig aktualisieren
    Von metno im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 26.10.06, 18:41