Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Resize dinamico di un'immagine all'occorrenza di un evento

    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:

    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();
    		
    };
    Per il ridimensionamento, a clip riprodotta, avevo pensato di inserire un flag nella procedura per il caricamento delle immagini:

    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
    Il problema fondamentale è quello di riscalare l'immagine già caricata nel MC quando termina l'esecuzione di una clip audio.

  2. #2
    Scusami ma non ho compreso pienamente la tua risposta;

    La situazione è la seguente:

    Inizialmente viene caricata un'immagine nel MC (container_mc) e quando termina l'esecuzione di una clip audio (attivata con il pulsante play) compare un pulsante "approfondisci"; io vorrei che l'immagine precedentemente caricata si riscalasse opportunamente in modo che il pulsante approfondisci non copra parte dell'immagine.

  3. #3
    Ho ancora un problemino (il resize funziona): come faccio a controllare che la clip audio sia terminata? Attualmente per far apparire il pulsante approfondisci uso il seguente codice che è associato al MC play_mc:

    codice:
    this.play_mc.onPress = function() {
      
      _global.mySound = new Sound();
      
      mySound.loadSound(this._parent._parent.directoryMP3_param + 
      this._parent._parent.mp3Names_param[this._parent._parent.p], false);
      
      mySound.start();
         
      //Visualizzazione del pulsante "approfondisci"
      mySound.onSoundComplete = function() {
      	  gotoAndStop("play");
          
    	  //Visualizzazione del pulsante "Approfondisci"
    	  _root.slideshow_mc.attachMovie("approfondisci2", "app", 5);
          _root.slideshow_mc.app._x = 115;
          _root.slideshow_mc.app._y = 195;	  	  
    	  _root.slideshow_mc.app._xscale = 120;
          _root.slideshow_mc.app._yscale = 125;
    	  
    	  //Azioni associate al pulsante "Approfondisci"
    	  _root.slideshow_mc.app.onPress = function() {
          	  _root.gotoAndStop("approfondisci");
    	  	  mySound.stop();
    	  	  //Per riportare il MC play_mc nella posizione iniziale
    	  	  _root.slideshow_mc.play_mc.gotoAndStop("play");
          }; 
    	    
      };    
      
      gotoAndStop("stop");
    }
    Dallo script principale come posso controllare che la clip audio è terminata? dopo questo problema ho risolto tutto. Grazie mille dei consigli MEYUMI!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.