Wie funktioniert eine Slideshow mit Überblend-Effekt?

Meikel25

Erfahrenes Mitglied
Hallo zusammen,

kann mir einer für diese Slidshow ein Tutorial schicken oder sagen wie ich das hin bekomme? Leider sind meine AS-Kenntnisse so weit fortgeschritten, das ich sowas könnte. ;-)

Hier mal der Link: http://img184.imageshack.us/slideshow/player.php?id=img184/3096/1189044400p14.smil

Ich suche eben eine Slideshow, die die Bilder dynamisch einlädt und dann einen solchen weichen Übergang macht wie bei dem obigen Link.

Gruß,
Meikel
 
Hi,

sowas schwirrt hier schon zuhauf im Forum rum. Hast Du mal die Suche mit dem Begriff "Slideshow" oder "Fader" gefüttert?

Gruß
.
 
Danke für Deine Antwort.
Natürlich habe ich diese Funktion auch zu diesem Zwecke genutzt, aber leider nicht das gefunden was ich brauche.
Daher eben meine Anfrage.
Sonst würde ich Euch doch nicht belästigen. :eek:


Gruß und Danke für deine Hilfe
 
Cool, da war ja doch das richtige dabei.
Ich habe jetzt diese hier genommen.

Code:
var images = new Array("bild1.jpg", "bild2.jpg", "bild3.jpg"); // Array mit den Bildpfaden

var img = new Array(); // Array für die Bild-MCs

var loaded = 0; // zeigt an, wie viele Bilder schon geladen wurden

var dec = 20; // Abbremsungsfaktor für das Überblenden

var currentImage = -1; // aktuelles Bild

var interval = 3000; // Zeitspanne zwischen den Bildern (hier: 3 Sekunden)

var iv = 0; // Intervall-Handler für setIntervall (Pause zwischen den Bildern)

var stime = 0; // Zeit nach dem Einblenden merken

var mcl = new MovieClipLoader(); // MovieClipLoader um die Bilder zu laden

mcl.onLoadInit = function() { // wird aufgerufen, wenn ein Bild geladen wurde
	clearInterval(iv); // Intervall löschen
	if (getTimer() - stime >= interval) { // wenn Intervallzeit schon abgelaufen:
		showNext(); // .. direkt nächstes Bild anzeigen
	} else { // ansonsten:
		iv = setInterval(showNext, interval - (getTimer() - stime)); // Bild nach Restzeitspanne anzeigen
	}
}

for (var i=0; i<images.length; i++) {
	img[i] = this.createEmptyMovieClip("img" + i, i); // Für jedes Bild einen MC erstellen
	var ct = img[i].createEmptyMovieClip("ct", 1); // ... und dort einen weiteren leeren MC hineinpacken
	img[i]._src = images[i];
	img[i]._visible = false; // Bild erstmal ausblenden
	img[i]._alpha = 0; // und Alphawert auf 0 sethen
}

loadNext();

function loadNext() { // nächstes Bild vorladen
	var d = currentImage + 1;
	if (d > images.length - 1) d = 0;
	mcl.loadClip(img[d]._src, img[d].ct);
}

function showNext() { // nächstes Bild anzeigen
	clearInterval(iv);
	img[currentImage].fade(0, dec);
	currentImage ++;
	if (currentImage > images.length - 1) currentImage = 0;
	img[currentImage].swapDepths(this.getNextHighestDepth());
	img[currentImage]._x = Stage.width / 2 - img[currentImage]._width / 2;
	img[currentImage]._y = Stage.height / 2 - img[currentImage]._height / 2;
	img[currentImage].fade(100, dec);
	stime = getTimer(); // aktuelle Zeit merken
	loadNext(); // und gleich das nächste Bild vorladen
}

MovieClip.prototype.fade = function(d, s) {
	if (d != 0) this._visible = true;
	this.onEnterFrame = function() {
		this._alpha += (d - this._alpha) / s;
		if (Math.abs(d - this._alpha) < 1) {
			delete this.onEnterFrame;
			this._alpha = d;
			if (d == 0) this._visible = false;
		}
	}
}

Nur würde ich ganz gern evtl. das die Bilder ein wenig "rein- und rauslaufen", damit man noch mehr vom Bild sieht.
Wie und wo kann ich das bewerkstelligen?
Oder kannst du mir da evtl. weiterhelfen? :rolleyes:

Dann bin ich auch schon wunschlos glücklich und belästige Euch nicht mehr. *pfeiff*
 
Hi,

setze einen Callback in den Prototyp "fade", mit dem eine Funktion aufgerufen wird, die die Bewegung bewerkstelligt.

Um präziser zu werden, müsste ich wissen, wie sich die Bilder genau bewegen sollen.

Guß
.
 
Okay, die Bilder sollen sich von der Mitte aus nur ein paar Pixel nach links oder rechts "verschieben".

Ich habe noch ein Problem.
Ich habe auf einem MC ein Bild gelegt, welches auch als erstes im Slide geladen wird.
Dieses scheint aber immer wieder durch, wenn die anderen Bilder einfaden.
Ich glaube der Alpha-Wert geht nicht genau auf 100%, sondern ist irgendwo bei 95%, oder so.
Ich packe mal die fla-Datei zum vVerständniss mit bei.
Und auch die Bilder welche geladen werden sollen.

Wenn Du Zeit und Muse haben solltest, würde ich mich riesig freuen.

mfg,
Meikel
 

Anhänge

  • slide1.zip
    106 KB · Aufrufe: 127
  • bild1.jpg
    bild1.jpg
    94,3 KB · Aufrufe: 89
  • bild2.jpg
    bild2.jpg
    69,5 KB · Aufrufe: 77
  • bild3.jpg
    bild3.jpg
    167,5 KB · Aufrufe: 62
Ich muss noch mal was anderes zu diesem Script fragen.

Ist es möglich und wenn ja, wie kann ich das machen, das Lightbox-JavaScript mit diesem FlashScript zu benutzen

Ich würde dies gern übernehmen.

Gruß,
Meikel
 
Hi,

zu der Umsetzung der Bewegung bin ich noch nicht gekommen (ich melde mich deswegen morgen noch einmal).

Zu Deiner zweiten Frage:
Ist es möglich und wenn ja, wie kann ich das machen, das Lightbox-JavaScript mit diesem FlashScript zu benutzen
Du kannst aus Flash heraus JavaScript-Funktionen aufrufen. Es sollte also möglich sein, eine JS-Funktion zu starten, die ein bestimmtes Bild per Lightbox anzeigt.

Du musst den Flashfilm in diesem Fall aber so einbinden, dass das DIV für die Lightbox-Bilddarstellung den Film überlappen kann (standardmäßig werden Flashfilme mit dem wmode "window" eingebettet, so dass der Flashfilm immer im Vordergrund ist - Du musst statt dessen den Modus "opaque" wählen).

Gruß
.
 
Das mit dem wmode hatte ich schon gelesen.

Jetzt ist aber mein Problem, wie binde ich in dem obigen Script diese Funktion ein?

Diesen
Code:
on(release) {
    getURL("javascript:flashLightbox('path/to/imagejpg','Your Caption');");
}
muss ich ja irgendwo hinterlegen.
Aber die Bilder werden doch dynamisch eingeladen. Also müssen diese dann eigentlich als Button funktionieren.
Leider bin ich ein wenig beschränkt was das CODEN angeht. Leider.
Von daher bitte ich um hilfe in diesem Board.

Tobi, wenn Du mir da weiterhelfen könntest, dann wäre ich äußerst dankbar.

Gruß
 

Neue Beiträge

Zurück