Slideshow vorwärts und rückwärts?

shinbo

Mitglied
Hallo zusammen,

ich habe ein sehr altes Tutorial von Flashstar gefunden und finde es eigentlich super.
Ich habe versucht das script so zu ändern das es auch rückwärts läuft aber bekomme es nicht hin.
Ich habe bereits erfolgreich das onRelease verhalten vom mc runterbekommen und es an 2 eigenge Buttons hinterlegt und es läuft vorwärts immer schön weiter und beginnt immer mit dem ersten Bild sobald es am Ende angekommen ist. Möchte ich es aber rückwärts laufen lassen bleibt es entweder beim ersten Bild stehen oder fängt an zum letzten Bild vorspulen und geht dann wieder rückwärts.
Ich füttere das script per PHP&MYSQL und nicht über XML.
Hier der original script:
Code:
function slideBand(obj, clip, tiefe, ziel, speed, bildanzahl, bildbreite, bildnummer, abstand, posY) {
                createEmptyMovieClip(obj, tiefe);
                for (var i = 1; i <= bildanzahl; i++) {
                               this[obj].attachMovie(clip, clip + i, i);
                               this[obj][clip + i]._x = this[obj][clip add i]._width * i * abstand;
                               this[obj][clip + i]._y = posY;
                               this[obj][clip + i].bild = i;
                               this[obj][clip + i].onRelease = function() {
                                               bildnummer = this.bild;
                               };
                }
                this[obj].onEnterFrame = function() {
                               this.xdiff = this[clip + bildnummer]._x - ziel;
                               if (this.xdiff != 0) {
                                               this.xdiff = Math.round(this.xdiff / speed);
                                               for (var i = 1; i <= bildanzahl; i++) {
                                                               this[clip + i]._x -= this.xdiff;
                                                               if (this[clip + i]._x <= (ziel - bildbreite)) {
                                                                              this[clip + i]._x += bildanzahl * bildbreite * abstand;
                                                               }
                                               }
                               }
                };
}
 
slideBand("container", "bild", 1, 0, 8, 10, 160, 1, 1.0, 50);

jemand eine Idee oder gibt es da schon was Nettes in der Richtung?

Die meisten die ich gesehen habe liefen leider nicht endlos in einer Richtung. Oder waren Komponenten die man nicht anpassen konnte.

 
Naja - wie sieht denn dein verändertes Script aus, dann können wir ja mal schauen was da schief läuft.
 
War gestern den ganzen Tag unterwegs, deswegen melde ich mich erst jetzt wieder.
Nachdem ich es nicht sauber hinbekommen hatte das ganze endlos auch rückwärts laufen zu lassen, stoppt diese Variante wenn es mit dem ersten MC beginnt. Vorwärts geht es ja ohne Probleme. Meine anderen fehlversuche habe ich nicht gespeichert.
Ich habe nicht fiel am Sctript geändert.
Mein letzter stand verhält sich wie das Original Script, nur das das „OnRelease“ auf eigene Buttons liegt:
Code:
obj = "container";
clip = "bild";
ziel = 0;
speed = 8;
bildanzahl = maxArrayID.text;
bildbreite = 1024;
bildnummer = 1;
posY = 0;
function slideBand(obj, clip, ziel, speed, bildanzahl, bildbreite, bildnummer, posY) {
               var container:MovieClip = this.createEmptyMovieClip(obj, this.getNextHighestDepth());
               var mcLoader:MovieClipLoader = new MovieClipLoader();
               mcLoader.addListener(this);
               for (var i = 1; i<=bildanzahl; i++) {
                              container.attachMovie(clip, clip+i, i);
                              j = i-1; // array beginnt mit null
 
                              container[clip+i]._x = (container[clip+i]._width*i);
                              container[clip+i]._y = posY;
                              container[clip+i].bild = i;
                              mcLoader.loadClip(imageURI.text+imageName_array[j]+".jpg", container[clip+i].imageSlider.image);
               }
               container.onEnterFrame = function() {
                              this.xdiff = this[clip+bildnummer]._x-ziel;
                              if (this.xdiff != 0) {
                                              this.xdiff = Math.round(this.xdiff/speed);
                                              for (var i = 1; i<=bildanzahl; i++) {
                                                              this[clip+i]._x -= this.xdiff;
                                                              if (this[clip+i]._x<=(ziel-bildbreite)) {
                                                                             this[clip+i]._x += (bildanzahl*bildbreite);
                                                              }
                                              }
                                              if (i == bildanzahl) {
                                                              delete container.onEnterFrame;
                                              }
                              }
               };
}
slideBand(obj, clip, ziel, speed, bildanzahl, bildbreite, bildnummer, posY);
_parent.ff_btn.onRelease = function() {
               slideshowDirection.text = "ff";
 
               movePic(obj, clip, ziel, speed, bildanzahl, bildbreite, bildnummer, posY);
};
_parent.prev_btn.onRelease = function() {
               slideshowDirection.text = "prev";
 
               movePic(obj, clip, ziel, speed, bildanzahl, bildbreite, bildnummer, posY);
};
function movePic(obj, clip, ziel, speed, bildanzahl, bildbreite, bildnummer, posY) {
               var slideshowDirection = slideshowDirection.text;
               if (slideshowDirection == "ff") {
                              if (((int(arrayID.text)))<bildanzahl) {
                                              var bildnummer:Number = (int(arrayID.text))+1;
                                              arrayID.text = bildnummer;
                              } else {
                                              var bildnummer:Number = 1;
                                              arrayID.text = bildnummer;
                              }
               }
               if (slideshowDirection == "prev") {
                              if (int(arrayID.text)>1) {
                                              var bildnummer:Number = (int(arrayID.text))-1;
                                              arrayID.text = bildnummer;
                              } else {
                                              var bildnummer:Number = maxArrayID.text;
                                              arrayID.text = bildnummer;
                              }
               }
               container.onEnterFrame = function() {
                              this.xdiff = this[clip+bildnummer]._x-ziel;
                              if (this.xdiff != 0) {
                                              this.xdiff = Math.round(this.xdiff/speed);
                                              for (var i = 1; i<=bildanzahl; i++) {
                                                              this[clip+i]._x -= this.xdiff;
                                                              lastClip.text = (i-(int(bildanzahl))+(int(bildanzahl)));
                                                              if (this[clip+i]._x<=(ziel-bildbreite)) {
                                                                             this[clip+i]._x += (bildanzahl*bildbreite);
                                                              }
                                              }
                              }
                              if (i == bildanzahl) {
                                              delete container.onEnterFrame;
                              }
               };
}
stop();
 

Neue Beiträge

Zurück