Bild-Laufleist aus mehreren mcs

uewle

Grünschnabel
Moin Moin, bin gerade dabei meine ersten Schritte mit Flash zu machen, und versuche nun eine Picture Section zu erstellen, habe jetzt damit begonnen, die Bilder per Script zu laden (nebeneinander) und dan mit onrollover und onrollout aufgrund der _url das Bild in groß zu laden...
Also in kürze ich habe oben eine leiste mit verkleinerten Bildern und wenn man über eines mit der Maus rüberfährt erscheint es in Groß. mein Script hierzu ist folgender...
PHP:
 var _Pfad;
  for (var i=1;i<7;i++)
  {
      createEmptyMovieClip ("box"+i,i); 
      this["box"+i].createEmptyMovieClip ("box",1);
      _root["box"+i].box.loadMovie ("\\Bilder\\hh\\Foto"+i+".jpg");
      _root["box"+i].ID=i;
      _root["box" +i]._xscale=5;    
      _root["box" +i]._yscale=5;
      _root["box" +i]._x=(_root["box" +(i-1)]._x)+100;    
      _root["box" +(1)]._x=20;
      _root["box" +i]._y=150;
      _root["box" +i].onRollOver = function() {
          _Pfad=this.box._url;
              createEmptyMovieClip ("bild",20); 
          bild.createEmptyMovieClip ("box",1);
          bild.box.loadMovie (_Pfad);
          bild.box._xscale=20;
          bild.box._yscale=20;
          bild.box._y=229;
          bild.box._x=200;
          }
      _root["box" +i].onRollOut = function() {
          createEmptyMovieClip ("bild",20); 
          }
  }
So nun ist aber das Problem, das wenn es zu viele Bilder in dem Ordner gibt ich die ja nicht alle neben einander legen kann. Daher wollte ich das gerne mit einer Laufleiste machen.
Also das die kleinen Bilder oben eine Laufleiste darstellen wo links und rechts ein Pfeil ist um weiter zu gehen.
Würde aber gerne mein Script so weit es geht beibehalten, da es doch (relativ) dynamisch ist, da ich ja nur anzahl und Pfad angeben muss und der Rest geschieht automatisch (ausserdem ist es das erste was ich nun wirklich selbst hinbekommen habe ;-) ).

Hoffe irgendwer kann mir helfen und besten Dank im vorraus uewle.

Bitte Code-Tags zum Posten von Code verwenden, danke!

- Datic

.
 
Zuletzt bearbeitet von einem Moderator:
Hi,

schau mal in dieses Posting - vielleicht kannst Du das eine oder andere (ich denke grade an die "bilderleiste_xt") als Basis für Dein Vorhaben verwenden. Deine Bilderclips könntest Du z.B. in den Containerclip aus diesem Beispiel instanzieren.

Wenn weitere Fragen auftauchen: Einfach posten. ;)

Gruß
.
 
keine Ahnung...?

Also besten Dank erstmal, nachdem ich irgendwan "Bilderleiste" (ich hoffe ein wenig verstanden habe) wollte ich das bei mir implementieren.
Also habe ich zunächst (wie in der Beispieldatei) eine Maske erstellt, und darunter noch eine leere namens leiste... wobei ich den zusammenhang auch nciht genau verstehe.. naja
So dan dachte ich mir ich fange klein an und lege meine Bilder in dem array leiste an.. gemacht getan.
Also sieht mein Script jetzt so aus..

PHP:
var _Pfad;
  var speed = 0;
  var maxspeed = 16;
  var damper = 8;
  var gap = 30;
  var _anzBilder = 7;
  
  var leiste = new Array(_anzBilder);
  
  for (var i=1;i<_anzBilder;i++)
  {
  	createEmptyMovieClip ("box"+i,i); 
  	this["box"+i].createEmptyMovieClip ("box",1);
  	leiste[i] = container.attachMovie("Bilderleiste", _root["box" +i], i);
  	leiste[i].box.loadMovie ("\\Bilder\\hh\\Foto"+i+".jpg");
  	leiste[i].ID=i;
  	leiste[i]._xscale=5;	
  	leiste[i]._yscale=5;
  	leiste[i]._x=(_root["box" +(i-1)]._x)+100;	
  	leiste[i]._x=20;
  	leiste[i]._y=150;
  	leiste[i].onRollOver = function() {
  		_Pfad=this.box._url;
  			createEmptyMovieClip ("bild",20); 
  		bild.createEmptyMovieClip ("box",1);
  		bild.box.loadMovie (_Pfad);
  		bild.box._xscale=20;
  		bild.box._yscale=20;
  		bild.box._y=229;
  		bild.box._x=200;
  		}
  	leiste[i].onRollOut = function() {
  		createEmptyMovieClip ("bild",20); 
  		}		
  }

Aber jetzt zeigt er mir gar ncihts mehr an? Ich vermute mal das ich da irgendwas nicht wirklich verstanden habe :-(?
Naja währe sehr erfreut wen mir da mal jemand einen starken Schups in die richtige Richtung geben könnte..
MfG uewle
 
Hi,

ich habe die Leiste mal so angepasst, dass Du Deine Bilder dort einladen kannst. Du übergibst dem MC "slideshow" einfach ein Array mit den Bildnamen in der Funktion "setClips". Die Parameter für diese Funktion sind:

- arr (das Array mit den Dateinamen)
- d (Abstand zwischen den einzelnen Bildern)
- s (Skalierung der Bilder in %)
- r (einen Verweis auf das aufrufende Objekt - hier: _root)

Die Grösse des Containers usw. habe ich jetzt mal so gelassen, wie es in meiner Originaldatei war; das kannst Du ja selber anpassen.

Gruß
.
 

Anhänge

Besten Dank

Danke für die Mühe werde ich mir gleich mal genauer angucken...
Aber mittlerweile habe ich auch ne möglichkeit gefunden meine Wünsche zu erfüllen :-)
Habe das "Problem" jetzt etwas umgangen, währe sehr nett falls sich jemand
angucken könnte, da ich nicht weiß ob das jetzt wirklich "sauber" ist.....
Und eine frage habe ich auch noch, aber erstmal mein script:

PHP:
var _OrdnerPfad = "\\Bilder\\hh\\"
  var _anzbilder = 7;
  var Speed = 10;
  var BildPfad;
  
  
  createEmptyMovieClip ("leiste",1);
 for (var i=1;i<_anzbilder;i++)			//laden der Bilder in box
  {
  	createEmptyMovieClip ("box"+i,i); 
  	this["box"+i].createEmptyMovieClip ("box",1);
  	_root["box"+i].box.loadMovie (_OrdnerPfad+"Foto"+i+".jpg");
  	_root["box"+i].ID=i;
  	_root["box" +i]._xscale=5;	
  	_root["box" +i]._yscale=5;
  	_root["box" +i]._x=(_root["box" +(i-1)]._x)+100;	
  	_root["box" +(1)]._x=20;
  	_root["box" +i]._y=150;
  	
  	_root["box" +i].onRollOver = function() //Das Bild auf welches die Maus zeigt 
 		{ 		 		 		//wird in der Bildmitte vergrößert dargestellt
  		BildPfad=this.box._url;
  		createEmptyMovieClip ("bild",1); 
  		bild.createEmptyMovieClip ("box",1);
  		bild.box.loadMovie (BildPfad);
  		bild.box._xscale=20;
  		bild.box._yscale=20;
  		bild.box._y=229;
  		bild.box._x=200;
  		}
  	
  	_root["box" +i].onRollOut = function() {//wenn der Mauszeiger das Bild verlässt 
 		createEmptyMovieClip ("bild",20); 	//wird das Bild wieder gelöscht
  		}
  }
  //jeweils ein Mc wird als Fläche benutzt um eine bewegung der Bilder 
  //nach links (blinks) und rechts (brechts) zu erzeugen...
  _root.blinks.swapDepths(50);	//die Tiefe musste ich ändern, da ich Farbverlauf
  _root.brechts.swapDepths(50);	//Grafiken (blinks und brechts) mit Transparenz  
 		 		 		//nutze um die Bilder "auslaufen" zu lassen
  
  _root.onEnterFrame = function()
  { if ( _xmouse > 0 && _xmouse < 120 && _ymouse > 150 && _ymouse < 230)
  	{//bereiche werden gesetzt bei denen die bewegung stattfinden soll 
  	 //wenn sich der MausCursor darin befindet
  	   for (var i=1;i<_root._anzbilder;i++)
 	_root["box" +(i)]._x -=Speed;	//hier bewge ich jedes Bild um die "speed" nach links
  	}
    if ( _xmouse > 700 && _xmouse < 800 && _ymouse > 150 && _ymouse < 230)
  	{
  	   for (var i=1;i<_root._anzbilder;i++)
  	_root["box" +(i)]._x +=Speed;
  	}   
  }

Schön finde ich hieran das man nur einmal den OrdnerPfad und dieanzahl angeben muss und der rest dynamisch geschieht, also einfach verfielfältigt werden kann.:p
Und es ist selfmade!

Und nun noch meine Frage, wie schon gesagt wird ein Bild bei onrollover vergrößert dargestellt, dies möchte ich aber nicht haben wenn ich die "Bildleiste" bewege, dachte auch das würde ohne Probleme gehen da ich ja die Tiefe der Mcs dafür höher gestzt habe als die Bilder in der Leiste... aber obwohl die eigentlich darunter liegen werden sie vergrößert dargestellt...
Weiß da jemand rat?
Doch erstmal vielen Dank an Datic für die Mühen werde es mir gleich mal ansehen
 
Hi,

wenn Du nicht willst, dass Mausereignisse auf Clips ausgeführt werden, die sich unter Deiner vergrößerten Vorschau befinden (zumindest habe ich die Frage so verstanden), kannst Du das Verhindern, indem Du einfach ein Mausereignis auf diese Vorschau legst:
PHP:
vorschauClip.useHandCursor = false;
vorschauClip.onRollOver = function() {
    // ich mach überhaupt nix!
}

Gruß
.
 
leider hast du mcih misverstanden...

also es sieht quasi so aus:

<*Pfeillinks Bild1klein Bild2klein Bild3klein. >*Pfeilrechts
Bildgroß //wenn maus onrollover vom kleinen bild
so wenn ich nun die maus auf einen der Pfeile führe, bewegen sich die kleinen bilder in die Richtung. Aber das Problem ist das dan ja irgendwan ein Bild unterhalb des Pfeils (ein MC) ist, und dan erkennt Flash das sich die Maus onrollover vom kleinen Bild ist und stellt das groß dar..
Und ich dachte wenn ich die Mcs der Pfeile eine höhere Depth geben würde, würde sich das erledigen, da somit die maus ja nciht direkt überhalb des kleinen Bildes ist...funktioniert aber nciht...
Problem verstanden? ansonsten mach ich mal ne datei fertig in der das auch ist...
MfG uewle
 
Sagte ich doch schon: Pack auf Deine grauen Buttons leere onRollOver-Handler:
PHP:
on(rollOver) {
}
.. ich hatte Deine Frage zwar eben falsch verstanden, aber obs jetzt um das Vorschaubild oder die Buttons geht, ist ja egal. ;)

Gruß
.
 

Neue Beiträge

Zurück