Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    272

    mirror class su una easing callback

    Ciao a tutti!
    Ho visto che è stato implementato il refresh sulla class.mirror di V2: subito ho provato a farci qualche esperimento, ed in particolar modo ho provato a muovere con le classi tween qualche mc.
    ottimi risultati!

    ho però un problema nel callback con l'addListener.
    la riflessione del tweening infatti si ferma e sembra non essere preso in considerazione l'onMotionFinished!!

    qui di seguito il codice utilizzato, con mc "prova" già piazzato sullo stage:
    Codice PHP:
    //mx tween class importing
    import mx.transitions.Tween;
    import mx.transitions.easing.Strong;

    //mirror class & refresh
    var reflect:Mirror = new Mirror (prova02580);
    onEnterFrame = function () {
        
    reflect.refresh();
    }

    //tweening
    var easing:Tween = new Tween(_root.prova"_x"Strong.easeOut020040false);

    //tweening callback
    var easingCallback:Object = new Object();
    easingCallback.onMotionFinished = function():Void  {
    var 
    easing:Tween = new Tween(_root.prova"_alpha"Strong.easeOut100040false);
    };
    easing.addListener(easingCallback); 
    purtroppo non riesco a capire come mai non venga refreshata nel riflesso la nuova tween che va a decrementare l'_alpha dell'mc "prova".

    Qualcuno saprebbe darmi una mano a risolvere questo problema gente?
    Grazie mille in anticipo!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ho provato il tuo codice ed in effetti il cambio di trasparenza non funziona, il ché mi da da pensare che forse sarebbe il caso di impostare automaticamente le proprietà del mirror pari a quelle del target da riflettere, solo che così si perderebbe la possibilità di controllarle direttamente, perciò opterei al posto tuo per una scelta diversa modificando la funzione onEnterFrame in questa maniera:

    Codice PHP:
    onEnterFrame = function () {
        
    reflect.refresh();
        
    reflect.mirror._alpha prova._alpha;


  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    272
    oh ecco il creatore! mitico!

    allora stasera appena arrivo a casa provo subito!
    in questo modo però si raddoppia il carico dell'enterframe no?
    secondo te conviene killare il refresh appena è finita la tween di callback?

    grazie mille!

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    >> in questo modo però si raddoppia il carico dell'enterframe no?

    direi di no, l'enterFrame è comunque uno e quell'azione infulisce certamente meno sulla cpu di quanto non fa lo stesso refresh


    >> secondo te conviene killare il refresh appena è finita la tween di callback?

    se non ti serve ancora il refresh, direi di sì, così liberi la cpu da un processo costante che potrebbe rallentarlo a lungo andare

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    272
    perfetto and80 funziona benone, grazie per l'aiuto!

    ho però notato che se su due frame diversi richiamo la classe con diverse variabili, lo script non funziona a dovere..

    FRAME1 - sullo stage mc "prova"
    Codice PHP:
    //mirror class & refresh
    var reflect:Mirror = new Mirror (prova07580);
    onEnterFrame = function () {
        
    reflect.refresh();

    FRAME20 - sullo stage mc "prova2"
    Codice PHP:
    //mirror class & refresh
    var reflect2:Mirror = new Mirror (prova207580);
    onEnterFrame = function () {
        
    reflect2.refresh();

    a cosa può essere dovuto quell'errore nella riflessione?
    nel momento in cui si verifica l'errore, poi le riflessioni dell'swf nn son mai corrette!

    es.

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    forse dipende dal fatto che ricrei l'enterFrame con altre operazioni al suo interno, sovrascrivendo quelle precedenti anche se non ho compreso il nesso con lo screenshot che hai postato, in cui mi pare che lo script abbia cannato

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    272
    allora, ho provato a cancellare l'enterframe una volta finita una tween per poi ricrearne un altro quando serve, con un metodo piuttosto "dubbio" (incremento e decremento una variabile):

    FRAME1:
    Codice PHP:
    stop();

    _root.0;

    //mirror class & refresh
    var reflect:Mirror = new Mirror (prova07580);
    onEnterFrame = function () {
        
    reflect.refresh();
        if (
    this._alpha == 1delete this.onEnterFrame;

    FRAME2:
    Codice PHP:
    i=1
    FRAME3:
    Codice PHP:
    stop();

    //mirror class & refresh
    var reflect2:Mirror = new Mirror (prova207580);
    onEnterFrame = function () {
        
    reflect2.refresh();

    il problema persiste!
    c'è una soluzione migliore per cancellare l'enterframe?
    a questo punto potrei creare una riflessione jpg e appiccicarcela sopra, ma mi interessava sapere se era possibile risolvere il problema...per muovere contemporaneamente o magari concatenati degli mc, tutti riflessi in runtime!

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    io direi di creare un ulteriore controllo dell'evento onMotionFinished in cui poi cancelli l'enterFrame
    considera che le tween se le dichiari come Object non hanno bisogno di un listener e quindi puoi fare agilmente in questo modo:

    Codice PHP:
    /mx tween class importing
    import mx
    .transitions.Tween;
    import mx.transitions.easing.Strong;

    //mirror class & refresh
    var reflect:Mirror = new Mirror (prova02580);
    _root.onEnterFrame = function () {
        
    reflect.refresh();
    }

    //tweening
    var easing:Object = new Tween(_root.prova"_x"Strong.easeOut020040false);

    //tweening callback
    easing.onMotionFinished = function():Void  {
        
    easing = new Tween(_root.prova"_alpha"Strong.easeOut100040false);
        
    easing.onMotionFinished = function () {
            
    delete _root.onEnterFrame;
        }
    }; 

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    272
    and80 ti ringrazio infinitamente per la pazienza
    il problema però non è nel tween, ho eliminato tutto e ricominciato da capo per capire dov'è l'errore.

    "prova" e "prova2" sullo stage, identico frame.
    Codice PHP:
    //mirror class
    var reflect:Mirror = new Mirror (_root.prova07580);

    //mirror class
    var reflect2:Mirror = new Mirror (_root.prova207580); 
    il risultato purtroppo è questo!


  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    dammi un attimo e lo provo

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 © 2026 vBulletin Solutions, Inc. All rights reserved.