Avatar billede spyrodrag Nybegynder
27. maj 2007 - 15:20 Der er 8 kommentarer og
1 løsning

Indhold af mappe

Kan jeg lave en løkke, som henter alle filer fra en given mappe med actionscript? Hvis det er muligt, så vil jeg gerne vide hvordan.
Avatar billede maqhem Nybegynder
27. maj 2007 - 16:04 #1
Lad os bare holde det ved, hvad fakta er: Nej det kan du ikke. Hvis du vil vil scanne for billeder og swf-filer (det vil sige filer, Flash kan loade ind i sig), så kan du gøre det med en løkke, men det vil aldrig være muligt at gardere sig helt, og løkken vil tage lang tid at fuldføre.

Men du kan få PHP til at kigge i et directory på dens egen server, sende dataen til Flash, og derefter kan du behandle det med Flash
Avatar billede w13 Novice
27. maj 2007 - 16:08 #2
Eller APS ;)
Avatar billede w13 Novice
27. maj 2007 - 16:08 #3
Damn.. ASP :P
Avatar billede spyrodrag Nybegynder
27. maj 2007 - 17:45 #4
Hvordan sender jeg data til flash smartest? XML?
Avatar billede w13 Novice
27. maj 2007 - 18:00 #5
Avatar billede maqhem Nybegynder
27. maj 2007 - 18:07 #6
Flash kan selv læse det som output i et PHP- eller ASP-script. Nu er jeg ikke hammergo' til ASP. Faktisk ved jeg kun, man starter og slutter med <% og %>, men i PHP kan det se sådan hér ud:

<?php
    $dir = $_GET["dir"];
    echo "f=";
    while(($f = readdir($dir)) !== false) {
        echo "|" . $f;
    }
    closedir($directory);
?>

Gem dette i en mappe med mappen i. Hvis du sender GET-parametren dir=m, så læser den indholdet af mappen m, og outputter følgende:

f=a.png|b|c.html|d.unknown

Hvis mappem m indeholder filerne/mapperne a.png, b, c.html og d.unknown.

Det skal Flash så læse. Så kan du benytte LoadVars:

var mappe:String = "m";
var lv:LoadVars = new LoadVars();
lv.onLoad = function(success) {
    if(success) {
        trace("Mappen " + mappe + "indeholder følgende filer:");
        for(var i:Number = 0; i < lv.split("|").length; i++) {
            trace(lv.split("|")[i]);
        }
    }
}
lv.sendAndLoad("http://www.dinside.dk/php-script.php?dir=" + mappe, lv, "GET");
Avatar billede maqhem Nybegynder
27. maj 2007 - 18:08 #7
Der var lige en lille fejl i mit AS:

var mappe:String = "m";
var lv:LoadVars = new LoadVars();
lv.onLoad = function(success) {
    if(success) {
        trace("Mappen " + mappe + "indeholder følgende filer:");
        for(var i:Number = 0; i < lv.f.split("|").length; i++) {
            trace(lv.f.split("|")[i]);
        }
    }
}
lv.sendAndLoad("http://www.dinside.dk/php-script.php?dir=" + mappe, lv, "GET");
Avatar billede maqhem Nybegynder
27. maj 2007 - 18:17 #8
Og så var der lige en ting, jeg ikke lige havde taget højde for kom jeg lige i tanker om. Sådan hér skal det se ud:

0|1|2
var mappe:String = "m";
var lv:LoadVars = new LoadVars();
lv.onLoad = function(success) {
    if(success) {
        trace("Mappen " + mappe + "indeholder følgende filer:");
        for(var i:Number = 1; i < lv.f.split("|").length; i++) {
            trace(lv.f.split("|")[i]);
        }
    }
}
lv.sendAndLoad("http://www.dinside.dk/php-script.php?dir=" + mappe, lv, "GET");

Nu burde det altså nu. :)
Avatar billede maqhem Nybegynder
27. maj 2007 - 18:18 #9
Min 0|1|2 var bare en illustration på, hvordan outputtet deles op. Det er ikke en del af koden.

Okay, pludseligt blev mine kommentare meget lange, og det skulle de vidst ikke have været. Jeg håber, det går. Hvis det duer, så smider jeg lige et svar, for jeg har ikke testet efter, men jeg har lavet det før :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester