aus Ordner Zufallsbild laden und anzeigen

imini

Mitglied
Guten Morgen,

ich habe hier schon danach gesucht, aber leider nicht das passende gefunden.

Ich möchte mit Flash aus einem externen Ordner ein Zufallsbild laden. Am liebsten mit täglicher Rotation, ansonsten halt Zufallsbild. Der Server hat kein PHP. Hat jemand eine Lösung für mich?

Vielen Dank
imini
 
Hi,

wenn Du keine serverseitige Scriptsprache zur Verfügung hast, kannst Du enweder:
  • Den Bildern identische fortlaufend nummerierte Namen geben, z.B.
    bild1.jpg, bild2.jpg, bild3.jpg ... und dann eine Zufallszahl generieren lassen:
PHP:
var bildAnzahl = 200; // muss bekannt sein
var bildNummer = int(Math.random() * bildAnzahl) + 1;
container.loadMovie("bild" + bildNummer + ".jpg");
Wenn die Bildanzahl schwankt, kannst Du diese auch in einer Textdatei auf dem Server ablegen, die zuerst eingelesen wird.


  • Oder eine Textdatei auf dem Server anlegen, die die Namen aller Bilder enthält. Die Namen in ein Array einlesen und ein zufälliges Element aus dem Array laden.

Eine tägliche Rotation ließe sich u.U. mit sharedObjects und einem Datumsvergleich erreichen (das ist in etwa so etwas wie ein Flash-Cookie) - dazu muss der Benutzer dem Speichern von Daten auf seinem Rechner allerdings zugestimmt haben.

Gruß
.
 
Danke - ich werd mich dann mal ransetzen.
Ich berichte obs klappt.

Das mit der täglichen Rotation habe ich mir schon fast gedacht, dass dies nicht einfach so möglich ist.

Gruß imini
 
Ich glaube mit dem conatiner kommt ich nicht klar. Hab ich auch noch nie benutzt...

Den Code von Dir habe ich in der Hauptszene drin.

Den Code habe ich auf die Schaltfläche gesetzt:
PHP:
on (press) { loadMovie("bild" + bildNummer + ".jpg",_root.ShowWindow("humormc",50,50));
}

Im MC "humormc" habe ich ein Bild (bild1.jpg) drin. Ich dachte das dieses dann durch den Code von Dir ausgetauscht wird. Funktionier aber nicht. Was mache ich falsch bei der Sache?

Danke und Gruß
imini
 
Äh... sprichst Du jetzt vom Einladen von Bildern im jpg-Format, oder von instanzieren von Objekten aus der Bibliothek?

Was macht die Funktion "showWindow"? Generell kannst Du für loadMovie das Ziel auch als Parameter angeben, das wäre dann das:
PHP:
loadMovie("bild" + bildNummer + ".jpg",_root.humormc);
Meine Syntax macht im Prinzip das gleiche, bloß als Memberfunktion der MovieClip-Klasse (container war nur ein Platzhalter):
PHP:
_root.humormc.loadMovie("bild" + bildNummer + ".jpg");

Gruß
.
 
Ich möchte die Bilder aus einem Ordner laden. D.h. die Bilder sind nicht in der Bibliothek drin.

Mit der Funktion ShowWindow dubliziere ich einen MovieClip der dann mit Aufruf der Funktion mit einer Schaltfläche an eine beliebige Stelle gesetzt werden kann.

Ich werde mich dan mal wieder ransetzen....


Danke und Gruß
imini
 
Also der Bildwechsel geht perfekt. Danke.
Nur mit meiner ShowWindow Funktion gehts nicht mehr. kann ich noch anders die Position des MC festlegen, so dass sie bei Schaltflächenaktion auf eine bestimmte Position springt?
 
Hi,

dazu müsste ich diese Funktion (am besten die ganze Datei) sehen. Du kannst jedenfalls keine Funktion als Ziel für eine loadMovie-Aktion angeben, es sei denn, diese Funktion gibt eine Referenz auf einen MovieClip zurück.

Einen MovieClip kannst Du über seine ._x und ._x-Eigenschaften beliebig positionieren...

Gruß
.
 
PHP:
function ShowWindow(winname,x,y) {
	var newname = "d"+winname;
	wincount++;
	duplicateMovieClip(winname, newname, wincount);
	_root[newname]._x = x;
	_root[newname]._y = y;
	if(x > 0 && y > 0) {
		_root[newname].gotoAndPlay(1);
	} else {
		_root[newname].gotoAndStop(1);
	}
}

Das ist die Funktion.

Der Aufruf erfolgt über eine Schaltfläche:
PHP:
_root.ShowWindow("MC",60,50);
 
Hi,

Du duplizierst das Ding und in das Duplikat soll das Bild geladen werden? Mach Dir doch eine Funktion, die beides übernimmt:
PHP:
function showImage(imgname, clipname,x, y) {
	if (wincount == undefined) wincount = 5000;
	wincount ++;
	var dup = this[clipname].duplicateMovieClip(clipname + "_dup", wincount);
	var ct = dup.createEmptyMovieClip("ct", 5000);
	dup._x = x;
	dup._y = y;
	ct.loadMovie(imgname);
	if(x > 0 && y > 0) {
		dup.gotoAndPlay(1);
	} else {
		trace("stop");
		dup.gotoAndStop(1);
	}
}
Aufruf dann z.B. so:
PHP:
var imgname = "bild" + (int(Math.random() * anzahl) + 1) + ".jpg";
showImage(imgname, "humormc", 60, 50);

Gruß
.
 

Neue Beiträge

Zurück