Zufallsbild

MJAInc

Mitglied
Hi

Ich habe schon probiert aber ich komme zu keiner loesung

Also

Ich moechte aus verschiedenen Bildern zufällig eines aussuchen und das dann in ein MC laden. ich habe eine Textdatei die namen enthält. In einem anderen Ordner befinden sich dann die Bilder die den namen in der textdatei+.jpg haben

Also soll sich flash die namen aus der textdatei holen, sich einen auswählen und das passende Bild dann aus dem ordner laden und anzeigen.

Ich habe es probiert. leider ohne grossen erfolg. Kann mir hier jemand weiter helfen?

Gr³³tz MJA
 
Vom Prinzip her - keine Ahnung, wo du genau stehst:

Lese alle Namen aus deiner txt-Datei aus und setze alle in einen Array.
Falls du hier schon hängst, mal nach loadVars suchen, in der Flashhilfe mal
über Arrays nachlesen oder zumindest deine txt-Datei und deinen bisherigen
Versuch, das in Flash zu bekommen, posten

Aus diesem Array kannst du nun Zufallsbeiträge auslesen nach dem Prinzip
Code:
myarr = ["1", "2", "3", "4"]; //als "Übungsobjekt", bei dir stehn die Dateien drin
myzufall = myarr[Math.floor(Math.random()*myarr.length)];
trace(myzufall);

Gruß
Rena
 
also in der Txt datei liegen einfach nur Namen un ter einander aufgelistet


admin
test
user
mja
usw.

in einem Ordner liegen dann bilder, die bilder heissen dann

admin.jpg, test.jpg usw.

Also er soll die text datei oeffnen. Sich beispielsweise den namen "test" nehmen und dann test.jpg oeffnen

er soll sich sozusagen zufällig nen namen raussuchen

Geht das ueberhaupt?

Leider habe ich vergessen die fla zu speichern. Als ic flash geschlossen habe. Kann also leider keine Fla posten. Aber ich probiere weiter. Wenn ich wieder was brauchbares zusammen habe kann ich es ja mal anhängen
 
Hallo

Ja das geht aber warum soll es extra eine txt-Datei sein?
Eine ähnliche Frage hatte ich auch mal und hatte von Datic eine antwort bekommen die funktionierte.


MEINE FRAGE

gruß
 
Diese moeglichkeit hatte ich shon probiert. MeinProb isz das sich die anzahl der bilder ständig andert und ich dadurch ständig die fla ändern muesste. um die aktuelle Anzahl der Bilder hinzukommen.

Das ganze soll fuer nen Chat sein. Und es soll ein ZufälligesUserbild generiert werden.Das AS ist soweit okay nur das sich Die Bilder in

var bilder = new Array("jpgs/"+i+".jpg", "jpgs/"+i+".jpg", "jpgs/"+i+".jpg");

selber eintragen. Wie kann ich sowas loesen. Weiss das jemand?
 
Wie das genau geht kann ich dir leider auch nicht sagen, bei Datic auf der seite giebt genug Bsp. wie er daten aus einer xml Datei laden lässt.

Code:
var bilder = new Array("hier Datei laden lassen")

Ich kann dir leider auch nicht genau sagen wie es geht.


Die einfachste methode wie ich es machen würde währe so, das man die Bilder durch Nummerierung und dann kannst du sie einfach auf dem Server (im Ordner) nur die Bilder austauscht ohne das du was in der Datei ändern musst. :)


gruß
 
tja und genau da hänge ich jetzt auch. Alles geht bilder laden so ind der Art wie dein beispiel.Die Groessen Anpassung, das bild in egal was fuer einer Groesse auf eine vogegebene propotionale groesse gebracht werden. Aber ich bekomme nicht die Variablen aus der Txt datei uebergeben.

Keiner ne Idee

Schade.
 
Hi,

wenn Du Daten, die in einer Textdatei untereinander stehen, sinnvoll in Flash verwenden willst, musst Du den entsprechenden Parser selbst schreiben. Per "default" parst Flash nur Variablenlisten, die url-kodiert sind (LoadVars-Objekt) sowie xml-Bäume (XML-Objekt).

Daher würde ich Dir auch das XML-Objekt empfehlen, und die Daten (wenn es Dateinamen und Maße sind) z.B. folgendermaßen in der Datei ablegen:
Code:
<img src="bild1.jpg" width="150" height="80" />
<img src="bild2.jpg" width="240" height="96" />

Wenn Du eingeladene Bilder proportional skalieren willst, kannst Du nach dem Laden Breite und Höhe auslesen, das Verhältnis berechnen und die Größe beliebig anpassen. Auch dazu findest Du auf meiner Seite genügend Beispiele.

Gruß
.
 
Die groessen änderung habe ich alleine hinbekommen. Das ist leicht. Was mich interessiert ist, wie bekommen ich die daten aus der Textdatei in flash datei.

In der liste sind die namen und die muessten vor das jpg und die menge der bilder variiert auch ständig. Also muessten sich die anzahl der bilder auch verändern.

Also

var bilder = new Array("jpgs/"+i+".jpg", "jpgs/"+i+".jpg", "jpgs/"+i+".jpg"...);

Da wo die +i+ sind muessten die Namen eingetragen werden die in der Textdatei stehen. und die Anzahl der bilder muss sich nach der anzahl der namen in der liste (txt) richten. Weiss nicht ob ich mich hier verständlich genug mache oder ob wir eher an einander vorbeireden.
 
Hi,

muss die Textdatei wirklich in dem von Dir beschriebenen Format (einfach untereinander) sein? Als URL-kodierte Zeichenkette oder XML-Baum hättest Du es in diesem Fall um einiges einfacher.

Ansonsten musst Du die gesamte Datei in einen String lesen, und diesen von Hand parsen. Da ich im Moment keine Entwicklungsumgebung habe, kann ich Dir nichts getestetes posten - nur einen Vorschlag "frei nach Schnauze":
Code:
var lv = new LoadVars();
lv.onLoad = function() {
    parse(this.toString());
}
function parse(obj) {
    var images = obj.split(chr(13));
    images.pop();
    for (var i in images) {
        images[i] = "jpgs/" + images[i] + ".jpg";
    }
    // jetzt hast Du die Bilder im Array "images" stehen
}
Inhalt Textdatei:
Code:
bild1
bild2
bild3
bild4
Wenn Du ein LoadVars-Objekt in einen String umwandelst, hast Du am Ende zumindest noch den onLoad-Handler stehen, den Du herausschneiden musst (ich vermute mal, mein pop() wirds nicht tun) - den genauen Wortlaut habe ich aber nicht im Koft, daher lass Dir mal per trace ausgeben, was in "obj" (Funktion parse) steht und poste es dann hier.

Gruß
.
 
Zurück