Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    106

    Sintassi corretta per lettura variabili

    Salve a tutti. Nel mio filmato ho una clip vuota dove carico con dei loadmovie alcuni SWF esterni. All'ultimo frame di questi SWF esterni leggo una variabile, che ho valorizzato però nel filmato principale. In base alla variabile lancio un SWF sempre nel clip vuoto del filmato principale. Questo è un esempio del codice:

    if (_root._global.myVar2 == "clip1"){_root.clip_vuoto.loadmovie("clip1.swf ");}

    E' corretta questa sintassi?
    A me non funziona...
    Nel resto del progetto c'è altro codice che potrebbe causare il problema ma per adesso mi interessa sapere cosa sto sbagliando in questo specifico caso.
    Heeeeeelp!
    Grassie

  2. #2
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Dovresti correggerla così:

    if (_level0.myVar2 == "clip1"){_root.clip_vuoto.loadmovie("clip1.swf ");}

    e ricordarti di richiamare e modificare, quella variabile, sempre con il percorso completo _level0.myVar2

    Questo per ovviare al fatto che hai più swf annidati...

    Altrimenti puoi sostituire il controllo "if" con questo:

    _root.clip_vuoto.loadmovie(_level0.myVar2+".swf");
    FaX

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    106
    Ciao. Intanto grazie per la risposta. Purtroppo posso provare solo stanotte il codice che mi hai suggerito. Nel frattempo vorrei capirne però la logica. Il level0 cosa rappresenta esattamente? Il filmato principale o un livello dell'SWF esterno? Il mio SWF esterno deve leggere una variabile proveniente dal filmato principale.
    Con _root avrei fatto riferimento all'swf esterno?
    Ciao e grazie ancora

  4. #4
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    con _root vai alla linea temporale principale del filmato "padre" solo se i filmati esterni li richiami con il loadMovie altrimenti, se li richiami con il loadMovieNum devi utilizzare il _level0 perché il _root ti porterebbe alla linea temporale principale del filmato in cui si trova la chiamata.
    FaX

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    106
    Ciao e grazie ancora. Quindi dovrei usare _root e non _level0? Uhm... mi sto perdendo. Ho fatto delle prove e mi sa che mi sono arenato nella lettura delle variabili.
    Dunque la mia situazione è questa. In un filmato "padre" ho tre pulsanti e una clip vuota, + tre SWF esterni da caricare all'occorrenza nella clip vuota.

    Al release di ogni pulsante faccio la seguente:
    1) valorizzo una variabile VAR1. A questa variabile associo il nome dell'SWF esterno che voglio lanciare
    2) dico al filmato di andare al frame 10 dell'SWF esterno attualmente visualizzato (al frame 10 parte l'animazione di chiusura dell'SWF visualizzato)

    Negli SWF esterni invece:
    3) al primo frame valorizzo una variabile VAR2 che mi identifica quel filmato così al passo 2 posso sapere quale filmato portare al frame 10.
    4) nell'ultimo frame gli dico di controllare la variabile VAR1 (proveniente dal filmato principale) e con degli IF gli dico "Se VAR1 è uguale a PIPPO carica Pippo.SWF nella clip vuota del filmato principale".

    Tutto questo per ottenere che il filmato attualmente visualizzato faccia un effetto di uscita e carichi il nuovo filmato.

    Indi, come faccio a realizzare i punti 2 e 4 considerando che Var2 viene generata dal filmato esterno e Var1 dal filmato principale? Non so se sono stato chiaro ma in caso ti preeeeeeeeeeeeego fammi sapere.
    Grazie per la pazienza e ciao

  6. #6
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685


    Io la farei più semplice.

    Metti questa funzione nella timeline dove si trovano i pulsanti:

    codice:
    function apri_sezione(filmato,pulsante){
    	filmato_richiamato=filmato+".swf";
    	eval(pulsante).enabled=false;
    	if(filmato_richiamato_temp==undefined){
    		loader_filmato.loadMovie(filmato_richiamato);
    		pulsante_temp=pulsante;
    		filmato_richiamato_temp=filmato_richiamato;
    	}else{
    		this.onEnterFrame=function(){
    			if(loader_filmato._currentframe<loader_filmato._totalframes){
    				loader_filmato.play();
    			}else{
    				delete this.onEnterFrame;
    				loader_filmato.loadMovie(filmato_richiamato);
    				eval(pulsante_temp).enabled=true;
    				pulsante_temp=pulsante;
    				filmato_richiamato_temp=filmato_richiamato;
    			}
    		}
    	}
    }
    I pulsanti devono avere comportamento movieclip e gli assegni un nome composto che mantenga la stessa struttura; ad esempio:

    pulsante_uno, pulsante_due, ecc.

    Poi, ad ogni pulsante, puoi mettere questo evento:

    codice:
    on(release){
    	nome=_name; // es. pulsante_uno
    	numero=nome.split("pulsante_").join(""); // es. uno
    	_parent.apri_sezione(numero,nome);
    }
    Naturalmente, per farlo funzionare correttamente, è necessario che i filmati che richiami abbiamo il nome uguale alla stringa che concateni nel nome del pulsante.

    Prova a vedere se riesci ad utilizzare queste azioni.
    FaX

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    106
    Azz... che codice Intanto ti ringrazio per la tua disponibilità. Adesso devo mettermi a studiare il tuo esempio che ha una logica differente da quella che avevo immaginato io. Da scarso conoscitore di action script avevo già fatto fatica a partorire quell'impostazione. Gli do un'occhiata ed eventualmente torno a bussare. In definitiva quindi mi sconsigli la logica da me pensata?
    Grazie ancora

  8. #8
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Io la sconsiglio perché è troppo macchinosa e perché il codice si sparge troppo.
    Il mio suggerimento, con un po' di lavoro in più, si potrebbe ottimizzare ancora meglio ma, secondo me, può già essere una buona soluzione. Come ho detto, l'unico accorgimento, è quello di assegnare un nome ai pulsanti: formato da una stringa, tipo "pulsante_" + il nome del filmato che deve richiamare. Ad esempio "pulsante_prodotti" se deve richiamare il filmato prodotti.
    FaX

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.