Avatar billede 13thsky Nybegynder
28. marts 2004 - 16:10 Der er 10 kommentarer og
1 løsning

billeder i samme størrelse?

jeg bruger følgende script til at hente billeder ind i en movie i flash MX.

    this["MOV1"].loadMovie("images/0"+nb2+".jpg");
    this["MOV1"]._width = 16;
    this["MOV1"]._height = 9.5;
    this["MOV1"]._x = -85.8;
    this["MOV1"]._y = 17;

Men af en eller anden grund har billeder forskellige størrelse når de bliver hentet.

Billederne har ikke samme størrelse inden de bliver hentet ind, men hvad skal jeg ændre for at de bliver presset ned i samme størrelse?

//13th Sky
Avatar billede pyroman Nybegynder
28. marts 2004 - 16:20 #1
Når billedet er blevet hentet ind i mc'et bliver dets width og height ændret til billedets størrelse...
For at sikre dig at billedet får den ønskede bredde og højde skal du tjekke om billedet er hentet 100 % ind i flash først med en preloader.
Den kan fx se sådan her ud:

this["MOV1"].loadMovie("images/0"+nb2+".jpg");
this.onEnterFrame = function(){
  loadedBytes = this["MOV1"].getBytesLoaded();
  totalBytes = this["MOV1"].getBytesTotal();
  if(loadedBytes == totalBytes && totalBytes > 0){
    delete this.onEnterFrame;
    this["MOV1"]._width = 16;
    this["MOV1"]._height = 9.5;
    this["MOV1"]._x = -85.8;
    this["MOV1"]._y = 17;
  }
}
Avatar billede 13thsky Nybegynder
28. marts 2004 - 16:31 #2
Det ændrer ikke noget.... Men sjovt nok kan jeg se at hvis jeg ændrer i størrelsen på MOV1, så ændrer billedet også størrelse...

Jeg vil egentlig bare hiver billederne ind, således at de alle får samme størrelse, uanset den størrelse de ligger i udenfor...

//13th Sky
Avatar billede barklund Nybegynder
28. marts 2004 - 16:36 #3
Hvis der er flere billeder, der hentes ind på ovenstående måde, så vil det jo ikke virke, da der kun er en onEnterFrame - prøv at lægge hele dit script her.
Avatar billede 13thsky Nybegynder
28. marts 2004 - 16:45 #4
i det første frame står scriptet:

nb = Math.random(5)*295;
nb2 = Math.round(nb);
    if (nb2<=51) {
        nb2 = nb2+100;
    }
    this["MOV1"].loadMovie("images/0"+nb2+".jpg");
    this["MOV1"]._width = 16;
    this["MOV1"]._height = 9.5;
    this["MOV1"]._x = -85.8;
    this["MOV1"]._y = 17;

i framet ligger der desuden et movieclip som hedder MOV1

//13th Sky
Avatar billede 13thsky Nybegynder
28. marts 2004 - 16:51 #5
Movieclippet MOV1 indeholder en lille streg, men den bliver ikke vist når movien kører. Kun billedet bliver vist. Men hvis jeg ændrer på størrelsen på den lille streg, ændres billedets størrelse også..
Avatar billede barklund Nybegynder
28. marts 2004 - 17:21 #6
Dette er mit bedste bud:

function waitForLoaded() {
    if (MOV1.getBytesTotal() > 100 && MOV1.getBytesTotal() == MOV1.getBytesLoaded) {
        MOV1._width = 16;
        MOV1._height = 9.5;
        MOV1._x = -85.8;
        MOV1._y = 17;
    }
}
nb = 51+Math.floor(Math.random()*245);
MOV1.loadMovie("images/0"+nb+".jpg");
this.onEnterFrame = waitForLoaded;

Men prøv ad... :)

// Morten Barklund
Avatar billede 13thsky Nybegynder
28. marts 2004 - 17:26 #7
Det ændrer ikke noget... Hvis du lige smider en mail adresse, akn jeg sende filmen til dig...?

//13th Sky
Avatar billede barklund Nybegynder
28. marts 2004 - 17:29 #8
smid på morten@dkmmug.dk
Avatar billede barklund Nybegynder
28. marts 2004 - 18:14 #9
Hvis jeg skriver (har rettet MOV1 til mov1):

nb2 = 52;
mov1.loadMovie("images/0"+nb2+".jpg");
this.onEnterFrame = function() {
    if (mov1.getBytesLoaded()>12 && mov1.getBytesLoaded() == mov1.getBytesTotal()) {
        mov1._width = 16;
        mov1._height = 9.5;
        mov1._x = -85.8;
        mov1._y = 17;
    }
};

Så virker det altså, som det skal - billederne bliver små og samme størrelse.

Men jeg kan også se, at jeg i min kode ovenover glemte () på getBytesLoaded...

// Barklund
Avatar billede 13thsky Nybegynder
28. marts 2004 - 18:33 #10
Ja, der var den... takker...
Avatar billede barklund Nybegynder
28. marts 2004 - 18:52 #11
Jo tak :)
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