Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Matrice di immagini

  1. #1

    Matrice di immagini

    Ho un problema... Vorrei viualizzare delle immagini partendo da una matrice. Ho definito un puntatore per righe ("this.puntatore_param") che incremento quando raggiungo la fine della prima riga (array). Il problema è che continuando a cliccare sul pulsante destro ho un loop e si ripete la visualizzazione delle immagini della prima riga della matrice. Dove sbaglio?


    Codice PHP:
    this.rightButton_mc.onRelease = function()
        {    
            
    //Incremento del puntatore relativo all'array delle immagini
            
    this._parent.imagePointer ++;
            if(
    this._parent.imagePointer >= this._parent.fileNames_param.length) {
              
    this._parent.imagePointer 0;
              
    this.puntatore_param ++;
              
    trace(this.puntatore_param);
            };
            
            
    //Carico l'immagine successiva
            
    this.clearInterval(this.loadcompleteID);
            
    this._parent.loadNextImage();
            
            
    mySound.stop();
            
    //Per riportare il MC play_mc nella posizione iniziale
            
    _root.slideshow_mc.play_mc.gotoAndStop("play");
        } 

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Invece di?

  3. #3
    Invece di visualizzare le immagini della prima riga della matrice vorrei poter scandire tutta la matrice delle immagini. Il problema è che incremento il puntatore delle righe e non ho alcun effetto sul passaggio alla riga successiva della matrice....Non so proprio dove baglio...

  4. #4
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Ok. L'immagine da caricare viene decisa da:

    this.fileNames_param[this.imagePointer]

    this.fileNames_param è un array?

  5. #5
    Si esattamente. "This.fileName_param" è l'array contenente una riga della matrice "array_img". Il problema è che non riesco a passare alla seconda riga della matrice in modo automatico (cioè quando arrivo alla fine della prima riga); il problema è che il puntatore delle righe non si incrementa ("this.puntatore_param").

    Di seguito riporto l'intero script di interesse;

    codice:
    #initclip
    
    //Costruttore della classe "SlideShowClass"
    function SlideShowClass()
    {	this.init();
    }
    
    //Il componente "SlideShowClass" eredita i metodi e le proprietà
    // della classe "MovieClip()"; la riga successiva evita che la classe
    // "SlideShowClass" sovrascriva i metodi propri della classe "MovieClip"
    SlideShowClass.prototype = new MovieClip();
    
    //Inizializzazione del componente
    SlideShowClass.prototype.init = function()
    {
    	//Puntatore matrici dati
    	this.puntatore_param = puntatore;
    	
    	//Array dei file relativi alle immagini da visualizzare
    	this.fileNames_param = array_img[this.puntatore_param];
    	
    	//Array dei file mp3
    	this.mp3Names_param = array_mp3[this.puntatore_param];
    	
    	//Array dei tioli relativi alle immagini
    	this.imageTitles_param = array_titoli[this.puntatore_param];
    
    	//Path relativo alla directory delle immagini
    	this.directoryPath_param = path_img[this.puntatore_param];
    	
    	//Path relativo alla directory dei file mp3
    	this.directoryMP3_param = path_mp3[this.puntatore_param];
    	
    	//Dimensioni originali del box di visualizzazione (width, height)
    	this.origWidth = this.container_mc._width;
    	this.origHeight = this.container_mc._height;
    	
    	//Imposto il centro dell'immagine
    	this.center = this.container_mc._x + (this.origWidth / 2);
    		
    	//Puntatore all'array delle immagini
    	this.imagePointer = 0;
    	
    	//Caricamento della prima immagine
    	this.loadNextImage();
    	
    	//Creo un'istanza dell'oggetto "Sound"
    	mySound = new Sound();
    } // init
    
    
    //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;
    
    	this.container_mc.loadMovie(this.directoryPath_param + 
    					this.fileNames_param[this.imagePointer]);
    	
    	this.label_txt.text = this.imageTitles_param[this.imagePointer];
    	
    	//Numero progressivo dell'immagine
    	this.num_txt.text = this.imagePointer + 1;
    	
    	//Attesa per il caricamento dell'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.imagePointer -= 1;
    		if(this._parent.imagePointer < 0)
    		   this._parent.imagePointer = 0;
    		this._parent.loadNextImage();
    		
    		 mySound.stop();
    		 //Per riportare il MC play_mc nella posizione iniziale
    		 _root.slideshow_mc.play_mc.gotoAndStop("play");
    	}
    
    	
    	this.rightButton_mc.onRelease = function()
    	{	
    		//Incremento del puntatore relativo all'array delle immagini
    		this._parent.imagePointer ++;
    		if(this._parent.imagePointer >= this._parent.fileNames_param.length) {
    	      
    		  //puntatore righe (array)
    		  this._root.puntatore_param ++;
    		  
    		  //puntatore colonne (elementi array)
    		  this._parent.imagePointer = 0;
    		  
    		  
    		  
    		  //trace(this._root.puntatore_param);
    		};
    		
    		//Carico l'immagine successiva
    		this.clearInterval(this.loadcompleteID);
    		this._parent.loadNextImage();
    		
    		mySound.stop();
    		//Per riportare il MC play_mc nella posizione iniziale
    		_root.slideshow_mc.play_mc.gotoAndStop("play");
    	}
    	
    			
    	// Gestione del pulsante "home_mc"
    	this.homeButton_mc.onPress = function () {
    	    gotoAndStop("main");
    		mySound.stop();
    		//Per riportare il MC play_mc nella posizione iniziale
    		_root.slideshow_mc.play_mc.gotoAndStop("play");		
    	}
    	
    }
    
    ////////////////////////////////////////////////////////////
    //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)
    			{
    				//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
    			{
    				//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

  6. #6
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Non è che invece di:

    codice:
    this._root.puntatore_param++;
    sia:

    codice:
    this._parent.puntatore_param++;
    ?

  7. #7
    era una prova che avevo fatto...comunque non risolve il mio problema. Eppure dal punto di vista logico dovrebbe essere giusto quello che faccio! Quando arrivo alla fine del primo array (prima riga della matrice) incremento il puntatore delle righe (this._parent._puntatore_param ++) e azzero quello delle colonne. Invece di passare al successivo array, rimango nel primo array... C'è un modo furbo per referenziare le matrici? Non so proprio dove sbaglio...

  8. #8
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Ok, adesso ho visto.

    codice:
    this.rightButton_mc.onRelease = function()
    {    
    	//Incremento del puntatore relativo all'array delle immagini
    	this._parent.imagePointer ++;
    	if(this._parent.imagePointer >= this._parent.fileNames_param.length) {
    		this._parent.imagePointer = 0;
    		this._parent.puntatore_param++;
    		this._parent.fileNames_param = this._parent.array_img[this._parent.puntatore_param];
    	}
    	//Carico l'immagine successiva
    	this.clearInterval(this.loadcompleteID);
    	this._parent.loadNextImage();
    	mySound.stop();
    	//Per riportare il MC play_mc nella posizione iniziale
    	_root.slideshow_mc.play_mc.gotoAndStop("play");
    }

  9. #9
    Purtroppo ho ancora grossi problemi; a livello logico hai perfettamente ragione (aggiorno "fileNames_param"); ho aggiornato anche this.directoryPath_param in modo che il path sia giusto...ma niente da fare. Il problema è che non si aggiornano correttamente gli array del path immagini e delle immagini; una soluzione alternativa che mi viene in mente sarebbe quella di creare un unico array...ma poi perdo la suddivisione delle immagini...Secondo te esiste una soluzione semplice per risolvere questo problema? Ti ringrazio.

    codice:
    this.container_mc.loadMovie(this.directoryPath_param[this.puntatore_param] + 
    					this.fileNames_param[this.imagePointer]);

  10. #10
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Non capisco, mi mandi tutto il materiale?

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.