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

Discussione: attachMovie infinito

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,628

    attachMovie infinito

    COme posso fare in modo che il mio attachMovie non venga eseguito una sola volta ma in modo continuativo.

    Ad esempio se scrivo:

    valore = 0;
    onEnterFrame = function () {
    valore += 1;
    pippo.attachMovie("maschera", "nome", "valore");

    };

    Lui mi fa una sola volta attachMovie e basta, giustamente, perchè dopo il primo giro la mia istanza non si chiama più pippo ma "nome"....
    Ma come posso fare??

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Scusa ma la tua richiesta è contraddittoria :master:

    Lui mi fa una sola volta attachMovie e basta, giustamente, perchè dopo il primo giro la mia istanza non si chiama più pippo ma "nome"....
    Non è proprio così..

    Innanzitutto chiariamo meglio come aglisce il metodo attachMovie..

    tuo_mc.attachMovie(nomeId, nuovoNome, profonditàZ)

    Questo script dispone sullo stage, un'istanza del simbolo che sta nella libreria, identificato, per concatenamento, con nomeId.

    La nuova istanza sarà creata DENTRO un'istanza già esistente nello stage. In questo caso finirà dentro l'istanza tuo_mc.
    Alla nuova istanza sarà assegnato il nome identificato da nuovoNome e la profondità specificata.

    Nel tuo caso, dopo il primo giro, l'istanza pippo manterrà il suo nome.
    Il problema è che viene creata sempre un istanza a cui assegni, come nome istanza, il valore "nome".

    Il nome di ogni istanza è univoco (o perlomeno lo dovrebbe essere).

    Ovvero ci può essere solo un istanza chiamata "nome".
    Per questo il tuo ciclo non fa altro che "rimpiazzare" l'istanza "nome".

    Se vuoi creare più istanze dovrai assegnare nomi diversi ad ogniuna.
    Puoi ad es creare un nome indicizzato.

    Es:
    codice:
    valore = 0;
    onEnterFrame = function () {
    	valore += 1;
    	pippo.attachMovie("maschera", "nome"+valore, valore);
    	pippo["nome"+valore]._x = +10*valore;
    };
    Questo script dispone una serie di istanze indicizzate, i cui nomi saranno, nome1, nome2, nome3, ecc.

    Ad ogni istanza appena creata viene impostata la proprietà _x.
    Questa riga l'ho indicata giusto per farti notare come si può richiamare, in modo dinamico, il nome dell'istanza.

    Puoi ottenere lo stesso risultato con la funzione eval:

    eval("pippo.nome"+valore)

    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,628

    Re:

    Quel che vorrei poter ottenere è una moltitudine di istanze.

    Se tengo premuto un pulsante come faccio a fargli moltiplicare la presenza in scena di un'istanza fino a quando non rilascio il pulsante stesso???


    Grazie...

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Bhe bastava dirlo dall'inizio...

    Nella tua richiesta non hai parlato di premere pulsanti

    E poi non mi è ancora chiaro se vuoi applicare istanze di un simbolo richiamato dalla libreria o se vuoi duplicare un istanza presente nello stage.

    Che vuol dire "fargli moltiplicare la presenza in scena di un'istanza"???!!!

    Deduco che vuoi fare dei duplicati...o mi sbaglio?

    In tal caso dovresti utilizzare il metodo duplicateMovieClip e non attachMovie...

    Puoi utilizzare sempre lo stesso procedimento ma con le dovute modifiche.

    codice:
    valore = 0;
    duplica = false
    onEnterFrame = function () {
    	if (duplica) {
    		valore += 1;
    		pippo.duplicateMovieClip("istanzaDiPippo"+valore , valore );
    	}
    };
    A questo punto associa il seguente script ad un pulsante:

    codice:
    on (press) {
    	duplica = true;
    }
    on (release, dragOut) {
    	duplica = false;
    }
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,628

    Re:

    Ma perchè continua a darmi il valore in _x dell'istanza duplicata a 100 anche se metto 300????


    i=0;
    a.onPress=function(){
    i+=1;
    quadro.duplicateMovieClip("pippo"+i,i);
    _root.pippo[i]._x=300;
    trace(pippo1._x);
    }

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    :master: veramente molto strano........

    faccio delle prove poi ti dico...
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,628

    Re:

    100 è il valore in _x dell'istabza quadro.
    Ma quando io la duplico con nome pippo1 e gli scrivo

    pippo[i]._x=300;

    Non dovrebbe essere coe scrivere

    pippo1._x=300; ????

    E allora perchè non ci va???

  8. #8
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    No.. ecco il problema... e sbagliata la sintassi

    Dovresti scriverlo così:

    _root["pippo"+i]._x = 300;
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,628

    Re:

    Sì...ora funge

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,628

    Re:

    L'ho limato così che mi sembra + chiaro:


    i = 0;
    a.onPress = function() {
    nome="pippo"+i;
    quadro.duplicateMovieClip(nome, i);
    _root[nome]._x =300;
    };

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.