Ho il seguente problema:
vorrei ridimensionare un'immagine all'occorrenza di un evento (completamento di una clip audio); il problema è che il programma è molto complesso e non so come agire...Riporto il codice relativo al caricamento delle immagini:
Per il ridimensionamento, a clip riprodotta, avevo pensato di inserire un flag nella procedura per il caricamento delle immagini:codice://Caricamento dell'immagine successiva nel container "MovieClip" SlideShowClass.prototype.loadNextImage = function() { //Impongo una trasparenza nulla al caricamento dell'immagine in modo //da non vedere lo sfarfallio this.container_mc._alpha = 0; //Carico l'immagine nel contenitore this.container_mc.loadMovie(this.directoryPath_param+this.fileNames_param[this.p]); //Titolo Opera this.label_txt.text = this.imageTitles_param[this.p]; //Attesa caricamento immagine clearInterval(this.loadNextID); this.loadCompleteID = setInterval(this, "waitForLoadedImage", 100); ///////////////////////////////////////////////////////////// // Azioni per i pulsanti "leftButton_mc" e "rightButton_mc"// ///////////////////////////////////////////////////////////// this.leftButton_mc.onRelease = function() { this.clearInterval(this.loadcompleteID); this._parent.p -= 1; puntatore -= 1; if (this._parent.p <= 0) { this._parent.p = array_img.length - 1; this._parent.num_txt.text = array_img.length; puntatore = array_img.length - 1; } this._parent.loadNextImage(); mySound.stop(); //Decremento contatore immagini this._parent.num_txt.text --; //Per riportare il MC "play_mc" nella posizione iniziale di "play" _root.slideshow_mc.play_mc.gotoAndStop("play"); //Rimozione del pulsante Approfondisci removeMovieClip(_root.slideshow_mc.app); }; this.rightButton_mc.onRelease = function() { //Incremento puntatore generale this._parent.p++; puntatore ++; if (this._parent.p >= this._parent.fileNames_param.length) { //se sono arrivato alla fine dell'array immagini riparto dall'inizio this._parent.p = 0; this._parent.num_txt.text = 0; puntatore = 0; } //Carico l'immagine successiva this.clearInterval(this.loadcompleteID); this._parent.loadNextImage(); mySound.stop(); //Contatore Immagini this._parent.num_txt.text++; //Per riportare il MC play_mc nella posizione iniziale _root.slideshow_mc.play_mc.gotoAndStop("play"); //Rimozione del pulsante Approfondisci removeMovieClip(_root.slideshow_mc.app); }; // Gestione del pulsante "home_mc" this.homeButton_mc.onPress = function() { gotoAndStop(stanza_target); mySound.stop(); //Per riportare il MC play_mc nella posizione iniziale _root.slideshow_mc.play_mc.gotoAndStop("play"); }; _root.slideshow_mc.freccia.removeMovieClip(); };
Il problema fondamentale è quello di riscalare l'immagine già caricata nel MC quando termina l'esecuzione di una clip audio.codice://////////////////////////////////////////////////////////// //Attesa per il caricamento dell'immagine; ridimensionamento //e conteggio per il successivo caricamento //////////////////////////////////////////////////////////// SlideShowClass.prototype.waitForLoadedImage = function() { if (this.container_mc.getBytesLoaded()>4 && this.container_mc.getBytesLoaded() == this.container_mc.getBytesTotal()) { clearInterval(this.loadCompleteID); //Scala originale this.container_mc._xscale = this.container_mc._yscale=100; // Controllo per le immagini oversized if (this.container_mc._width>this.origWidth || this.container_mc._width>this.origHeight) { var wRatio = this.origWidth/this.container_mc._width; var hRatio = this.origHeight/this.container_mc._height; //Controllo se l'immagine Ë troppo larga o troppo alta if (wRatio<hRatio) { if (resize) { this.container_mc._width *= wRatio*0.8; this.container_mc._height *= wRatio*0.8; } else { //too wide, shrink to fit width this.container_mc._width *= wRatio; this.container_mc._height *= wRatio; } this.container_mc._x = ((this.origWidth-this.container_mc._width)/2); } else { if (resize) { this.container_mc._width *= hRatio*0.8; this.container_mc._height *= hRatio*0.8; } else { //too wide, shrink to fit height this.container_mc._width *= hRatio; this.container_mc._height *= hRatio; } this.container_mc._x = ((this.origWidth-this.container_mc._width)/2); } // if-else //Riposizionamento del centro dell'immagine this.container_mc._x = this.center-(this.container_mc._width/2); //trasparenza massima quando riposiziono il centro dell'immagine this.container_mc._alpha = 100; } // if oversized } // if loaded }; // waitForLoadedImage Object.registerClass("FSlideShowSymbol", SlideShowClass); #endinitclip

Rispondi quotando