Avatar billede pegasus72 Nybegynder
01. marts 2005 - 12:55 Der er 15 kommentarer og
1 løsning

Brug af MCL.onLoadError() til at få antal på sidste billede?

Vil gerne have antallet på billeder der skal hentes ind mht. fordeling i galleri.
Har følgende script:

hentJpg = new MovieClipLoader();
nummer = 1
function hent() {
    hentJpg.loadClip("billede"+nummer+".jpg",nummer)
            trace(nummer)
            nummer++
    }
    hentJpg.onLoadStart = function(mc) {
            hentJpg.unloadClip(mc)
            hent()
}
hent()
hentMc.addListener(hentMcSniffer)

Den kører så en løkke og stopper så ved fejlmelding.

Hvor og hvordan skal jeg bruge hentMcSniffer.onLoadError = function() { hentAlle() }
Avatar billede barklund Nybegynder
01. marts 2005 - 13:05 #1
Kan du ikke sige, hvad du gerne vil, så kan vi fortælle dig, hvordan man gør det smartest :)
Avatar billede pegasus72 Nybegynder
01. marts 2005 - 13:34 #2
Ok...
Antal af billeder er ukendt.
En lille preloader placeres hvor hvert enkelt billede senere vil dukke.
Da antallet af billeder er ukendt lavede jeg ovenstående for at få det tal.
Når tallet er kendt skal der køres en løkke der fordeler preloaderne på stage.
Derefter hentes billederne ind i rækkefølge ikke parallelt, da modem besøgende skal vente i 100 år før de dukker op. (fik koden af dig til kontruktion af løkke på det problem).
Altså en onLoadError funktion der vil starte load af preloaderne og derefter load af billeder efter hinanden...
Avatar billede pegasus72 Nybegynder
01. marts 2005 - 13:37 #3
Mmm.

hentJpg.onLoadError = function () {
    hentAlle()
}

Det var fuldstændigt som bl.a .onLoadStart
Man behøver åbenbart ikke listener..
Avatar billede barklund Nybegynder
01. marts 2005 - 13:52 #4
Det er en pænt fjollet løsning! Har du virkelig ingen serverside scripting sprog til rådighed - asp/php?
Avatar billede pegasus72 Nybegynder
01. marts 2005 - 13:55 #5
Jo PHP men kan intet serverside...
Hvordan foreslår du at man kunne gøre det?
Det skulle gerne ende med en løsning som: http://www.clydesonline.com
Avatar billede barklund Nybegynder
01. marts 2005 - 14:00 #6
Du kunne jo starte med at kalde et php-dokument, som returnerer sti (og evt. størrelse) på alle non-progressive jpeg billeder i den aktuelle mappe - så kan du tælle disse udfra dennes svar og loade de rigtige billeder - det er da meget smartere...
Avatar billede pegasus72 Nybegynder
01. marts 2005 - 14:04 #7
Har du et eksempel?
Det kunne være at jeg skulle skære igennem og sætte mig ind i hvordan MySql-PHP-Flash arbejder sammen...
Vil gerne være i stand til at lave CMS med Flash som frontEnd...
Avatar billede barklund Nybegynder
01. marts 2005 - 14:12 #8
Altså, du kunne kalde din php som:

get_pics.php?folder=/mypics/

Som så returnerede:

<pics>
  <pic path="/mypics/num1.jpg" width="200" height="400" />
  ...
</pics>

Og så i flash læse denne xml, parse og derefter hente alle billederne i de rette holdere.

--
Morten Barklund
Avatar billede pegasus72 Nybegynder
01. marts 2005 - 14:18 #9
Øhh..
Gider du at forklare hvad hver enkelt linje gør og hvor den befinder sig? PHP eller?

Hvad er parse, hente/læse eller?
Tænkte på om du kender en god MySql-->PHP-->XML-->Flash tutorial?
Det må være den korrekte metode til sådan et projekt her...
Avatar billede pegasus72 Nybegynder
01. marts 2005 - 14:32 #10
Eller skal jeg bide skeer med de "hårde" og sætte mig ind i AMFPHP projektet?
Så skulle man slippe for XML og modtage f.eks array's direkte fra serveren...
Hvad mener du?
Avatar billede barklund Nybegynder
01. marts 2005 - 14:34 #11
For det første er der intet mysql med her...

Derudover har jeg ikke lavet PHP scriptet for dig. Men det er ret nemt:

<?php
$dir = dirname($_GET['folder']);
print "<pics>";
if (is_dir($dir) && $dh = opendir($dir)) {
    while (($file = readdir($dh)) !== false) {
      list($w,$h,$t) = getimagesize($file);
      if ($t == IMAGE_JPEG && ($img = imagecreatefromjpeg($file)) && !imageinterlace($img)) {
          print "<pic path=\"".$dir."/".$file."\" width=\"".$w."\" height=\"".$h."\" />";
      }
    }
    closedir($dh);
}
print "</pics>";
?>

Og at hente og læse XML i flash er ret nemt - noget med:

var hentBilleder = new XML();
hentBilleder.load("get_pics.php?folder=/mypics/");
hentBilleder.onLoad = function() {
    var b = this.firstChild.childNodes;
    for (var i = 0; i < b.length; i++) {
        trace("billede "+ i + " er "+ b[i].attributes.path);
        // størrelsen er så b[i].attributes.width * b[i].attributes.height
    }
}

Har ikke lige testet det, men noget i den stil :)

--
Morten Barklund
Avatar billede pegasus72 Nybegynder
01. marts 2005 - 15:11 #12
Jeg kigger lige på det, tak indtil videre...
Avatar billede pegasus72 Nybegynder
11. marts 2005 - 10:11 #13
Jeg forstår ikke rigtigt hvad der sker i PHP scriptet men du må gerne smide et svar og måske en lille forklaring til hvad der præcis sker...
Avatar billede barklund Nybegynder
12. marts 2005 - 12:24 #14
Altså, PHP scriptet åbner en mappe for at finde alle billederne i den og returnerer disse som xml-data til flash.

Men virker det?
Avatar billede pegasus72 Nybegynder
25. marts 2005 - 15:19 #15
Har ikke fået testet endnu men her er points..
Avatar billede barklund Nybegynder
25. marts 2005 - 15:20 #16
Du kan eller bare gemme dem, til du har testet :)

Men finfin, tak for dem - spørg endelig her igen hvis det bøvler :)

--
Morten Barklund
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