Bilderleiste mit Steuerbuttons versehen

s-tandel

Grünschnabel
Hallo Forum!
Ich habe mir schon einige Bilderleisten oder ähnliches aus dem Netzt gezogen,
um daraus eine eigene zu machen!

Jedoch komme ich an einer Stelle nicht weiter! Ich will keine Scrolleiste, die "ständig"
scrollt, sondern sie soll nur scrollen, wenn ich z.B auf einen Button "nach links scrollen"
klicke! Andersherum sollte sie natürlich nach rechts scrollen. Wie kann ich das im gegebenen
Bsp. realisieren?


Danke schonmal im Vorraus.


(Der Text ist nochmal im Zip Archiv)
 

Anhänge

  • bilderleiste.zip
    15,1 KB · Aufrufe: 114
Hi,

ganz einfach:

Lege zuerst im MC "slideshow" eine neue Variable namens "_delta" an:
PHP:
var _delta = 0;

Lösche nun die Zeile, in der die Geschwindigkeit ermittelt wird:
PHP:
speed +=  (-(_xmouse - mask._width / 2) / 15 - speed) / 5;
und ersetze sie durch folgende:
PHP:
speed += (_delta * maxspeed - speed) / 4;
Nun packe Dir noch zwei Buttons auf eine neue Ebene und setze auf die Instanzen folgenden Code:
PHP:
// Button "Links":
on(press) {
	_parent._delta = 1;
}

on(release, releaseOutside) {
	_parent._delta = 0;
}
PHP:
// Button "Rechts":
on(press) {
	_parent._delta = -1;
}

on(release, releaseOutside) {
	_parent._delta = 0;
}
(Bei den Buttons muss es sich um MovieClips handeln; wenn Du Schaltflächen nimmst, musst Du das "_parent" weglassen!)

Gruß
.
 
Ja danke das funktioniert jetzt!
Könnte man jetzt das ganze noch dahingehend bringen, dass die Leiste nicht sofort anhält? Wenn ich im Moment die Leiste den Button verlasse, dann stoppt die Leiste relativ abruppt. Schön wäre noch, wenn sie so keine Ahnung noch 50 Pixel weiter scrollt und dabei langsamer wird! Geht sowas?
 
Auch das. Füge folgende Funktionen und Variablendeklarationen ein:
PHP:
var _delta = 0;
var iv = 0;

function stopDelta() {
	clearInterval(iv);
	iv = setInterval(function() { stop2(); }, 500);
}

function stop2() {
	clearInterval(iv);
	_delta = 0;
}

function setDelta(d) {
	clearInterval(iv);
	_delta = d;
}
und rufe dann auf den Buttons die entsprechende Funktion auf:
PHP:
on(press) {
    _parent.setDelta(1);
}

on(release, releaseOutside) {
    _parent.stopDelta();
}
Ein exaktes Anhalten nach z.B. 5 Bildern ist so nicht möglich, aber zumindest ein Intervall in Milisekunden (das ist der letzte Parameter des setInterval-Aufrufs).

Gruß
.
 
Hmm! Also ich weiß nich, das klappt nich so ganz. An welcher Stelle muss ich den Code ganz genau einfügen? Und die Zeit kann ich doch dann sicher da verändern, wo jetzt die 500 steht, oder?
 
Hier ist sie! nicht auf den Dateinamen achten! Danke für ihre Hilfe!!
 

Anhänge

  • bildergalerie s1 nicht veränder
    16,9 KB · Aufrufe: 71
Du hast diesen kompletten Block:
PHP:
var iv = 0;

function stopDelta() {
    clearInterval(iv);
    iv = setInterval(function() { stop2(); }, 500);
}

function stop2() {
    clearInterval(iv);
    _delta = 0;
}

function setDelta(d) {
    clearInterval(iv);
    _delta = d;
}
nicht im AS des Clips "slideshow" stehen...

... ausserdem hast Du auf den Buttons noch "_parent._delta = -1" usw. stehen und nicht:
PHP:
 on(press) {
    _parent.setDelta(1);
}

on(release, releaseOutside) {
    _parent.stopDelta();
}
, womit man sagen könnte, dass Du mein gesamten letztes Posting ignoriert hast. ;)

Gruß
.
 
Zuletzt bearbeitet:
Oh nein! Jetzt habe ich die falsche Datei drangehangen! :eek:
Tut mir ganz doll Leid! Aber ich habe den Fehler gefunden! Er lag in den Schaltflächen. Trotzdem nocheinmal danke und SORRY!!
 
Ok Also die Bilderleiste läuft ja ganz gut!
Aber kann man das Ganze zu einer richtigen Galerie umformen? D.h. ich würde gerne verschiedene Bilder in eine Leiste laden.

Z.B. Wenn ich auf einen Button auf der seite klicke kommen halt nur Tierbilder. Mit dem Klick auf einen anderen Button erscheinen dann halt nur Naturbilder.

Geht das?
 
Zurück