Avatar billede seventhsun Nybegynder
24. august 2005 - 15:08 Der er 3 kommentarer

Bredden på jpgs hentet med loadMovie

Hej!

Jeg har lavet et script, der henter MMS billeder ind vha. XML.
Det fungerer perfekt - bortset fra de billeder der er mindre end de andre.
Lige nu alligner de bare i øverste venstre hjørne af mit target MC.

Jeg kunne godt tænke mig, at de blev centreret.
Det ville jeg gøre ved at aflæse bredden, og så til passe _x.
Flash documentationen skriver, at swf'er og jpg'er der bliver hentet med loadMovie arver properties af target MC.

Det er til dels sandt - og jeg tror at jeg er stødt på endnu en bug i Flash.

Der sker det, at properties er et billede bagude om jeg så må sige.

En simpel version af koden er her:

function newSpot(){
    if (num > (picpathArray.length-1)){num = 1;}
    loadMovie(picpathArray[num],_root.insPicHolder);
    num++;
    trace("width: "+_root.insPicHolder._width};
}

Hvor:
picpathArray er et array med alle billedernes URL og en lille tekst.
_root.insPicHolder er mit target MC.

Hvis jeg eks. henter tre billeder efter hinanden hvor:

a.jpg width = 227
b.jpg width = 150
c.jpg width = 227

Vil jeg få outputtet:

width: 227
width: 227
width: 150

Groft sagt.

Så jeg leder efter en måde, at refreshe de der properties.
Eller evt. en måde hvor jeg komme uden om den her bug.

Nogen ideer?
Avatar billede docks Nybegynder
24. august 2005 - 16:49 #1
hmm du vil altså loade X antal billeder ind i et MovieClip. Du vil så placere dette movieclip på midten af din stage? er det forstået korrekt?

trace("width: "+_root.insPicHolder._width};

denne trace burde jo i bund og grund blive et større og større tal, MEN dog ikke hvis billedet ikke når at loades ind før _width traces!

Hvis det er noget der skal køre på nettet så burde du jo nok have en preloader til de billeder...
Avatar billede seventhsun Nybegynder
24. august 2005 - 21:19 #2
Nej jeg loader billederne ind et ad gangen.
Hvert billede bliver vist i 15 sekunder.

Fordi jeg hele tiden bruger den samme target path, erstatter de hinanden.

Og de bliver ikke placeret i et movieclip - det første billede erstatter det movieclip, der hedder _root.insPicHolder.

_width vil altså ikke vokse - det er blot bredden på det billede, der bliver loadet ind.
Men mærkeligt nok, er det værdien hele tiden "forskudt".
Avatar billede paal_dk Nybegynder
25. august 2005 - 10:18 #3
Docks har ret! Du er nødt til at vente på at billedet er loadet før du kan måle bredden på det.

loadMovie(picpathArray[num],_root.insPicHolder);
--> trace("width: "+_root.insPicHolder._width}; <--- Virker ikke!

Prøv med:
_mcl = new MovieClipLoader();
_mcl.addListener( { onLoadComplete:function() { trace(TRACEARGS); } } );
_mcl.loadClip( ARGS );

Eller lav en onEnterFrame check på dit load så du ved hvornår det er færdigt.

Mvh,
Pål Østerud
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