Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di c3k
    Registrato dal
    Jan 2002
    Messaggi
    42

    setInterval e target aiuto!

    ho una funzione nella _root del filmato:

    function beat(whereis){...}

    questa funzione viene richiamata da una serie di mc duplicati per modificarne il contenuto, quindi ho scelto di passare come parametro il nome del movieclip per identificarli,
    quindi all'interno del movieclip richiamo:

    setInterval(_parent.beat, 100, this._name);

    il problema, per me, è capire da 'dove' viene eseguita la funzione e di conseguenza raggiungere il movieclip da modificare con un percorso relativo

    ad esempio per raggiungere una variabile all'interno del movieclip pensavo di fare così:

    this[whereis].variabile

    il che funziona richiamando la funzione da dentro il movieclip normalmente

    beat(this._name);

    ma non con il setInterval...la variabile viene passata correttamente in entrambi i casi ma la funzione sembra eseguita da 'posizioni' diverse

    qualcuno sa dirmi il perchè e/o darmi un cosnsiglio?

  2. #2
    Certo che "sembra eseguita da 'posizioni' diverse "
    se l'intervallo viene attivato da più parti, il parametro "whereis" sarà continuamente modificato.

    Se quello che vuoi eseguire è una funzione ripetitiva ti conviene definire un "prototype" e in esso attivare un evento "enterFrame"
    quindi richiamare il prototipo.
    p.es.
    codice:
    MovieClip.prototype.beat = function () { 
       this.onEnterFrame = function () { 
           ... istruzioni da eseguire...
       }
    }
    Il prototipo verrà richiamato con...
    clip01.beat();

  3. #3
    Utente di HTML.it L'avatar di c3k
    Registrato dal
    Jan 2002
    Messaggi
    42
    ciao pasavign,

    grazie per la risposta lampo!

    all'inizio avevo usato un metodo simile a quello che hai proposto tu (la funzione era nell'enterframe) ma ho riscritto il tutto usando il setInterval per non essere legato alla frequenza di fps per l'intervallo e avere la possibilità di collegarlo a una variabile.

    è vero che l'intervallo verrà attivato da più parti ma ognuna farà riferimento a un mc differente e immaginavo che chiamare la stessa funzione da diversi setInterval non creasse confusione (in quanto il parametro whereis esiste per la sola durata dell'esecuzione della funzione e ogni chiamata è indipendente da l'altra, è così?)

    comunque al di là di tutto il problema, se ho capito bene cosa vuoi dire, non è lì...perché al momento non sono ancora arrivato a duplicare il filmato e sto facendo le prove con un solo mc...

  4. #4
    Utente di HTML.it L'avatar di c3k
    Registrato dal
    Jan 2002
    Messaggi
    42

    risolto! (thanks to more)

    mi è bastato passare this anzichè this._name in modo da poter richiamare direttamente la propietà del mc attivo!

  5. #5
    Allora, il "prototype" ti "libera" dal "luogo" dove è posizionato il codice, mentre con la tua tecnica la funzione "deve" considerare l'esatto percorso.

    Immagino che la funzione richiamata tramite setInterval sia sul primo frame della timeline principale.
    Poniamo, per pura ipotesi, che i movieclip da controllare sia a loro volta "nidificati" dentro un mc che chiamiamo "esempio".
    Poniamo pure che i vari duplicati abbiano nome "mc01", "mc02" ecc.

    Dall'interno dei vari clip richiami il serInterval:
    setInterval(_parent._parent.beat, 100, this._name);

    Ed all'interno della funzione, controlli le varibili dei vari clip in questa maniera:
    esempio[whereis].variabile;

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.