Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    12

    classe transition come avviare varie animazioni in sequenza richiamandole in AS3

    ciao a tutti... premetto che sono nuova di action script 3.0
    vorrei sapere come gestire il passaggio da una animazione all'altra in action 3.0 mi spiego meglio...

    Sto facendo una piccola animazione in cui alterno codice action e animazioni che coinvolgono simboli diversi create a mano. (interpolazioni di movimento etc...)
    Sto usando la classe transition

    Ho iniziato così ...
    -------------------------------------
    import fl.transitions.*;
    import fl.transitions.easing.*;

    TransitionManager.start(flash_mc,{type:Photo,direc tion:Transition.OUT,duration:0.8,easing:None.easeN one});
    --------------------------
    Adesso dopo questa azione vorrei applicarne delle altre? come si fa? Ossia passare al frame 2 e successivi e avviare altre animazioni o richiamare altre transition con action...

    attualmente al fotogramma 1 ho un frame per le action e negli altri una serie di oggetti.

    Se inserisco un clip al fotogramma 2 accade che...
    l'action script viene ignorato e passa direttamente al fotogramma 2

    che devo fare?!

    grazie

    ML

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao.

    La soluzione non è troppo intuitiva ma è comunque abbastanza semplice.
    Questa classe ha due metodi per identificare il completamento delle transizioni: allTransitionsInDone per le transizioni in entrata e allTransitionsOutDone per quelle in uscita.

    Nel tuo esempio hai usato l'impostazione base della classe TransitionManager, applicando quindi il metodo start direttamente alla classe generica, mentre in questo caso dovrai creare un'istanza della classe e applicare dei listener per poter usare gli eventi.

    Il tuo script andrà quindi impostato più o meno in questo modo:
    Codice PHP:
    import fl.transitions.*;
    import fl.transitions.easing.*;

    var 
    tm:TransitionManager=new TransitionManager(flash_mc);
    tm.startTransition({type:Photo,direction:Transition.OUT,duration:0.8,easing:None.easeNone});

    tm.addEventListener("allTransitionsOutDone"transizioneCompletata);
    function 
    transizioneCompletata(e:Event):void {
        
    trace("L'animazione è terminata!");

    In questo esempio la funzione "transizioneCompletata" verrà richiamata al termine della transizione in uscita.

    Nota: anziché "start" dovrai utilizzare il metodo "startTransition" sull'istanza della classe. Ho notato però, da una prova che ho fatto proprio con questo esempio, che ottengo un comportamento diverso rispetto al tuo script. Alla fine dell'animazione sembra che l'istanza "flash_mc" torni ad essere visualizzata con le sembianze iniziali (perlomeno io ho questo risultato)... non ho idea del perché.

    Ad ogni modo esistono diverse classi del genere per la creazione di transizioni. Personalmente trovo più pratica ed intuitiva la classe caurina.transitions.Tweener (http://hosted.zeh.com.br/tweener/docs/en-us/) che utilizzo spesso e che ti consiglio, a meno che tu non abbia scelto di utilizzare la Transition per via dei suoi particolari effetti preimpostati (quelli identificati dalla proprietà "type").

    La classe caurina offre inoltre un pacchetto completo (Special properties) per transizioni su diversi tipi di elementi (colori, filtri, suoni, testi, ecc..) che possono tornare utili in svariate situazioni.
    Per maggiori informazioni su questa classe e sul suo utilizzo ti consiglio di fare qualche ricerca anche su questo stesso forum in cui se ne è parlato svariate volte.

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

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.