Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    49

    "sincronizzare" numerosi clip

    Salve a tutti,

    problema:
    - 5 clip filmato.
    - ogni clip corrisponde ad una voce del menu.
    - ogni clip a 2 stati "aperto" e "chiuso"
    (frame da 1 a 10: il clip si "apre")
    (frame da 10 a 20: il clip si "chiude")

    - ho creato 5 pulsanti invisibili che controllano i clip come se fossero pulsanti

    come si può vedere dal link:
    www.paleddu.com/~tmp/home29_11_04.html

    il menu funziona quasi...
    è tutto ok fino al momento in cui si passa velocemente da un pulsante all'altro: alcuni clip non fanno in tempo a "chiudersi" e rimangono "aperti" ?????????

    on (rollover)
    - "chiudi" tutti i clip "aperti"
    - "apri" il clip solo quando tutti gli altri sono "chiusi"

    on (rollout)
    - SE il clip è "aperto" ALLORA "chiudilo"

    qualcuno può darmi qualche dritta !!!???!!!

    grazie, gubix.
    il più forte non è chi non cade mai... ma chi cade e si rialza.

  2. #2
    Un sistema potrebbe essere questo:

    Attribuisci ai tuoi movieclip un nome istanza "progressivo", tipo:
    bottone1, bottone2 ecc. ecc.

    All'evento "rollOver" richiami una funzione.

    Nella funzione di cui sopra, costruisci un ciclo "for" che scandisce i movieclip, e:
    se il numero del mc corrisponde a quello che ha attivato la funzione stessa,
    allora esegui la procedura di apertura
    altrimenti esegui la procedura di chiusura.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    49
    in questo modo si risolve il problema del tempo che trascorre tra il rollover di un pulsante e quello del successivo?????

    perchè penso che sia quello il problema??? il tempo che trascorre..
    ho sbaglio??

    comunque ora ci provo e poi ti faccio sapere

    grazie, gubix.
    il più forte non è chi non cade mai... ma chi cade e si rialza.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    49
    scusa... ci ho provato... ma non sono un grande programmatore...
    e mi sono perso... forse dovrei studiare un pò di actionscript...
    o forse mi puoi aiutare... con qualche aiutino posso farcela!

    grazie, gubix.

    tra me e te: perchè il mio sistema non funziona???
    il più forte non è chi non cade mai... ma chi cade e si rialza.

  5. #5
    Originariamente inviato da gubix
    scusa... ci ho provato... ma non sono un grande programmatore...
    e mi sono perso... forse dovrei studiare un pò di actionscript...
    o forse mi puoi aiutare... con qualche aiutino posso farcela!

    grazie, gubix.

    tra me e te: perchè il mio sistema non funziona???
    soluzione spartana, lascia 10 frame vuoti nei clip, la prima volta aspetterai 10 frame di vuoto quindi circa 1/2 secondo prima di vedere l'animazione poi invece mentre parte il clip gli altri se aperti si chiudono in 10 frame e corrispondono a ai 10 frame vuoti che hai messo nel clip, e successivamente si vedrà aprire l'altro
    Consulenza aziendale a 360° http://www.gruppodg.it http://www.gruppodg.it/3d
    Realizzazione siti internet, Siti Flash, Ricerca Location per bar negozi , esercizi commerciali, sviluppo pratiche e allestimento

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    49
    sicuramente è una soluzione molto spartana...

    ma il fatto di aggiungere 10 frame non mi risolve il problema.

    nello spostamento del mouse da un "area sensibile" all'altra mi serve una condizione del tipo:
    aspetta che il clip si sia "chiuso" (rollout) e quindi "apri" il successivo clip (ovvero attiva il rollover del nuovo pulsante)
    non so se mi spiego...

    grazie, gubix.
    il più forte non è chi non cade mai... ma chi cade e si rialza.

  7. #7
    allora, proviamo a definire una funzione che serva allo scopo...

    Preparazione:
    I vari movieclip da "aprire/chiudere" devono avere un nome progressivo, p. es:
    clip1, clip2, clip3, clip4 e clip5

    Poi rendiamo "speculari" le due animazioni di apertura e chiusura, per cui:
    dal frame 1 al frame 10 -> apertura
    dal frame 11 al frame 20 -> chiusura


    I pulsanti che li controllano io li metterei "dentro" detti movieclip, altrimenti puoi metterli anche fuori ma, in questo caso, devi attribuirgli un nome istanza con le stesse caratteristiche, per cui:
    puls1, puls2, puls3, puls4 e puls5

    queste le istruzioni da associare ai pulsanti:

    codice:
    on (rollOver) {
       apri_chiudi(_name);
    }
    on (rollOut) {
       // nulla
    }
    e veniamo al "cuore" del problema: l'apertura/chiusura "sincronizzata".
    queste istruzioni devi metterle nel primo frame della timeline principale.

    codice:
    MovieClip.prototype.apri_chiudi = function(id) {
       // acquisisco il numero del pulsante premuto...
       // cioè l'ultimo carattere del nome
       i = id.substring(id.length-1, id.length);
       // faccio un ciclo di "scansione" sullo "stato" dei clip
       for (x=1; x<=5; x++) {
           clp = "clip" + x;
           if (x == i) {    // se il clip è quello cliccato
               _root[clp].chiuso = false;
               _root[clp].apri(i);
           } else {
               if (_root[clp]._currentframe < 11)  {
                   nf = 20 - _root[clp]._currentframe + 1
                   _root[clp].gotoAndPlay(nf);
               }
           }
       }
    }
    //
    MovieClip.prototype.apri = function(in) {
       // var x controllare l'avvenuta chiusura di tutti i clip
       // eccetto quello da aprire
       clipchiusi = 0;	
       this.onEnterFrame = function() {
           clipchiusi = 0;	
           for (x=1; x<=5; x++) {
               clp = "clip" + x;
               if (x != in && _root[clp]._currentframe == 20) {
                   clipchiusi++;
               }
           } 
           if (clipchiusi == 4)
               _root[in].gotoAndPlay(1);
               delete this.onEnterFrame;
           }
       }	
    }

  8. #8
    Scusate se mi intrometto
    Tempo fa avevo realizzato questo bottone che, come potrete constatare, si apre regolarmente ma che purtroppo, molto spesso, quando il cursore esce velocemente dall'area sensibile, rimane aperto.
    Ora chiedevo a Pasavign come potevo adattare le action che ha suggerito a Gubix al mio bottone.
    Tengo a precisare che il mio bottone ha
    sul 1° frame un :
    on (rollOver) {play();}//dove raggiunge la massima apertura al 10°
    on (rollOut) {gotoAndPlay(10);}//si richiude

    sul 10° frame
    on (rollOver) {play();}//si riapre
    on (rollOut) {gotoAndPlay(10);}//si richiude

    sul 19° frame
    on (rollOver) {play();}// si riapre
    on (rollOut) {gotoAndStop(1);}//si richiude

    Grazie

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    49

    ci provo!!!!

    Non so se funzionerà, ma ci provo....
    e comunque se non funziona non dubito che sia per colpa mia.
    ti faccio sapere.
    grazie pasavign!!!

    gubix
    il più forte non è chi non cade mai... ma chi cade e si rialza.

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    49

    ho dormito poco.. e non è servito a niente

    Salve,
    ci ho provato... ma non è servito.
    comunque non mi arrendo.

    - nella timeline principale ci sono i clip
    - nei clip ci sono i pulsanti
    - nel primo frame della timeline principale ci sono le funzioni
    - i nomi istanza dei clip e dei pulsanti sono esatti
    - il codice dei rollover è esatto

    - sembra che l'evento scatenato dall'rollover non venga mai eseguito

    ci deve essere qualcosa che mi sfugge, sicuramente dovuto alla mia scarsa conoscenza di actionscript

    Ho esaurito le mie idee... datemi qualsiasi suggerimento
    e io ci provo.

    grazie, gubix.
    il più forte non è chi non cade mai... ma chi cade e si rialza.

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.