VonAllemEtwas
Hi alle,
bei meinem Projekt soll ein horizontales Laufband kontinuierlich durchlaufen. Die Bilder werden per XML geladen. Mit meinen recht beschränkten Flash-Kenntnissen habe ich versucht, das Teil zum Laufen zu kriegen, aber es will nicht.
Kann mir wer unter die Arme greifen?
XML-Datei:
Flash-Datei:
Ein Fehler wird mir von Flash nicht angezeigt. Hat jemand eine Idee was man da machen könnte?
Viele Grüße
Jormungand
bei meinem Projekt soll ein horizontales Laufband kontinuierlich durchlaufen. Die Bilder werden per XML geladen. Mit meinen recht beschränkten Flash-Kenntnissen habe ich versucht, das Teil zum Laufen zu kriegen, aber es will nicht.
Kann mir wer unter die Arme greifen?
XML-Datei:
PHP:
<?xml version='1.0' encoding='utf-8'?>
<handwerk hoehe="330" speed="2">
<bild url="handwerk/1.jpg" title="Bild 1" breite="493" />
<bild url="handwerk/2.jpg" title="Bild 2" breite="493" />
<bild url="handwerk/3.jpg" title="Bild 3" breite="493" />
<bild url="handwerk/4.jpg" title="Bild 4" breite="493" />
<bild url="handwerk/5.jpg" title="Bild 5" breite="493" />
<bild url="handwerk/6.jpg" title="Bild 6" breite="493" />
<bild url="handwerk/7.jpg" title="Bild 7" breite="493" />
<bild url="handwerk/8.jpg" title="Bild 8" breite="493" />
<bild url="handwerk/9.jpg" title="Bild 9" breite="493" />
</handwerk>
PHP:
/*
BESCHREIBUNG
In dieser Galerie sollen Bilder aus einer XML-Datei gelesen
und nebeneinander in einen MC eingebettet werden.
Anschließend wird der MC dupliziert und an den ersten angehängt.
Beim Abspielen läuft der erste MC von rechts nach links und dahinter gleich die Kopie.
Wenn die Kopie an der Stelle ankommt, an der der MC gestartet ist,
wird der MC wieder auf die Startposition gesetzt und die Kopie wieder dahinter.
--> Endloses Laufband.
*/
// XML erstellen
handwerkXML = new XML();
// Leerstellen ignorieren
handwerkXML.ignoreWhite = true;
// XML-Datei einlesen
handwerkXML.load("handwerk.xml");
// Wenn das Laden funktioniert...
handwerkXML.onLoad = function(success) {
// Arrays für Attribute erstellen
handwerkXML_breite = [];
// Variable wird in der Schleife gebraucht
var breiteGesamt:Number = 0;
// leerer MC erstellt
this.createEmptyMovieClip("balken_mc");
// Der MC muss 350 hoch sein. Auch in der XML dürfen nur 350 hohe Bilder sein.
this.balken_mc._height = 350;
trace("Start ok");
// Wenn onLoad funktioniert hat...
if (success) {
trace("Success ok");
// For-Schleife, bei 0 beginnen und hochzählen bis (Anzahl der childNodes)
for (var i = 0; i<handwerkXML.firstChild.childNodes.length; i++) {
// Werte auslesen und in Variable eintragen je Attribut und Arraystelle (warum krieg ich String?)
handwerkXML_breite[i] = Number(handwerkXML.firstChild.childNodes[i].attributes.breite);
handwerkXML_title[i] = handwerkXML.firstChild.childNodes[i].attributes.title;
// Die einzelnen Bilder werden aus der XML reingeladen
loadMovie(handwerkXML.firstChild.childNodes[i], bild[i]);
// x-Wert der Bilder ist gleich der Variable breiteGesamt (am Anfang 0)
bild[i]._x = breiteGesamt;
// breiteGesamt ist die vorige breiteGesamt + Breite des aktuellen Bildes
breiteGesamt = breiteGesamt+handwerkXML.firstChild.childNodes[i].attributes.breite;
trace(handwerkXML_title[i]);
}
trace("nach Schleife ok");
trace(breiteGesamt);
// speed aus XML ausgelesen
geschwindigkeit = handwerkXML.firstChild.attributes.speed;
// Nachdem in der Schleife alle Bilder nebeneinandergesetzt wurden, wird die Gesamtbreite des MCs gesetzt
this.balken_mc._width = breiteGesamt;
// Der Movieclip wird dupliziert
duplicateMovieClip("balken_mc", "balken2_mc", 0);
// Bewegung
// Bsp. x-Wert 0 - Geschw. 5 = Neuer x-Wert -5
balken_mc._x -= geschwindigkeit;
balken2_mc._x -= geschwindigkeit;
startpos1 = balken_mc._x;
startpos2 = balken2_mc._x;
// Wenn balken2 kleiner als Startposition wird...
if (balken2_mc._x<startpos1) {
//...soll zum x-Wert (= negative Gesamtbreite) die Gesamtbreite dazugezählt werden (also 0)
balken_mc._x += breiteGesamt;
//...wird zum x-Wert (etwa 0) die Gesamtbreite dazugezählt (also Gesamtbreite)
balken2_mc._x += breiteGesamt;
}
}
};
Ein Fehler wird mir von Flash nicht angezeigt. Hat jemand eine Idee was man da machen könnte?
Viele Grüße
Jormungand