Avatar billede rookieboy Nybegynder
16. oktober 2007 - 14:07 Der er 2 kommentarer

Preloader med frossen player

Jeg er i gang med at lave et XML baseret billedgallery.
Den første del af koden som eksekveres, er et loop fra 0 til antal billeder fundet i XML filen.

Loopets funktion er, at attache movieclips svarende til antal billeder i galleriet og sætte properties og events på disse.

Dette loop, som tager 3-4 sekunder at gennemføre, fryser desværre flashplayeren, så jeg ikke kan lave en animeret preloader.

Mit spørgsmål går på: Hvorfor fryser flashplayer under eksekvering af loopet?
Avatar billede rookieboy Nybegynder
16. oktober 2007 - 14:11 #1
Jeg kan ikke paste hele koden her, men her er loopet det fryser flashplayer:

for (var i=0;i<totalImages;i++){
    this.thumbnails_mc.thumbnailImages_mc.attachMovie("imgHolder_mc","imgHolder"+i+"_mc",this.getNextHighestDepth()+i,{_x:Math.floor(posX),_y:Math.floor(posY)});
    base = this.thumbnails_mc.thumbnailImages_mc["imgHolder"+i+"_mc"];
       
            base.num.text = i;
            base.val = i;
            base.mask_mc._width = imgWidth;
            base.mask_mc._height = imgHeight;
            base.mask_mc._x = borderSizeX;
            base.mask_mc._y = borderSizeY;
            base.readMore_mc._x = borderSizeX;
            base.readMore_mc._y = frameHeight;
            base.readMore_mc._alpha = 0;
            base.readMore_mc.thetext.text = readMore.toUpperCase();
            base.readMore_mc.colorTo(readMoreColor,0,"Linear",0);
            base.frameMask_mc._width = frameHeight;
            base.frameMask_mc._height = frameHeight;
            base.frameSize_mc._width = frameWidth;
            base.frameSize_mc._height = frameHeight;
            base.border_mc._width = imgWidth+(borderSizeX*2);
            base.border_mc._height = imgHeight+(borderSizeY*2);
            base.img_mc._x = borderSizeX;
            base.img_mc._y = borderSizeY;
            base.timeglas_mc._x = Math.round(imgWidth/2 + base.timeglas_mc._width/2);
            base.timeglas_mc._y = Math.round(imgHeight/2 + base.timeglas_mc._height/2);
            base.caption._width = imgWidth;
            base.caption._height = 50;
            base.caption._x = borderSizeX;
            base.border_mc.colorTo(borderColor,0,"Linear",0);

            var borderHeightOriginal:Number = base.border_mc._yscale;
           

            // MOUSE EVENTS
            base.onRollOver = function(){
                this.border_mc.colorTo(borderHighlightColor,.85,"EaseOutExpo",0);
                this.readMore_mc.ySlideTo(frameHeight-20,1,"EaseOutSine",0);
                this.readMore_mc.alphaTo(100,.5,"EaseOutSine",0);
                this.border_mc.yScaleTo(Math.round(base.frameSize_mc._height*100),.5,"EaseOutExpo",0);
            } // end function
           
            base.onRollOut = base.onReleaseOutside = function(){
                this.border_mc.colorTo(borderColor,1,"EaseOutExpo",0);   
                this.border_mc.yScaleTo(borderHeightOriginal,.85,"EaseOutExpo",0);
                this.readMore_mc.ySlideTo(frameHeight+10,1,"EaseOutSine",.25);
                this.readMore_mc.alphaTo(0,.5,"EaseOutSine",0);
            } // end function
           
            base.onRelease = function(){
                LoadLargeImage(this.val);
            } // end function
           
            base.caption.text = trim(caption[i].toUpperCase());
            thumbnail_mcl.loadClip(thumbnail[i],base.img_mc);
           
                    // POSITIONERER MOVIECLIPS PÅ STAGE
                    if(imgCount == numberOfImagesPerRow){
                        posY += frameHeight+paddingY;   
                        posX = pWidth;
                        imgCount = 0;
                        colCount++;
                    } // end if
                    else{
                        posX += frameWidth+paddingX;
                    } // end else
                   
                    if (colCount == numCols){
                        colCount = 0;
                        pWidth += (frameWidth+paddingX)*numberOfImagesPerRow;
                        posX = pWidth;
                        posY = 0;
                    } // end if
                    imgCount++;
                               
    } // end for
} // end function
Avatar billede rookieboy Nybegynder
16. oktober 2007 - 14:27 #2
- LUKKET -

Årsagen til at flashplayer fryser, at jeg benytter tweens i loopet...
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