zufallsgenerator für slideshow

imho86

Grünschnabel
hi ihr lieben,

habe ein riesen problem. habe eine slideshow erstellt mit überblendung. das einzige was nicht will ist der zufalls generator. habe in einem anderen forum ein script empfohlen bekommen für das zufällige laden der bilder. folgendes:

Code:
/*
      lade zufälliges Bild
      */
      private function handleRandom() {
         imgCount = Math.floor(Math.random() * 37);
         startHandleImages();
      }
      /*
      laden der Bilder
      */
      private function startHandleImages():void {
         img = new Loader();
         img.load(new URLRequest("bilder/"+imgCount+".jpg"));
         addChild(img);
      }

aber ich weiß nicht wo ich es einsetzen muss dass es funktioniert. ich probiers echt schon seit tagen und dabei musste es schon gestern fertig sein ...

mein bisheriger ist folgender:

Code:
var maxpunkte:Number = 35;
var speed:Number = 3;
var count:Number = 0;

Path = "images/"

Pictures = new Array()
Pictures[0] = "start01.jpg";
Pictures[1] = "start02.jpg";
Pictures[2] = "start03.jpg";
Pictures[3] = "start04.jpg";
Pictures[4] = "start05.jpg";
Pictures[5] = "start06.jpg";
Pictures[6] = "start07.jpg";
Pictures[7] = "start08.jpg";
Pictures[8] = "start09.jpg";
Pictures[9] = "start10.jpg";
Pictures[10] = "start11.jpg";
Pictures[11] = "start12.jpg";
Pictures[12] = "start13.jpg";
Pictures[13] = "start14.jpg";
Pictures[14] = "start15.jpg";
Pictures[15] = "start16.jpg";
Pictures[16] = "start17.jpg";
Pictures[17] = "start18.jpg";
Pictures[18] = "start19.jpg";
Pictures[19] = "start20.jpg";
Pictures[20] = "start21.jpg";
Pictures[21] = "start22.jpg";
Pictures[22] = "start23.jpg";
Pictures[23] = "start24.jpg";
Pictures[24] = "start25.jpg";
Pictures[25] = "start26.jpg";
Pictures[26] = "start27.jpg";
Pictures[27] = "start28.jpg";
Pictures[28] = "start29.jpg";
Pictures[29] = "start30.jpg";
Pictures[30] = "start31.jpg";
Pictures[31] = "start32.jpg";
Pictures[32] = "start33.jpg";
Pictures[33] = "start34.jpg";
Pictures[34] = "start35.jpg";


for(p = 0; p < Pictures.length; p++){
   _root.createEmptyMovieClip("Pic" + p, 666 + p);
   _root["Pic" + p]._alpha = 0;
   _root["Pic" + p].loadMovie(Path + Pictures[p]);
}

		 
Active = 0

function switching(){
   Active ++
   if(Active == Pictures.length){
      Active = 0
   }
   
   ActivePic = _root["Pic" + Active]
   fadePic()
}


function fadePic(){
   FadeOut = new mx.transitions.Tween(OldPic, "_alpha", mx.transitions.easing.Regular.easeInOut , 100, 0, 4, true);
   
   FadeIn = new mx.transitions.Tween(ActivePic, "_alpha", mx.transitions.easing.Regular.easeInOut , 0, 100, 2, true);
   FadeIn.onMotionFinished  = function(){
      OldPic = ActivePic
   }
}


switching()
setInterval(switching, 10000)

schöne slideshow, aber sie hat keinen zufallsgenerator. kann mir bitte jmd helfen? ich wäre sehr, sehr dankbar!

LG Sarah
 
Hallo
Nicht jedes 0815-Script zum Laden zufälliger Bilder ist kompatibel mit einem 0815-Script für ne Slideshow. Ich hab zwar die Codes nur überflogen, aber in deinem Fall würde ich einfach den riesen Teil mit Pictures[bla] = "startbla.jpg"; durch zufällige Nummern ersetzen.

Ersetzen z.B. hierdurch:
Code:
for(i = 0; i < 35; i++) {
Pictures[i] = "start" + (Math.floor(Math.random() * 34)) + ".jpg";
}

Dadurch werden allerdings doppelte Bilder vorkommen und die Bilder start01.jpg-start09.jpg müssen in start1.jpg-start9.jpg umbenannt werden.

Der Code für die Slideshow ist mit nem sehr schlechten Programmierstil geschrieben. Ist nicht weiter schlimm bei Anfängern - ich weis dich nur drauf hin damit du dir da eventuell ein paar Tricks und Kniffe einfallen lässt, um das ganze etwas eleganter zu programmieren. Auch bei zukünftigen Projekten.

Liebe Grüße
jens
 
Vielen Dank für deine Antwort. Also soll ich erst einmal die Grafiken von 1-9 ohne 0 im Dateinamen abspeichern und dann so schreiben?

Code:
var maxpunkte:Number = 35;
var speed:Number = 3;
var count:Number = 0;

for(i = 0; i < 35; i++) {
Pictures[i] = "start" + (Math.floor(Math.random() * 34)) + ".jpg";
}


for(p = 0; p < Pictures.length; p++){
   _root.createEmptyMovieClip("Pic" + p, 666 + p);
   _root["Pic" + p]._alpha = 0;
   _root["Pic" + p].loadMovie(Path + Pictures[p]);
}

		 
Active = 0

function switching(){
   Active ++
   if(Active == Pictures.length){
      Active = 0
   }
   
   ActivePic = _root["Pic" + Active]
   fadePic()
}


function fadePic(){
   FadeOut = new mx.transitions.Tween(OldPic, "_alpha", mx.transitions.easing.Regular.easeInOut , 100, 0, 4, true);
   
   FadeIn = new mx.transitions.Tween(ActivePic, "_alpha", mx.transitions.easing.Regular.easeInOut , 0, 100, 2, true);
   FadeIn.onMotionFinished  = function(){
      OldPic = ActivePic
   }
}


switching()
setInterval(switching, 10000)

Das mit dem schlechten Stil war mir klar :-( ich arbeite sonst nie mit Flash.

LG
 
Code:
var maxpunkte:Number = 35;
var speed:Number = 3;
var count:Number = 0;

Path = "images/"

Pictures = new Array()
for(i = 0; i < 35; i++) {
Pictures[i] = "start" + ((Math.floor(Math.random() * 34))+1) + ".jpg";
}


for(p = 0; p < Pictures.length; p++){
   _root.createEmptyMovieClip("Pic" + p, 666 + p);
   _root["Pic" + p]._alpha = 0;
   _root["Pic" + p].loadMovie(Path + Pictures[p]);
}

		 
Active = 0

function switching(){
   Active ++
   if(Active == Pictures.length){
      Active = 0
   }
   
   ActivePic = _root["Pic" + Active]
   fadePic()
}


function fadePic(){
   FadeOut = new mx.transitions.Tween(OldPic, "_alpha", mx.transitions.easing.Regular.easeInOut , 100, 0, 4, true);
   
   FadeIn = new mx.transitions.Tween(ActivePic, "_alpha", mx.transitions.easing.Regular.easeInOut , 0, 100, 2, true);
   FadeIn.onMotionFinished  = function(){
      OldPic = ActivePic
   }
}


switching()
setInterval(switching, 10000)
 
hi ihr lieben, ich habe da ein großes problem. habe eine slideshow mit weichen überblendungen. es läuft im film bei flash einwandfrei, sobald es im browser ist kommen harte übergänge etc.

woran kann das liegen? die flash datei war fertig für einen kunden, es ist hochgeladen, aber es hackt. und jetzt gibts ärger mit diesem, weil es bei ihm nicht so läuft wie bei mir, dabei kann es doch garnicht davon abhängen?

mein code ist folgender:

Code:
var maxpunkte:Number = 35;
var speed:Number = 3;
var count:Number = 0;

Path = "http://www.tutorials.de/forum/images/";
Pictures = new Array();
for (i=0; i<35; i++) {
	Pictures[i] = "start"+((Math.floor(Math.random()*34))+1)+".jpg";
}

for (p=0; p<Pictures.length; p++) {
	_root.createEmptyMovieClip("Pic"+p, 666+p);
	_root["Pic"+p]._alpha = 0;
	_root["Pic"+p].loadMovie(Path+Pictures[p]);
}

Active = 0;
function switching() {
	Active++;
	if (Active == Pictures.length) {
		Active = 0;
	}
	ActivePic = _root["Pic"+Active];
	fadePic();
}
function fadePic() {
	FadeOut = new mx.transitions.Tween(OldPic, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 4, true);
	FadeIn = new mx.transitions.Tween(ActivePic, "_alpha", mx.transitions.easing.Regular.easeInOut, 0, 100, 2, true);
	FadeIn.onMotionFinished = function() {
		OldPic = ActivePic;
	};
}
switching();
setInterval(s

ist dort irgendein fehler enthalten? mir hat jmd geholfen aus diesem forum (danke nochmal) und wie gesagt bei mir läufts perfekt. verstehe echt nicht was da das problem ist und was ich noch machen soll ...

er hat es mit verschiedenen browsern probiert und es klappt nicht. auch auf dem mac in meiner agentur läuft es nicht sauber. kann mir jmd sagen woran es liegt? bin am verzweifeln ...

könnt ihr mir sagen ob es bei euch auch so hängt? :(

http://sieben-achtel.de/luc-website/htdocs/start.html

liebe grüße, sarah
 
du lädst die Bilder ja garnicht vor. Deswegen wird das Bild erst geladen wenn es an der Reihe ist. Da dann aber in der Regel die Animation schon zu ende ist, taucht das Bild plötzlich auf.

Sobald aller Bilder geladen worden sind (einmal ducrchgelaufen), funktioniert's so wie auf deinem mac in der Agentur......

Anstatt gleich deine fadePic() Funktion auszuführen, würde ich eine Preloader-funktion zwischenpacken, die das nächste Bild erstmal vorlädt, und dann fadePic() ausführt.
 
Zuletzt bearbeitet:
Danke für die Antwort.

Verstehe aber nicht wieso es dann auf meinem Laptop sauber läuft. In der Agentur läuft es wie gesagt nicht. Von Preloader etc habe ich leider garkeine Ahnung.
 
Verstehe aber nicht wieso es dann auf meinem Laptop sauber läuft. In der Agentur läuft es wie gesagt nicht.
Moin,

auf deinem System (Laptop) liegen die Bilder von Beginn an zugriffsbereit im entsprechenden Unterverzeichnis (und Browsercache), auf dem Webserver hingegen werden diese Grafikdateien vom User-Agent (Browser des Seitenbesuchers) während dem ersten Durchlauf der Slideshow vom Server angefragt und heruntergeladen. Je nachdem, wie hoch nun die Dateigröße der einzelnen Galeriebilder, und wie schnell die Internetverbindung des Users ist, kann das dann schon mal einen kurzen Moment dauern, bis sie in der Flash-Anwendung erscheinen, und dann sieht man eben während diesem Ladevorgang den grauen Bühnenhintergrund.

Im direkten Anschluß (zweiter Durchgang) läuft die Slideshow dann bei mir mit weichen Übergängen zwischen den einzelnen Bildern. Wenn ich aber die Seite kurzzeitig verlasse, sprich den Tab schliesse, und wiederkehre, beginnt das gleiche Spiel von vorne, und das, obwohl sich die eingebetteten Grafikdateien nun alle in meinem Browsercache befinden.

mfg Maik
 

Neue Beiträge

Zurück