19. februar 2004 - 18:19
Der er
8 kommentarer
Skalere billede efter at være loadet ind i MovieClip
Jeg har først hentet mit billede ind i et MovieClip som et MovieClip loadMovie(_root.PicHref,"_root.Picture.Obj"); Nu vil jeg så gerne skalere det ned så det er max 100x100 pixel Hvordan gør jeg det? Jeg kan ikke hente billedets originale brede med: Brede=getProperty(,"_root.Picture.Obj,_width); Hvem kan hjælpe mig ?????
Annonceindlæg fra Netic
19. februar 2004 - 18:19
#1
Brede=getProperty(_root.Picture.Obj,_width);
19. februar 2004 - 18:37
#2
loadMovie(_root.PicHref, "root.Picture.Obj"); bredde = root.Picture.Obj._width; men du kan først få bredden, når billedet er loadet 100% ind.
19. februar 2004 - 18:42
#3
Det har jeg også haft prøvet... Så det er nok fordi det ikke er loadet ind :( Kan man ikke lave en funktion der venter til det er inde?
19. februar 2004 - 18:58
#4
Jo det kan du sagtens: MovieClip.prototype.loadImg = function(jpg) { var mc = this; mc.loadMovie(jpg); tmp = createEmptyMovieClip("tmp", 1); tmp.onEnterFrame = function() { this.procent = Math.floor((mc.getBytesLoaded()/mc.getBytesTotal())*100); if (this.procent == 100) { mc.scaleImg(); this.removeMovieClip(); } }; }; MovieClip.prototype.scaleImg = function() { bredde = this._width trace(bredde) }; _root.Picture.Obj.loadImg(_root.PicHref);
19. februar 2004 - 21:55
#5
cellb10ck>> er der nogen særlig grund til at du skriver: var mc = this; ? Kunne man godt bare bruge "this" i funktionen?
19. februar 2004 - 23:17
#6
... Det er meget mærkeligt - Det virker fint fra min maskine. Altså hvis jeg åbner HTML-filen fra harddisken. Hvis jeg kører den fra min IIS virker ikke - heller ikke på mit webhotel... Hvad skyldes det? Er det fordi svartiden er langsommere?
19. februar 2004 - 23:40
#7
gulekings>> det er fordi at inde i tmp.onEnterFrame functionen henviser this til '_level0.tmp' og ikke til '_root.Picture.Obj'. joch>> det lyder mærkeligt. Hvis det virker når du åbner den fra harddisken, burde det også virke alle andre steder. Prøv at udskriv procenterne til et tekstfelt, så du kan se om det loader som det skal: MovieClip.prototype.loadImg = function(jpg) { var mc = this; mc.loadMovie(jpg); tmp = createEmptyMovieClip("tmp", 1); tmp.onEnterFrame = function() { this.procent = Math.floor((mc.getBytesLoaded()/mc.getBytesTotal())*100); debug_txt.text = this.procent+"%"; if (this.procent == 100) { mc.scaleImg(); this.removeMovieClip(); } }; }; MovieClip.prototype.scaleImg = function() { bredde = this._x; }; _root.Picture.Obj.loadImg(_root.PicHref); createTextField("debug_txt", 10, 0, 0, 100, 20);
19. februar 2004 - 23:41
#8
bredde = this._x; skal selvfølgelig være bredde = this._width
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.