ActionScript: Schleife zum Auslesen aller Dateinamen eines Verzeichnisses

D12

Mitglied
Hi All,

ich bin c++/c#, php Programmierer und habe wegen der ähnlichen Syntax nun auch die Welt von Flash für mich entdeckt.

Nun möchte ich die Dateien eines Verzeichnisses auslesen und in einer Textbox darstellen. Folgendes Script habe ich für PHP entwickelt, dort funktioniert es:

Code:
handle = opendir("bilder");
if (handle)
{
    while(file = readdir(handle))
    {
        if (  (file != ".")  &&  (file != "..")  )
        {
            MeinText += file;
        }
    }
}

Ergebnis: Die Textbox MeinText enthält nur den Object-Namen: "_level0.MeinText"

Mit einer einfachen Zählschleife funktioniert es. Fehler meldet Flash MX nicht.
Ich vermute mal einen Denkfehler, finde aber keine Lösung. Wer kann mir weiterhelfen?

cu s00n
D12
 
Flash selbst läuft ausschließlich auf dem Clientrechner und kann
serverseitig gar nichts machen.

Was Flash tun kann, ist z.B. ein php-Script als Schnittstelle aufrufen.
Dieses übernimmt die Arbeit des Auslesens auf dem Server und liefert
das Ergebnis per echo an Flash zurück.

Das Prinzip:

1. Deine php-Datei
Die könnte so aussehen, dass ein String in dieser Art und Weise
rauskommt (z.B. mit Kommata getrennt) und am Ende übergeben wird
PHP:
[...]
// nur als Beispiel, das setzt du ja mit deinem Script zusammen
$meintext="datei1.jpg,datei2.jpg,datei3.jpg,datei4.jpg";
//die Übergabe für Flash
echo "&uebergabevariable=$meintext";
Das Auslesen selbst (hier das [...] ) hast du ja schon, wie du sagtest

2. Deine Flashdatei
Code:
loadvarsobjektname= new LoadVars();
loadvarsobjektname.onLoad = function(success) {
    if (success)  {
        _root.arraymitdendateien=this.uebergabevariable.split(",");
        //und dann was damit passieren soll
    }
}
loadvarsobjektname.load("deine.php");
Damit hast du dann auf der Hauptzeitleiste deiner Flashdatei einen
Array namens "arraymitdendateien" mit den Dateinamen, die du
entsprechend weiter verwerten kannst.

Falls du nur den String brauchst - ungesplittet - dann
_root.MeinText.text=this.meintext; statt die Zeile mit dem split.

Gruß
Rena

PS: Scripts sind ungetestet und aus dem Kopf ... geht ja vor allem
ums Prinzip. Falls Syntaxfehler, diese in der Flashhilfe nachgucken.

PPS: Statt _root (Hauptzeitleiste in Flash) eben ggf. den Pfad im
Flashfilm, wo du die Variable hinhaben willst.
 
Zuletzt bearbeitet:
Ok, das ist einleuchtend und ich bekomme es sogar hin das es funktioniert.
Nun habe ich ein Textfeld, das den Namen einer Datei anzeigt und zwei Buttons für trechts/links bewegen. Nun will ich das die Dateien als JPG'S angezeigt werden. Ich habs mit LoadMovie und LoadMovie Num versucht, aber bei beiden kann ich die größe des Bildes nicht mehr einstellen.
 
[..] aber bei beiden kann ich die größe des Bildes nicht mehr einstellen.
Doch: Geht bei beiden Methoden - Du musst allerdings warten, bis die Bilddatei komplett geladen ist:
Code:
container.loadMovie("bild.jpg");
this.onEnterFrame = function() {
    if (container.getBytesLoaded() > 0 && container.getBytesLoaded() >= container.getBytesTotal()) {
        container._width = 160;
        container._height = 48;
        delete this.onEnterFrame;
    }
}

Gruß
.
 
Eins wird mir klar, ich muss umdenken, irgendwo ist der Wurm drin.

Ich hab das mal hier http://www.pc24ac.de/downloads/FlashSlideShow.rar gepackt, vielleicht ist einer von Euch so nett und erläutert mir meine Denkfehler nach einem Blick auf das kleine Projekt!

Sinn des Ganzen:
Ich hab kein Bock mehr Bilder via Mail schicken zu müssen wenn ich mal wieder mit meiner KAmera Leute fotografiert habe. Also will ich ein *.swf, das die Bilder eines Verzeichnisses einliest und zeigt. So mit BUtton und so.

auch, aber Bild hat die falsche Position, Größe und am Anfang kommt erst einmal eine Fehlermeldung!

Hilfe wäre nett.!
 
Zurück