Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-02-2007, 09:00   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Ort: München
Beiträge: 60
Question Daten aus xml laden ??

Hallo, ich möchte Bilder, Text, Link und Linktarget aus einer xml-Datei laden, die Funktion des vorhandenen Scriptes sollte so bleiben wie sie ist, also enloses scrollen nach links und rechts. Die Anzahl der xml-Daten kann variabel sein also nicht wie jetzt auf 7 eingestellt.

Hab keine Erfahrung mit XML, kann jemand helfen?

Code:
speed=-1.5;
px=0;
for(c=1;c<=7;c++) {
		createEmptyMovieClip('bild'+c+'container',c);
		_root['bild'+c+'container'].loadMovie("picsxml/0"+c+".jpg");
		_root['bild'+c+'container']._alpha = 100;
		_root['bild'+c+'container']._y=18;
		_root['bild'+c+'container']._x=px;
		px+=110;
}

onMouseMove = function() {
	speed = int(_xmouse/10)-33;
	mouseact = 25;
}

onEnterFrame = function() {
mouseact--;
	for(c2=1;c2<=7;c2++) {
		_root['bild'+c2+'container']._x-=speed;
		_root['bild'+c2+'container'].onPress = function() {
			trace(c2);
		}
		_root['bild'+c2+'container'].onRollOver = function() {
			this._alpha = 70;
		}
		_root['bild'+c2+'container'].onRollOut = function() {
			this._alpha = 100;
		}
		if(_root['bild'+c2+'container']._x <= -110 && speed >0)
		{
			_root['bild'+c2+'container']._x += 770;
		}
		if(_root['bild'+c2+'container']._x >= 660 && speed <0)
		{
			_root['bild'+c2+'container']._x -= 770;
		}
	}
	
		if(_root.mouseact == 0) {
			speed = -1.5;
		}
}
XML:

Code:
<?xml version="1.0"?>
<pix>
<pic titel="Titel1" link="http://www.link1.de">picsxml/01.jpg</pic>
<pic titel="Titel2" link="http://www.link2.de">picsxml/02.jpg</pic>
</pix>
Günther ist offline   Mit Zitat antworten
Alt 15-02-2007, 09:15   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.136
Es einige Tutorials im Netz um XML zu laden, schonmal einige angeschaut?
Omega Psi ist offline   Mit Zitat antworten
Alt 15-02-2007, 09:52   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Ort: München
Beiträge: 60
Ja ich schau natürlich nach Tut's, aber ohne Grundwissen ist mir das ehrlich gesagt noch nicht ganz verständlich, sonst hätte ich auch nicht um Hilfe gebeten ;-)
Günther ist offline   Mit Zitat antworten
Alt 15-02-2007, 09:56   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.136
So, dann fangen wir mal an, wo hakt es denn? Was ist unklar?
  1. Was ist xml?
  2. Wie lade ich xml?
  3. Wie überprüfe ich, ob eine xml geladen ist oder nicht?
  4. Wie verarbeite ich geladene xml Daten?

Welche dieser Fragen kannst du nicht beantworten?
Omega Psi ist offline   Mit Zitat antworten
Alt 15-02-2007, 10:07   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Ort: München
Beiträge: 60
Thumbs up

Punkte 2, 3 und 4 sind unklar, vor allem aber wie ich die Bilder und Texte entsprechend geladen, dupliziert und aneinandergehängt bekomme...

Übrigens, vielen Dank für deine Bemühungen, Hilfe!!!!
Günther ist offline   Mit Zitat antworten
Alt 15-02-2007, 10:22   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.136
zu 2, aus F1:
ActionScript:
  1. // Ein neues XML object initialisieren
  2. var flooring:XML = new XML();
  3.  
  4. // Whitespaces (Zeilenumbrüche und unötige Leerzeichen) werden ignoriert.
  5. flooring.ignoreWhite = true;
  6.  
  7. // Das wird automatisch aufgerufen, wenn die xml-Datei geladen ist.
  8. flooring.onLoad = function(success) {
  9.     trace(flooring);
  10. };
  11.  
  12. // Hier werden die Daten geladen.
  13. flooring.load("flooring.xml");
zu 3, aus F1 mit weniger Informationen:
ActionScript:
  1. xml.onLoad = function(success:Boolean){
  2.     /* Wenn die xml vollständig geladen werden konnte, gehe in if(success) */
  3.     if (success) {
  4.         // Ausgabe der xml.
  5.         trace(this.toString());
  6.     /* Wurde die Datei nicht geladen, */
  7.     } else {
  8.         trace("Keine xml gefunden.");
  9.     }
  10. };

zu 4, nicht aus der F1
ActionScript:
  1. var array:Array = new Array()
  2. xml.onLoad = function(success:Boolean){
  3.  
  4.     /* Wenn die xml vollständig geladen werden konnte, gehe in if(success) */
  5.     if (success) {
  6.         // Die Wurzel der xml ausfindig machen.
  7.         var root:XMLNode = this.firstChild;
  8.         for (var i:Number = 0; i < root.childNodes.length; i++) {
  9.             // Testausgabe der Knotennamen.
  10.             trace(root.childNodes[i].nodeName);
  11.             // Die Knoten, oder Knotennamen etc in einem Array speichern
  12.             array.push(root.childNodes[i]);
  13.             // Testzugriffe auf die Array-Elemente.
  14.             trace(array[i]);
  15.         }
  16.         // Ausgabe der xml.
  17.         trace(this.toString());
  18.     /* Wurde die Datei nicht geladen, */
  19.     } else {
  20.         trace("Keine xml gefunden.");
  21.     }
  22. };
Und auf diese Art und Weise kann man das machen. Array(s) definieren und den XML-Baum durchlaufen und die Daten in den Arrays speichern. Ausserdem ab und an F1 drücken, da steht in der Actionscript Referenz alles drin (auch an anderen Stellen wird xml angesprochen).

An die Referenzen für die Bilder würdest du über:
ActionScript:
  1. for (var i:Number = 0; i < root.childNodes.length; i++) {
  2.             // Die Knoten, oder Knotennamen etc in einem Array speichern
  3.             array.push(root.childNodes[i].firstChild.nodeValue);
  4.             // Testzugriffe auf die Array-Elemente.
  5.             trace(array[i]);
  6.         }
Einfach mal in der Hilfe stöbern, da steht eine Menge... bei fragen hier posten.
Omega Psi ist offline   Mit Zitat antworten
Alt 15-02-2007, 11:00   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Ort: München
Beiträge: 60
hmm habs zumindest geschafft die Bilder aus der xml datei reingeleden zu bekommen.... der Pfad der Bilder aus der xml datei wird allerdings nicht mit übergeben....

wie ich den Text und Link jetzt hinbekomme ist mir noch nicht klar, auch nicht wie ich die Anzahl der datensätze aus dem xml setze da wo jetzt meine auf 7 begrenzte steht...

ich häng mal die fla an, ist echt kompliziert wenn man ganz am Anfang steht...
Angehängte Dateien
Dateityp: zip xmlSlider.zip (6,7 KB, 10x aufgerufen)
Günther ist offline   Mit Zitat antworten
Alt 15-02-2007, 11:40   #8 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.136
Du wirst du Struktur ändern müssen, denn Flash läuft nicht erst dann weiter, wenn das Array gefüllt ist.

Das hier müsste in die xml.onLoad nach der Verarbeitung der for-Schleife im das Array zu füllen:
ActionScript:
  1. for(c=1;c<=7;c++) {
  2.     createEmptyMovieClip('bild'+c+'container',c);
  3.     //_root['bild'+c+'container'].loadMovie("picsxml/0"+c+".jpg");
  4.     _root['bild'+c+'container'].loadMovie("picsxml/0"+array[i]); // Hier Änderung von mir, ohne Gewähr.
  5.     _root['bild'+c+'container']._alpha = 100;
  6.     _root['bild'+c+'container']._y=18;
  7.     _root['bild'+c+'container']._x=px;
  8.     px+=110;
  9. }
Omega Psi ist offline   Mit Zitat antworten
Alt 15-02-2007, 11:55   #9 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Ort: München
Beiträge: 60
krieg ich nicht hin, ist mir einfach noch zu fremd das ganze
Günther ist offline   Mit Zitat antworten
Antwort

Lesezeichen

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



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

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


Copyright ©1999 – 2012 Marc Thiele