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

Discussione: effetto molla

  1. #1
    Utente di HTML.it L'avatar di daem
    Registrato dal
    Oct 2000
    Messaggi
    199

    effetto molla

    Spulciando le varie guide e l'esempio presente su flash-mx.it sto cercando di fare un semplicissimo effetto molla.
    Ho un mc-pulsante (rettangolo_mc) al quale associo (sulla timeline):

    rettangolo_mc.onRollOver = function (){
    this.gotoAndStop(2);
    }

    All'interno del mc, al secondo fotogramma ho messo questo script:

    this.onEnterFrame = function () {
    finex = _x;
    acce = 1.8;
    iner = 1.5;
    iniziox = _x;
    velx = (velx+(fine-inizio)/acce)/iner;
    _x += velx;
    }

    Ma non si muove, rimane fisso alla sua x. Concettualmente mi sembra giusto, sto impazzendo! Dove sbaglio?
    Grazie

  2. #2
    puoi fare così

    crei un pulsante e associ al pulsante questa azione

    codice:
    on (rollOver) {
        over = 1;
    } 
    on (rollOut) {
        over = 2;
    }
    on (release){
        "azione";
    }
    poi il pulsante lo metti all'interno di un movieclip.
    Al movieclip associ questa azione

    codice:
    onClipEvent (load) {
        accelerazione = 5;
        inerzia = 1.17;
    }
    onClipEvent (enterFrame) {
        if (over == 1) {
             with (_root) {
                gotoAndStop(2);
            }
            finex = 200;
            finey = 200;
            iniziox = this._xscale;
             // inizio
            inizioy = this._yscale;
             velocx = (velocx+(finex-iniziox)/accelerazione)/inerzia;
             // la velocitàx decresce fino a 0
             velocy = (velocy+(finex-inizioy)/accelerazione)/inerzia;
             // idem per velocy
            this._xscale += velocx;
             // incremento xscale, fino a che diviene costante per velocx = 0
            this._yscale += velocy;
             // idem per yscale e velocy
        } else if (over == 2) {
            with (_root) {
                gotoAndStop(1);
                finex = this._xscale;
                finey = this._yscale;
                 velocx = (velocx+(finex-100)/accelerazione)/inerzia;
                velocy = (velocy+(finey-100)/accelerazione)/inerzia;
                this._xscale -= velocx;
                 // decremetox
                this._yscale -= velocy;
                 // decremetoy
               }
            }
        }
    in questo modo ottieni il tuo effetto "molla"

    ciao
    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

  3. #3
    Utente di HTML.it L'avatar di daem
    Registrato dal
    Oct 2000
    Messaggi
    199
    Grazie ma non mi funziona
    E poi mi sarebbe piaciuto modificare il mio script che secondo me può funzionare

  4. #4
    come non funziona

    a me funge e come

    comunque dopo pranzo vediamo se ho tempo guardiamo il tuo
    ma non ti assicuro niente
    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

  5. #5
    Utente di HTML.it L'avatar di daem
    Registrato dal
    Oct 2000
    Messaggi
    199
    Grazie!

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182

    Re: effetto molla

    codice:
    this.onEnterFrame = function () {
    finex = _x;
    acce = 1.8;
    iner = 1.5;
    iniziox = _x;
    velx = (velx+(fine-inizio)/acce)/iner;
    _x += velx;
    }
    ad un primo sguardo sembra che in questo modo "velx" rimanga sempre e comunque a zero, normale quindi che non sortisca alcun effetto

    ti invito a seguire questo mio esempio, con una prototype scritta un po' di tempo fà, ma comunque funzionante, presente in questa discussione, da questo post in poi

  7. #7
    Utente di HTML.it L'avatar di daem
    Registrato dal
    Oct 2000
    Messaggi
    199
    si infatti rimane a zero perchè finex-iniziox è sempre uguale a zero visto che tutti e due sono pari a _x. Il problema è che ho già provato a variare finex e iniziox ma senza risultato.
    (a parte che lo script che ho postato era sbagliato visto che da una pare c'era "finex" e "iniziox" e dall'altra "fine" e "inizio"... )

    Sarebbe così:

    stop();
    this.onEnterFrame = function () {
    finex = _x;
    acce = 1.8;
    iner = 1.5;
    iniziox = _x;
    velx = (velx+(finex-iniziox)/acce)/iner;
    _x += velx;
    }

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da daem
    si infatti rimane a zero perchè finex-iniziox è sempre uguale a zero visto che tutti e due sono pari a _x. Il problema è che ho già provato a variare finex e iniziox ma senza risultato.
    (a parte che lo script che ho postato era sbagliato visto che da una pare c'era "finex" e "iniziox" e dall'altra "fine" e "inizio"... )
    già, non m'ero accorto di quel piccolo errore di scrittura,

    ma come mai sei sicuro che quell'operazione funzioni? l'hai già provata in altri ambiti e andava?

  9. #9
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    velx =0
    this.onEnterFrame = function () {
    arrivo = 500//o comunque dove vuoi che arrivi il clip in questione
    acce = 1.8;
    iner = 1.5;
    velx = (velx+(arrivo-_x)/acce)/iner;
    _x+= velx;
    }
    ...altri 5 anni di purga...

  10. #10
    Utente di HTML.it L'avatar di daem
    Registrato dal
    Oct 2000
    Messaggi
    199
    Originariamente inviato da and80
    già, non m'ero accorto di quel piccolo errore di scrittura,

    ma come mai sei sicuro che quell'operazione funzioni? l'hai già provata in altri ambiti e andava?
    Non sono sicuro ma concettualmente mi sembra che possa funzionare. Vorrei capire dove sbaglio. Potrei provare le soluzioni alternative che mi avete dato e vi ringrazio ma sono convinto che questo possa funzionare. Sono un po' testardo

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.