ERLEDIGT
NEIN
NEIN
ANTWORTEN
11
11
ZUGRIFFE
1262
1262
EMPFEHLEN
-
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?
-
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ß
.
-
Also ich habe zwei Movieclips:
Der erste sieht so aus und besteht aus 2 Bildern, um die Aktualisierung auszuführen:
Der Zweite so: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=0; i<obj.childNodes.length; i++) {
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;
Das XML 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(450, 300);
//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);
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.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>
Vielen Dank im voraus.Geändert von Stiff (28.06.07 um 14:16 Uhr)
-
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ß
.
-
Oh natürlich. Leider ist die Datei zu gross. Packe es mal eben auf den Webserver
http://www.inolares.de/xmlread.rar
-
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ß
.
-
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?
-
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ß
.
-
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?
-
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.
-
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ß
.
-
Vielen Dank für Deine Unterstützung.
Ähnliche Themen
-
Datei aktualisieren?
Von Peter Parker im Forum .NET ArchivAntworten: 7Letzter Beitrag: 04.11.08, 11:06 -
aktualisieren INI-Datei mit hilfe der Listbox
Von czemmel im Forum .NET DatenverwaltungAntworten: 2Letzter Beitrag: 23.01.08, 08:48 -
.properties Datei aktualisieren
Von AndieDuframe im Forum JavaAntworten: 8Letzter Beitrag: 07.05.07, 16:15 -
label aktualisieren - nach datei
Von GRU_EGO im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 11.01.07, 19:04 -
Datei einbinden und ständig aktualisieren
Von metno im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 26.10.06, 18:41





Zitieren
Login





