tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
323
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    cowo cowo ist offline Grünschnabel
    Registriert seit
    Nov 2006
    Beiträge
    2
    Hallo
    Bin neu hier und hätt da auch gleich mal ne Frage.
    Ein Kommilitone hat ein Servlet programmiert, daß die Daten einer Prozesssimulation bereitstellt. Wahlweise als HTML- oder XML-Daten.
    Meine Aufgabe war/ist es dazu eine Visualisierung in Flash zu programmieren. An sich läuft sie auch schon, aber bei der Übergabe der Variablen und deren Werte hakt es noch etwas.
    Im Moment ist es so gelöst, daß ich ein LoadVars-Objekt erzeuge, über load die Variablen abrufe und je nach Wert MCs ein-/ausblende bzw. Textfelder setze. Also so:
    Code :
    1
    2
    3
    4
    5
    6
    
    loadData = new LoadVars();
    loadData.onLoad = function () {
        if (this.pumpe1_an==0) {pumpe1._visible=false;} else {pumpe1._visible=true;};
            abgefuellt.text=Math.round(this.abgefuelltTank1);
            //usw. für alle MC
    loadData.load("http://*IP-Adresse*/Server/Server?type=html&list=");

    Die Antwort des Servlet sieht dann so aus:
    HTML-Code:
    <html>
         <head>
         </head>
         <body>
              pumpe1_an=0&abgefuelltTank1=7.0&...........
         </body>
    </html>
    Jetzt ist das Problem, daß der allererste Wert nicht richtig gelesen wird. Das funktioniert nur einwandfrei, wenn das Servlet die HTML-Tags weglassen würde. Das Servlet darf ich aber nicht ändern. Gibts da irgendein workaround oder mach ich vielleicht irgendwas falsch?

    Ne Alternative wäre noch das Servlet mit "type=xml" aufzurufen. Dann sieht die Antwort so aus:
    Code :
    1
    2
    3
    4
    5
    6
    
    <?xml version='1.0' encoding='ISO-8859-1'?>
    <daten>
         <item id='pumpe1_an'>0</item>
         <item id='abgefuelltTank1'>8.0</item>
         usw........
    </daten>
    Aber ich habs einfach nicht geschafft das irgendwie auszulesen. Muss aber auch dazu sagen, dass ich Flash-Neuling bin. Das hier ist mein erstes Projekt. Bin für jede Hilfe dankbar.

    Grüße
    cowo
     

  2. #2
    Registriert seit
    Jun 2004
    Ort
    Zürich
    Beiträge
    1.359
    Blog-Einträge
    8
    Hallo,

    anstatt eines LoadVars-Objekts empfehl ich dir die Verwendung der XML-Klasse, die XML-Daten parsen und DOM-ähnlich auslesen kann:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    loadData = new XML();
    loadData.ignoreWhite = true;
    loadData.onLoad = function () {
        //erstelle ein Objekt als Daten-Container
        var obj = {};
        //<daten>-Knoten in der Variable n speichern
        var n = this.firstChild;
        //Fülle obj ab: den id-Wert als Member-Name, den Knoten-Inhalt als Wert
        for (var i = 0; i < n.childNodes.length; i++) {
            var id = n.childNodes[i].attributes.id;
            obj[id] = n.childNodes[i].firstChild.nodeValue;
        }
        //Nun hast du entsprechende Variablen in obj gespeichert und kannst damit verfahren, wie dir beliebt
        trace (obj.pumpe_1);
        trace (obj.abgefuelltTank1);
    }
    loadData.load("http://*IP-Adresse*/Server/Server?type=xml&list=");

    Schau dir vielleicht auch mal in der Hilfe das Thema XML an.

    gruss
     

  3. #3
    cowo cowo ist offline Grünschnabel
    Registriert seit
    Nov 2006
    Beiträge
    2
    Wow ging das schnell.
    Und es funktioniert sogar, danke dir.
    Ich hatte mir zwar Sachen zum XML Objekt durchgelesen, habe es aber nicht geschafft die ID und den Wert getrennt auszulesen.
    Vielleicht noch ne allgemeine Frage.
    Der Flashfilm ist zehn Frames lang und läuft im loop. Also im zehnten Frame steht "gotoAndPlay(1)". Im ersten Frame steht das von dir verbesserte Script und ca. fünfzig Zeilen if-then-else Anweisungen.
    Kann man das irgendwie eleganter lösen?
    Grüße
    cowo
     

  4. #4
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Kann man das irgendwie eleganter lösen?
    Bestimmt - aber dann wäre es hilfreich, Du würdest die Datei einmal posten.

    Soll der Film denn als Loop laufen? Auf diese Weise wird Dein Code in Frame 1 ja immer wieder ausgeführt ...

    Gruß
    .
     

Ähnliche Themen

  1. Probleme beim laden der DLL
    Von fsmarine im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 01.07.08, 10:28
  2. Probleme beim Servlet erstellen + Fragen
    Von kle-ben im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 8
    Letzter Beitrag: 21.05.07, 18:25
  3. [HILFE] Was mache ich falsch beim Variablen laden?
    Von ChrisGru im Forum Flash Plattform
    Antworten: 9
    Letzter Beitrag: 16.03.04, 15:40
  4. [MX] Variablen Problem beim Laden in externe swf's
    Von Comander_Keen im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 12.09.03, 23:58
  5. variablen beim laden....
    Von TheScary im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 31.03.03, 15:32