mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 23:44 Benutzername: Passwort: Auto-Login

Thema: Flash/AS: XML "schöner" parsen? Best practice? vom 22.07.2009


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Multimedia -> Flash/AS: XML "schöner" parsen? Best practice?
Autor Nachricht
sahnemuh
Threadersteller

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Mi 22.07.2009 14:26
Titel

Flash/AS: XML "schöner" parsen? Best practice?

Antworten mit Zitat Zum Seitenanfang

Moin.

Ich bastel' hier grade an einer "Tagcloud" oder viel mehr eine "Mindmap" für einen Kunden. Irgendwie habe ich das Gefühl, dass man die Art und Weise des "Datenhandlings" bestimmt eleganter machen könnte.

Das ganze soll wie folgt ticken: Es gibt 4 Oberbegriffe, denen jeweils 1-2 Unterbegriffe zugeordnet sind. Diesen Unterbegriffen sind dann wiederum n weitere Unterbegriffe zugeordnet. Sichtbar sind vorerst nur die ersten 2 Ebenen. Bei Klick auf einen Begriff der zweiten Ebene blenden sich die entsprechenden Begriffe die dieser zugeordnet sind ein und es findet eine Animation statt (es wird zu den Unterbegriffen "gezoomt" und sie blenden sich ein) die Eingeblendeten Unterbegriffe fungieren als Links - das ganze ist also mehr oder weniger ein "Sitemap".

So weit so gut. Folgende Struktur habe ich mir für's XML überlegt:
Code:
<?xml version"1.0"?>
<links>
   <section label="Oberbegriff 1" instance_name="oberbegriff_1" posx="100" posy="100" zoomScale="2" zoomGoToX="100" zoomGoToY="100">
      <subsection instance_name="Begriff_1" label="Begriff 1" posx="100" posy="100">
         <link label="Link 1" url="http://www.google.de" instance_name="link_1" posx="100" posy="100" />
      </subsection>
      <subsection instance_name="Begriff_2" label="Begriff 2" posx="100" posy="100" zoomScale="2" zoomGotoX="100" zoomGotoY="100">
         <link label="Link 1" url="http://www.google.de" instance_name="link_1" posx="100" posy="100" />
         <link label="Link 2" url="http://www.google.de" instance_name="link_2" posx="100" posy="100" />
      </subsection>
   </section>
   <section label="Oberbegriff 1" instance_name="business_it" posx="100" posy="100" zoomScale="2" zoomGoToX="100" zoomGoToY="100">
      <subsection instance_name="Begriff 1" label="begriff_2" posx="100" posy="100">
         <link label="Link 1" url="http://www.google.de" instance_name="link_1" posx="100" posy="100" />
      </subsection>
   </section>   
</links>


Die Attribute "posX" und "posY" dienen zum positionieren der Begriffe. Label ist der entsprechende Text, instance_name verwende ich um später mcs zu erzeugen. Die Attribute zoomGotoX, zoomGotoY und zoomScale sind für die Animation und das "Hineinzoomen" in die dritte Ebene gedacht.


Um das Ganze zu parsen ist meines Erachtens ein fieses "for-schleifen-monster" nötig:
Code:
   for (var i = 0; i < xmlObject.childNodes.length; ++i) {
      //sections
      for(var j = 0; j < xmlObject.childNodes[i].childNodes.length; j++) {
         //subsections
         for(var k = 0; k < xmlObject.childNodes[i].childNodes[j].childNodes.length; k++) {
            // links
            for(var l = 0; l < xmlObject.childNodes[i].childNodes[j].childNodes[k]; l++) {
               
            }         
         }
      }
   }

Beim schreiben des selbigen kam mir der Gedanke: "Das muß doch schöner gehen!".

Vorschläge anyone?
  View user's profile Private Nachricht senden
l'Audiophile

Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht: Männlich
Verfasst Mi 22.07.2009 14:38
Titel

Antworten mit Zitat Zum Seitenanfang

Nur mal eben überflogen, möchte dir aber trotzdem einen Rat geben: Du kannst Attribute (zumindestens in AS3) auch direkt ansprechen ohne mit unendlich langen Pfaden zu arbeiten.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
sahnemuh
Threadersteller

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Mi 22.07.2009 14:44
Titel

Antworten mit Zitat Zum Seitenanfang

ich bin derzeit noch bei AS2 und nicht so der programmierkönig. insofern werde ich wohl auf dieses feature erst mal verzichten müssen :/
  View user's profile Private Nachricht senden
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht: Männlich
Verfasst Mi 22.07.2009 14:54
Titel

Antworten mit Zitat Zum Seitenanfang

Ich mag das "neue" XML auch nicht Lächel


Hier mal mein Vorschlag

Code:

for each(var node:XMLNode in xmlObject.firstChild.childNodes) {
   //sections
    for each(var snode:XMLNode in node.childNodes){
      //subsections
      for each(var ssnode:XMLNode in snode.childNodes){
          // links
         for each(var lnode:XMLNode in ssnode.childNodes){
         
         }         
      }
   }
}
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
sahnemuh
Threadersteller

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Mi 22.07.2009 15:01
Titel

Antworten mit Zitat Zum Seitenanfang

phihochzwei hat geschrieben:
Ich mag das "neue" XML auch nicht Lächel


Hier mal mein Vorschlag

Code:

for each(var node:XMLNode in xmlObject.firstChild.childNodes) {
   //sections
    for each(var snode:XMLNode in node.childNodes){
      //subsections
      for each(var ssnode:XMLNode in snode.childNodes){
          // links
         for each(var lnode:XMLNode in ssnode.childNodes){
         
         }         
      }
   }
}


Vielen Dank! das sieht schon mal übersichtlicher aus.
Mit AS2/3 sollte ich mich vielleicht auch mal "richtig" beschäftigen. Leider komme ich so gut wie nie in die Gelegenheit Flash Geschichten machen zu können (obwohl es mir eigtl. Spaß macht).
Dafür schlage ich mich halt (viel zu oft) mit Javascript rum - was man wohl auch an meinem Beispiel oben sieht (welches aufgrund mangelnder Typisierung wohl eher AS1 ist, wenn ich es mir so recht überlege).



€: kann es sein, dass for each as3 ist? *Schnief*


Zuletzt bearbeitet von sahnemuh am Mi 22.07.2009 15:16, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht: Männlich
Verfasst Mi 22.07.2009 15:35
Titel

Antworten mit Zitat Zum Seitenanfang

Jepp, wovon reden wir denn ???
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
sahnemuh
Threadersteller

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Mi 22.07.2009 16:02
Titel

Antworten mit Zitat Zum Seitenanfang

AS2 oder 1
Wie vorher gesagt, habe ich mich mit AS3 noch nie beschäftigt. Leider.
  View user's profile Private Nachricht senden
 
Ähnliche Themen schöner Flash-Video-Player gesucht !
xml laden und parsen in *.as
Parsen von datei php
XML mit Javascript parsen
[PHP]Problem bei Parsen vom XML-Daten
XML in PHP einlesen (parsen) und Inhalte ausgeben.
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Multimedia


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.