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?
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