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

    [flash mx] problema con recupero variabile bottone

    raga ho scaricato dal web un menu elastico chiamato tubslide
    adesso vorrei sapere
    come faccio a dire che quando clicco sulla tab1 va al fotogramma tre
    quando clicco sulla tab 2 va al fotogramma 4 e cosi via
    quasto è il codice
    codice:
    //
    // Questa Tabella mi fornisce lo stato di roll-Over sulle schede
    // che all'inizio è impostato su "False"
    stato = new Array(false, false, false, false);
    //
    // calcolo porzioni visibili e posizione orizzontale
    //  la porzione "media" rappresenta la parte visibile quando nessuna scheda è in "roll-over"
    //  la porzione "minima" è la parte visibile delle altre schede quando una è in roll-over
    //  la porzione "massima" è, ovviamente, rappresentata dalla larghezza di ogni scheda
    media = Stage.width / stato.length;			
    minima = (Stage.width - tab0._width) / (stato.length-1);
    massima = tab0._width;
    //trace("queste le dimensioni: "+media+"/"+minima+"/"+massima);
    //
    //	prototipo per il movimento decelerato 
    //
    MovieClip.prototype.muovi = function (traguardo, speed) { 
    	this.arrivato = false; 
    	this.onEnterFrame = function () { 
    		this._x = (traguardo - this._x) / speed + this._x; 
    		if (Math.abs(traguardo-this._x)<=0.5) {
    			this._x = traguardo;
    			this.arrivato = true; 
    		 	delete this.onEnterFrame;
    		}
    	} 
    }
    //
    // attivo i pulsanti delle schede (i clip sono nominati "tab0", "tab1" e così via...)
    //
    for (i=0; i<stato.length; i++) {
    
    
    
    	// al roll-over imposto il corrispondente elemento nella tabella Stato = true
    	this["tab"+i].onRollOver = function() {
    		
    		ind = this._name.substr(3, 1);
    		stato[ind] = true;
    	}
    	// al roll-out imposto il corrispondente elemento nella tabella Stato = false
    	this["tab"+i].onRollOut = function() {
    		ind = this._name.substr(3, 1);
    		stato[ind] = false;
    	}
    }
    //
    //	Questa funzione scandisce la tabella di stato è mi fornisce
    //	-1 	qualora nessun clip sia in stato di roll-over
    //   n	il numero del clip in stato di roll-over
    //
    testato = function() {
    	// preimposto il risultato a -1 (nessun roll-over)
    	risultato = -1;		
    	for (i=0; i<stato.length; i++) {
    		if (stato[i]) {
    			risultato = i;
    		}
    	}
    	return risultato;
    }
    //
    _root.onEnterFrame = function () { 
    	// verifico lo stato delle schede
    		mousopra = testato(); 
    		if (mousopra != -1) {
    			//trace("il mouse è sopra un elemento");
    			for (z=0; z<stato.length; z++) {
    				if (z <= mousopra) {
    					this["tab"+z].muovi(z*minima, 5);
    				} else {
    					this["tab"+z].muovi(z*minima+massima-minima, 5);
    				}
    			}
    		} else {
    			//trace("il mouse è fuori");
    			for (z=0; z<stato.length; z++) {
    				this["tab"+z].muovi(z*media,5);
    
    			}
    		}
    }
    //
    sicuramente dovrei inserire qualcosa qui
    io avevo pensato a una cosa del genere solo che non va
    codice:
    	this["tab"+i].onPress = function() {
    		if(i=1)
    		{
    		gotoAndStop(110);
    	}
    	}
    sicuramente non riconosce il nome del tab e quindi non funziona
    sto adesso imparando actionscript quindi chiedo aiuto a voi
    ciao

  2. #2
    Utente di HTML.it L'avatar di §elva
    Registrato dal
    Nov 2006
    Messaggi
    607
    this["tab"+i].onPress = function() {
    if(i=1)
    {
    gotoAndStop(110);
    }
    }
    nel controllo if se vuoi verificare una uguaglianza devi usare il doppio "=" (==)..
    un solo "=" serve per fare una assegnazione alla variabile..
    poi dove hai inserito quel codice?
    è contenuto in un ciclo?

    comunque se i tuoi pulsanti sono solo 4 potresti fare una cosa piu semplice, senza l'ausiglio di cicli..
    Codice PHP:
    function pulsante(MC:MovieClipframe:Number) {
        
    MC.onPress = function() {
            
    _root.gotoAndStop(frame);
        };

    poi richiami la funzione per i singoli pulsanti
    Codice PHP:
    pulsante(_root.tab12);
    pulsante(_root.tab23);
    //e cosi via.. 
    da sempre l'ignoranza fa paura, ma il silenzio è uguale a morte

  3. #3
    ciao §elva solo oggi ho letto il post.
    grazie per avermi rispossto...
    ho provato come dici tu ma non va !
    questo è il codice
    codice:
    //
    // Questa Tabella mi fornisce lo stato di roll-Over sulle schede
    // che all'inizio è impostato su "False"
    stato = new Array(false, false, false, false);
    //
    // calcolo porzioni visibili e posizione orizzontale
    //  la porzione "media" rappresenta la parte visibile quando nessuna scheda è in "roll-over"
    //  la porzione "minima" è la parte visibile delle altre schede quando una è in roll-over
    //  la porzione "massima" è, ovviamente, rappresentata dalla larghezza di ogni scheda
    media = Stage.width / stato.length;			
    minima = (Stage.width - tab0._width) / (stato.length-1);
    massima = tab0._width;
    //trace("queste le dimensioni: "+media+"/"+minima+"/"+massima);
    //
    //	prototipo per il movimento decelerato 
    //
    MovieClip.prototype.muovi = function (traguardo, speed) { 
    	this.arrivato = false; 
    	this.onEnterFrame = function () { 
    		this._x = (traguardo - this._x) / speed + this._x; 
    		if (Math.abs(traguardo-this._x)<=0.5) {
    			this._x = traguardo;
    			this.arrivato = true; 
    		 	delete this.onEnterFrame;
    		}
    	} 
    }
    //
    // attivo i pulsanti delle schede (i clip sono nominati "tab0", "tab1" e così via...)
    //
    for (i=0; i<stato.length; i++) {
    
    
    
    	// al roll-over imposto il corrispondente elemento nella tabella Stato = true
    	this["tab"+i].onRollOver = function() {
    		
    		ind = this._name.substr(3, 1);
    		stato[ind] = true;
    		
    	}
    	function pulsante(MC:MovieClip, frame:Number) {
        MC.onPress = function() {
            _root.gotoAndStop(frame);
        };
    }
    pulsante(_root.tab1, 2);
    pulsante(_root.tab2, 3); 
    	// al roll-out imposto il corrispondente elemento nella tabella Stato = false
    	this["tab"+i].onRollOut = function() {
    		ind = this._name.substr(3, 1);
    		stato[ind] = false;
    	}
    }
    //
    //	Questa funzione scandisce la tabella di stato è mi fornisce
    //	-1 	qualora nessun clip sia in stato di roll-over
    //   n	il numero del clip in stato di roll-over
    //
    testato = function() {
    	// preimposto il risultato a -1 (nessun roll-over)
    	risultato = -1;		
    	for (i=0; i<stato.length; i++) {
    		if (stato[i]) {
    			risultato = i;
    		}
    	}
    	return risultato;
    }
    //
    _root.onEnterFrame = function () { 
    	// verifico lo stato delle schede
    		mousopra = testato(); 
    		if (mousopra != -1) {
    			//trace("il mouse è sopra un elemento");
    			for (z=0; z<stato.length; z++) {
    				if (z <= mousopra) {
    					this["tab"+z].muovi(z*minima, 5);
    				} else {
    					this["tab"+z].muovi(z*minima+massima-minima, 5);
    				}
    			}
    		} else {
    			//trace("il mouse è fuori");
    			for (z=0; z<stato.length; z++) {
    				this["tab"+z].muovi(z*media,5);
    
    			}
    		}
    }
    //
    ho inserito la parte che dicevi tu in php linguaggio che premetto di non conoscerlo proprio.
    ecco la tua parte
    codice:
    function pulsante(MC:MovieClip, frame:Number) {
        MC.onPress = function() {
            _root.gotoAndStop(frame);
        };
    }
    pulsante(_root.tab1, 2);
    pulsante(_root.tab2, 3);
    quano clicco sui tab1 e 2 non accade nulla
    forse perchè non ho capito come devo mandare al fotogramma giusto..
    quando dici
    codice:
    pulsante(_root.tab1, 2);
    pulsante(_root.tab2, 3);
    come faccio a dire che quando clicco sul tab1 va al fotogramma 110
    quando sul tab2 va al fotogramma 115
    e cosi via
    dove devo inserirlo?
    ti prego aiutami
    perchèp voglio imparare
    ciao e grazie

  4. #4
    Utente di HTML.it L'avatar di §elva
    Registrato dal
    Nov 2006
    Messaggi
    607
    ho inserito la parte che dicevi tu in php linguaggio che premetto di non conoscerlo proprio.
    php?? nono niente php
    copi il codice e lo inserisci nelo stage sotto il codice da te postato..

    Codice PHP:
    function pulsante(MC:MovieClipframe:Number) {
        
    MC.onPress = function() {
            
    _root.gotoAndStop(frame);
        };
    }
    pulsante(_root.tab1110); //110= numero del frame..
    pulsante(_root.tab2115); //115.. 
    da sempre l'ignoranza fa paura, ma il silenzio è uguale a morte

  5. #5
    selva funziona tutto
    grazie mille per l'aiuto...
    sono debitore anche se non credo di poterti essere mai d'aiuto visto che tu sei più bravo di me
    ciao e grazie di nuovo

  6. #6
    Utente di HTML.it L'avatar di §elva
    Registrato dal
    Nov 2006
    Messaggi
    607
    di nulla ;D

    da sempre l'ignoranza fa paura, ma il silenzio è uguale a morte

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.