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

    menu' + file di testo esterno

    Ciao a tutti, ho creato un pulsante e con un ciclo lo duplico tot volte dalla libreria:

    pulsanti = 8;

    for (i=0; i<=pulsanti-1; i++) {
    _root.attachMovie("pulsante", "pulsante"+i, i);
    _root["pulsante"+i]._x = 100;
    _root["pulsante"+i]._y = i*28;
    }

    e fino a qui tutto ok, ora dovrei fare alcune modifiche.
    Vorrei fare in modo che il primo pulsante carichi, ad esempio, un swf esterno chiamato filmato1, il secondo filmato2, il terzo filmato3 e così via.

    aggiungo quindi questo codice

    pulsanti = 8;

    for (i=0; i<=pulsanti-1; i++) {
    _root.attachMovie("pulsante", "pulsante"+i, i);
    _root["pulsante"+i]._x = 100;
    _root["pulsante"+i]._y = i*28;
    _root["pulsante"+i].onRelease = function() {
    esterni.loadMovie("filmato_"+i+".swf");
    };
    }

    ma, ovviamente non funziona... non sono una cima in as, qualcuno mi può spiegare come fare? E poi possibile inserire nel pulsante un campo di testo dinamico e caricare, da un file di testo esterno, le etichette dei pulsanti. Se ad esempio ho 10 pulsanti vorrei specificare nel file di testo 10 stringhe che dovrebbero essere caricate, una per ogni pulsante.
    Grazie mille, buon fine settimana.
    Sumopower

  2. #2
    si, puoi inserire dati presi da un txt esterno x dare il nome ai pulsanti in un campo di testo dinamico... prima xò, dovresti sistemare il codice, memorizzando una varibile x ogni clip x salvare il valore di "i" altrimenti quando clicchi il pulsante "i" avrà sempre valore 7, cioè il valore incrementato di "i" al momento del click, facendo quindi:

    for (i=0; i<=pulsanti-1; i++) {
    _root.attachMovie("pulsante", "pulsante"+i, i);
    _root["pulsante"+i]._x = 100;
    _root["pulsante"+i]._y = i*28;
    _root["pulsante"+i].n = i;
    _root["pulsante"+i].onRelease = function() {
    esterni.loadMovie("filmato_"+this.n+".swf");
    };
    }

    se esteri è l'istanza di un MC in cui vuoi caricare l'swf selezionato, dovresti mettere il percorso relativo alla root, altrimenti così vede questo percorso:

    pulsante.esterni

    sostituendo quindi:

    _root.esterni.loadMovie();

    // sempre se esterni sta in root...

  3. #3
    grazie mille, mi sai dire anche come impostare il file di testo per dare il nome ai pulsati? intanto grazie mille!!!
    Sumopower

  4. #4

  5. #5
    sono ancora io, ho modificato il codice come mi hai detto tu:

    pulsanti = 20;

    for (i=0; i<pulsanti; i++) {
    duplicateMovieClip("pulsanti", "pulsante"+i, i);
    _root["pulsante"+i]._x = 20;
    _root["pulsante"+i]._y = 50+i*13;
    _root["pulsante"+i].n = i;
    _root["pulsante"+i].onRelease = function() {
    root.esterni.esterni.loadMovie("filmato_"+this.n+" .swf");
    };
    }

    ma succede una cosa strana. Il movieclip esterni è nella root principale. Lo script funziona perchè se, ad esempio clicco, sul secondo pulsante, se il filmato "filmato_2.swf" non è presente nella directory del menu' ufficiale mi da errore. Tuttavia, se il filmato è presente, l'errore non me lo da ma non me lo carica nemmeno.

    Poi vorrei anche capire dove infilare il codice per leggere dal file di testo le etichette dei pulsanti, devono sempre stare all'interno del ciclo?

    grazie ancora
    Sumopower

  6. #6
    ciao,

    se il tuo file txt è questo:

    &pulsanti=20&
    &puls0=home&
    &puls1=profilo&
    &puls2=contatti&
    &puls3=guestbook&
    &puls4=forum&
    ...

    dovresti fare una cosa del genere:
    codice:
    txt = new LoadVars();
    txt.onLoad = function(success)
    {
    	if(success)
    	{
    		for(i=0; i<txt.pulsanti; i++){
    			duplicateMovieClip("pulsanti", "puls"+i, i);
    			_root["puls"+i]._x = 20;
    			_root["puls"+i]._y = 50+i*13;
    			_root["puls"+i].n = i;
    			// qui assegni il nome al campo di testo
    			_root["puls"+i].istanza_campo_di_testo.text = txt['puls'+i];
    			_root["puls"+i].onRelease = function() {
    			root.esterni.esterni.loadMovie("filmato_"+this.n+".swf");
    		}
    	}
    }
    è giusto il ripetersi di => esterni.esterni ?

  7. #7
    cavolo, invece che fare progressi torno indietro
    Ho provato a seguire i tuoi suggerimenti ma non riesco non solo a leggere i dati dal txt ma nemmeno più a duplicare i pulsanti. Il codice è questo:

    ----------------------------------------
    pulsanti.txt = new LoadVars
    txt.onLoad = function(success) {
    duplicateMovieClip("pulsanti", "puls"+i, i);
    if (success) {
    for (i=0; i<txt.pulsanti; i++) {
    _root["puls"+i]._x = 20;
    _root["puls"+i]._y = 50+i*13;
    _root["puls"+i].n = i;
    _root["puls"+i].etichetta.text = txt['puls'+i];
    _root["puls"+i].onRelease = function() {
    root.esterni.loadMovie("filmato_"+this.n+".swf");
    };
    };
    };
    }
    ----------------------------------------

    il file "pulsanti.txt" è così:

    pulsanti=5&
    &puls0=uno&
    &puls1=due&
    &puls2=tre&
    &puls3=quattro&
    &puls4=cinque&
    &puls5=sei&

    ---------------------------------

    ma quando lancio il movie non accade nulla... ho messo on-line il fla, se hai tempo di darci uno sguardo e magari dirmi dove sbaglio...grazie mille! www.mediatarab.it/menu.zip
    Sumopower

  8. #8
    controlla la sintassi, hai sbagliato delle cose come l'inizializzazione dell'oggetto LoadVars che mancano le ()

    non duplichi i pulsanti xchè hai spostato il duplicateMovieClip("pulsanti", "puls"+i, i); dal ciclo for ad ancora prima del controllo sui dati caricati... ricontrolla il tuo codice con quello che ti ho postato io.

  9. #9
    sto provando ma non funziona...


    pulsanti.txt = new LoadVars();
    pulsanti.txt.onLoad = function(success)
    {
    if(success)
    {
    for(i=0; i<pulsanti.txt.pulsanti; i++){
    duplicateMovieClip("pulsanti", "puls"+i, i);
    _root["puls"+i]._x = 20;
    _root["puls"+i]._y = 50+i*13;
    _root["puls"+i].n = i;
    // qui assegni il nome al campo di testo
    _root["puls"+i].istanza_campo_di_testo.text = txt['puls'+i];
    _root["puls"+i].onRelease = function() {
    root.esterni.esterni.loadMovie("filmato_"+this.n+" .swf");
    }
    }
    }
    }

    Che errori ci sono? In pratica il duplicateMovieClip avviene solo se il file txt è caricato giusto? E questa riga a che serve? _root["puls"+i].n = i; ?
    Sumopower

  10. #10
    come ho scritto sopra, serve x salvare il valore di i rispetto al singolo pulsante, altrimenti al momento del click sul pulsante, i è = a 7.

    spero tu abbia sostituito:
    istanza_campo_di_testo
    con l'istanza che hai dato tu...

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.