Avatar billede kalleballe Nybegynder
01. oktober 2004 - 12:29 Der er 20 kommentarer og
2 løsninger

loade dynamiske jpgs i løkke

jeg forsøger bare at loade en hel del jpgs, - problemet er at koden afvikles hurtigere end billederne kan loade og så sker der ikke mere end at det første billede kommer.




stop ();
imgData = new Array ();

for (var m = 0; m<=9; m++)
{
    for (var n = 0; n<=9; n++)
    {
       
        this.createEmptyMovieClip("img"+n*(m+1), this.getNextHighestDepth());

        this["img"+n*(m+1)._x] = n*52;
        this["img"+n*(m+1)._y] = m*35;
       
        this["img"+n*(m+1)].loadMovie("http://www.macromedia.com/images/shared/product_boxes/80x92/studio_flashpro.jpg");
       
        this["img"+n*(m+1)._width] = 52
        this["img"+n*(m+1)._height] = 35
       
       
        imgData.push ("("+(n*52), m*35+")");
       
       
       
    }
   
        trace ("imgData = "+imgData);
}
Avatar billede kalleballe Nybegynder
01. oktober 2004 - 12:46 #1
virker heller ikke:

stop ();
imgData = new Array ();
for (var m = 0; m<=9; m++)
{
    for (var n = 0; n<=9; n++)
    {
        this.createEmptyMovieClip ("img"+n*(m+1), this.getNextHighestDepth ());
        this["img"+n*(m+1)]._x = n*52;
        this["img"+n*(m+1)]._y = m*35;
        this["img"+n*(m+1)].loadMovie ("http://www.macromedia.com/images/shared/product_boxes/80x92/studio_flashpro.jpg");
        this["img"+n*(m+1)]._width = 52;
        this["img"+n*(m+1)]._height = 35;
        imgData.push ("("+(n*52), m*35+")");
    }
    trace ("imgData = "+imgData);
}
Avatar billede kalleballe Nybegynder
01. oktober 2004 - 12:46 #2
mon det er noget med getNextHighestDepth??
Avatar billede rohaje Nybegynder
01. oktober 2004 - 12:48 #3
prøv den her er også svar på dit andet spm :

stop ();


var my_mcl = new MovieClipLoader();
myListener = new Object();
myListener.onLoadStart = function(target_mc) {
    var loadProgress = my_mcl.getProgress(target_mc);
    myTrace(loadProgress.bytesLoaded+" = bytes loaded at start  ");
    myTrace(loadProgress.bytesTotal+" = bytes total at start  ");
};
myListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
    var loadProgress = my_mcl.getProgress(target_mc);
    testLoad(target_mc._parent.x, loadProgress.bytesLoaded, loadProgress.bytesTotal);
};
myListener.onLoadComplete = function(target_mc) {
    var loadProgress = my_mcl.getProgress(target_mc);
    testLoad(target_mc._parent.x, loadProgress.bytesLoaded, loadProgress.bytesTotal);
    //target_mc.setPic();
    target_mc.setPic();
};
myListener.onLoadInit = function(target_mc) {
    var loadProgress = my_mcl.getProgress(target_mc);
    //testLoad(target_mc._parent.x, loadProgress.bytesLoaded, loadProgress.bytesTotal);
    target_mc.setPic();
    trace(" onLoadInit  "+target_mc);
};
myListener.onLoadError = function(target_mc, errorCode) {
    target_mc._parent.tekst.text = errorCode;
    trace("error "+errorCode);
    testLoad(target_mc._parent.x, 100, 100);
};
my_mcl.addListener(myListener);
imgData = new Array ();

for (var m = 0; m<=9; m++)
{
    for (var n = 0; n<=9; n++)
    {
       
        this.createEmptyMovieClip("img"+n*(m+1), this.getNextHighestDepth());

        this["img"+n*(m+1)]._x = n*52;
        this["img"+n*(m+1)]._y = m*35;
       
      // this["img"+n*(m+1)].loadMovie("http://www.macromedia.com/images/shared/product_boxes/80x92/studio_flashpro.jpg");
        my_mcl.loadClip("http://www.macromedia.com/images/shared/product_boxes/80x92/studio_flashpro.jpg", this["img"+n*(m+1)]);
        this["img"+n*(m+1)._width] = 52
        this["img"+n*(m+1)._height] = 35
       
       
        imgData.push ("("+(n*52), m*35+")");
       
       
       
    }
   
        trace ("imgData = "+imgData);
}
Avatar billede rohaje Nybegynder
01. oktober 2004 - 12:49 #4
det virkede fint nok men du havd en fejl da du satte y og x her rettet:
this["img"+n*(m+1)]._x = n*52;
this["img"+n*(m+1)]._y = m*35;
Avatar billede rohaje Nybegynder
01. oktober 2004 - 12:50 #5
det samme med _width og height

    this["img"+n*(m+1)._width] = 52
        this["img"+n*(m+1)._height] = 35

skal rettes til

    this["img"+n*(m+1)]._width = 52
        this["img"+n*(m+1)]._height = 35
Avatar billede rohaje Nybegynder
01. oktober 2004 - 12:55 #6
du skal vente med at sætte _width og height til billederne er loadet ;
this["img"+n*(m+1)]._width = 52
        this["img"+n*(m+1)]._height = 35



brug f.eks

myListener.onLoadInit = function(target_mc) {
    var loadProgress = my_mcl.getProgress(target_mc);
    //testLoad(target_mc._parent.x, loadProgress.bytesLoaded,    loadProgress.bytesTotal);
    setPic(target_mc);
    trace(" onLoadInit  "+target_mc);
};


// og functionen
function setPict(n){
this[n]._width=52;
this[n]._heigth=35;
}
Avatar billede kalleballe Nybegynder
01. oktober 2004 - 12:57 #7
ups det er vist min store matematiske beregninger der er forkerte :)
Avatar billede rohaje Nybegynder
01. oktober 2004 - 12:57 #8
det er lidt rodet( klistret sammen af kode fra et tidligere projekt) skal jeg rydde op i det (fjerne kode der ikke bruges her) ?
Avatar billede barklund Nybegynder
01. oktober 2004 - 13:05 #9
Det er lige nogle småfejl hist og her. For eksempel døber du dem:

"img"+n*(m+1)

Det bliver hvis n=4 og m=2 til:

"img"*(4*(2+1))
"img"*(4*3)
"img12"

Men hvad nu hvis n=3 og m=3, som jo er et andet billede:

"img"*(3*(3+1))
"img"*(3*4)
"img12"

Samme billede? Nej vel, det er to forskellige rækker men grundet din måde at navngive dem får du samme navn. I stedet kan du navngive dem som:

"img"+(n*10+m)

Så vil de få rigtige navne.

Men tilbage til dit problem. Der er også et problem med setPic (som rohaje fik kald setPict det ene sted):

function setPic(mc){
    mc._width = 52;
    mc._heigth = 35;
}

Deruover er der ikke nogle problemer i det ovenstående så vidt jeg kan se :)

--
Morten Barklund
Avatar billede barklund Nybegynder
01. oktober 2004 - 13:05 #10
Hov, "img"* skal selvfølgelig være "img"+ :)
Avatar billede rohaje Nybegynder
01. oktober 2004 - 13:07 #11
her er en lidt pænere version

stop();
var my_mcl = new MovieClipLoader();
myListener = new Object();
myListener.onLoadStart = function(target_mc) {
    var loadProgress = my_mcl.getProgress(target_mc);
    trace(target_mc+"  "+loadProgress.bytesLoaded+" = bytes loaded at start  ");
    trace(target_mc+"  "+loadProgress.bytesTotal+" = bytes total at start  ");
};
myListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
    var loadProgress = my_mcl.getProgress(target_mc);
    trace(target_mc+"  "+loadProgress.bytesLoaded+" = bytes loaded in Progress");
    trace(target_mc+"  "+loadProgress.bytesTotal+" = bytes total in Progress ");
};
myListener.onLoadComplete = function(target_mc) {
    var loadProgress = my_mcl.getProgress(target_mc);
    trace(target_mc+"  "+loadProgress.bytesLoaded+" = bytes loaded on Complete");
    trace(target_mc+"  "+loadProgress.bytesTotal+" = bytes total on Complete ");
};
myListener.onLoadInit = function(target_mc) {
    setPic(target_mc);
    trace(" onLoadInit  "+target_mc);
};
myListener.onLoadError = function(target_mc, errorCode) {
    trace(target_mc+"  error : "+errorCode);
};
my_mcl.addListener(myListener);
function setPict(n) {
    this[n]._width = 52;
    this[n]._height = 35;
}
imgData = new Array();
for (var m = 0; m<=9; m++) {
    for (var n = 0; n<=9; n++) {
        this.createEmptyMovieClip("img"+n*(m+1), this.getNextHighestDepth());
        this["img"+n*(m+1)]._x = n*52;
        this["img"+n*(m+1)]._y = m*35;
        my_mcl.loadClip("http://www.macromedia.com/images/shared/product_boxes/80x92/studio_flashpro.jpg", this["img"+n*(m+1)]);
        imgData.push("("+(n*52), m*35+")");
    }
    trace("imgData = "+imgData);
}
Avatar billede rohaje Nybegynder
01. oktober 2004 - 13:08 #12
hov,, ikke pænere end din barklund jeg havde ikke set at du var kommet på banen

og du har ret

function setPic(mc){
    mc._width = 52;
    mc._heigth = 35;
}
Avatar billede rohaje Nybegynder
01. oktober 2004 - 13:22 #13
lille stave fejl

function setPic(mc){
    mc._width = 52;
    mc._heigth = 35;
}

skal være

function setPic(mc){
    mc._width = 52;
    mc._height = 35;
}
Avatar billede barklund Nybegynder
01. oktober 2004 - 14:18 #14
Du bør måske flytte setPic til onLoadComplete istedet for onLoadInit, men ellers kan du sådan set slette de fleste af funktionerne og blot skrive:

stop();
var my_mcl = new MovieClipLoader();
myListener = new Object();
myListener.onLoadComplete = setPic;
myListener.onLoadError = function(target_mc, errorCode) {
    trace(target_mc+"  error : "+errorCode);
};
my_mcl.addListener(myListener);
function setPict(n) {
    this[n]._width = 52;
    this[n]._height = 35;
}
var imgData = new Array();
var m, n, o;
for (m = 0; m<=9; m++) {
    for (n = 0; n<=9; n++) {
        o = this.createEmptyMovieClip("img"+n+m, this.getNextHighestDepth());
        o._x = n*52;
        o._y = m*35;
        my_mcl.loadClip("http://www.macromedia.com/images/shared/product_boxes/80x92/studio_flashpro.jpg",o);
        imgData.push("("+(n*52), m*35+")");
    }
    trace("imgData = "+imgData);
}

Læg mærke til den nye og endnu frækkere navngivning af variablerne! :P

--
Morten Barklund
Avatar billede kalleballe Nybegynder
01. oktober 2004 - 14:34 #15
tak skal I have begge to, - jeg ser lige på det lidt senere når øjene ikke længere står ud af hovedet af træthed zzzzzz  zzz zz z z zz

vh

KalleBalle
Avatar billede kalleballe Nybegynder
01. oktober 2004 - 14:39 #16
øhh, - jeg kan ikke rigtig se at funktionen setPict() virker...

Det gør ihvertfald ingen forskel hvis jeg ændrer på width og height.
Avatar billede kalleballe Nybegynder
01. oktober 2004 - 14:40 #17
okay, - den har I jo taget, - jeg må hellere sove, sorry
Avatar billede kalleballe Nybegynder
01. oktober 2004 - 14:51 #18
hehe, - det virker det var jo fordi at der også stod setPict i Barklunds kode ;)

go weeekend,- smid lige svar som I lyster!
Avatar billede barklund Nybegynder
01. oktober 2004 - 15:12 #19
Hehe, så skulle altid vist virke, jeg smider et lille svar :P
Avatar billede rohaje Nybegynder
01. oktober 2004 - 19:17 #20
her er også et svar :)
Avatar billede barklund Nybegynder
19. december 2006 - 14:35 #21
Taktak :)
Avatar billede rohaje Nybegynder
19. december 2006 - 15:12 #22
tak , er der jule oprydning :)
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