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

    Passare una variabile alla fine di un movie

    In giro trovo tanti tutorial grafici ma nulla sulle tecniche di base.

    Ecco il caso:

    Ad ogni istanza del pulsante menu (tranne 'gallery') deve partire un animazione ('rettangolo') alla fine della quale si deve aprire il relativo filmato esterno ('loadMovieNum (nome + ".swf", 1);').



    Al movieclip dei pulsanti è applicato:

    onClipEvent (mouseDown) {
    if (this.hitTest(_root._xmouse, _root._ymouse, false)) {
    _root.comandi(_parent._name);
    }
    }

    In questo modo passo il nome dell'istanza che identifica il nome del Movie da caricare.
    Nella root invece troviamo:

    codice:
    ultimo = "home";
    
    function comandi (nome) {
    if (nome != ultimo) {
    if (nome == "home") {
    unloadMovieNum (1);
    } else {
    if (nome != "gallery") { // unico movie con eccezione
    
    // qui dovrei far partire l'animazione del rettangolo:
    
    _root.rettangolo.nextFrame(); 
    // il f. 1 è su stop, gli altri 
    // animano il rettangolo 
    // fino al f.11
    
    if (/* arrivati al frame 11 */) {
    loadMovieNum (nome + ".swf", 1);
    }
    } else { // se l'istanza è gallery non c'è animazione
    loadMovieNum (nome + ".swf", 1);
    }
    ultimo = nome;
    }
    }
    }


    questo è un problema banale per un programmatore. Ma di fatti non conosco la sua soluzione. Dove posso apprendere le tecniche di base? Devo leggermi tutte le funzioni di ActionScript?
    Arjuna

    finding solutions

  2. #2

    Re: Passare una variabile alla fine di un movie

    Ci sono arrivato ma non mi sembra una cosa pulita.

    Ecco qui:

    sul primo frame:

    codice:
    ultimo = "home";
    
    // la variabile globale 
    // è quello che mi serviva 
    // per passare il dato 
    // alla fine del movieclip
    _global.nome = "";
    
    function comandi(nome) {
    	if (nome != ultimo) {
    		if (nome == "home") {
    			unloadMovieNum(1);
    		} else {
    			if (nome != "gallery") {
    				_global.nome = nome;
    				_root.rettangolo.nextFrame();
    			} else {
    				loadMovieNum(nome+".swf", 1);
    			}
    			ultimo = nome;
    		}
    	}
    }
    alla fine dell'animazione del rettangolo c'è: loadMovieNum (_global.nome + ".swf", 1);

    in questo modo tutto funge.

    Ma non mi sembra buono riemprire lo script di variabili globali...
    Arjuna

    finding solutions

  3. #3
    Ecco la versione definitiva:

    codice:
    ultimo = "home";
    _global.nome = "";
    _root.rettangolo.stop();
    
    function comandi(nome) {
    	if (nome != ultimo) {
    		if (nome == "home") {
    			unloadMovieNum(1);
    		} else {
    // questo punto mi è poco chiaro
    // non capisco se name è la stessa variabile
    // di _global.name 
    			_global.nome = nome;
    // se f=1 significa che non è mai stato avviato il mc
    			if (_root.rettangolo._currentframe==1) {
    				_root.rettangolo.gotoAndPlay(1);
    
    // questo serve nel caso l'animazione
    // sia ancora in atto
    // ma non funge come dovrebbe
    			} else if (_root.rettangolo._currentframe<10) {
    				gotoAndPlay ((20)-(_root.rettangolo._currentframe));
    
    // in questo caso non è la prima colta
    // che viene richiamato lo script
    			} else if (_root.rettangolo._currentframe==10) {
    				_root.rettangolo.gotoAndPlay(11);
    
    // questo caso si verifica se ultimo =gallery
    // in quanto gallery non fa partire il movie
    			} else if (_root.rettangolo._currentframe==20) {
    				unloadMovieNum(1);
    				_root.rettangolo.gotoAndPlay(1);
    			}
    		}
    		ultimo = nome;
    	}
    }
    il mc rettangolo conta di 20 frame

    nei primi 10 si espande il rettangolo, negli altri 10 si contrae.

    al frame 10 è associato:

    loadMovieNum (nome + ".swf", 1);
    stop();

    al frame 11:

    unloadMovieNum(1);

    e al frame 20:

    if (nome != "gallery") {
    gotoAndPlay(1);
    } else {
    loadMovieNum (nome + ".swf", 1);
    stop ();
    }

    ci sono molte cose che ancora mi sfuggono... spero che qualcuno possa indicarmi cosa studiare per migliorare le mie prestazioni
    Arjuna

    finding solutions

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.