Visualizzazione dei risultati da 1 a 10 su 10

Discussione: effetto molla in as

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    144

    effetto molla in as

    Ho un movie con delle finestrine che si aprono in successione, a tenda (come da allegato).
    Queste finestre sono dei mc, che si ingrandiscono all'over, mentre le altre si spostano, il tutto con un effetto 'molla elastica'.
    I MC sono costituiti da due livelli: su uno c'è la finestra, sull'altro un'area attiva.

    Lo script:

    Sulle istanze dei mc:

    onClipEvent (load) {
    inerzia=2.5;
    acc=1.2;
    vel=1.7;
    pos=_xscale;
    x1=120; //cambia da una all'altra, sia la x che la posizione
    }
    onClipEvent (enterFrame) {
    finale=_xscale;
    mov=(mov+(pos-finale)/acc)/inerzia;
    _x+=(x1-_x)/vel; //cambia la x: x1, x2, eccetera
    _xscale+=mov;
    _yscale+=mov;
    }



    Sulle aree attive interne ai MC:

    on (rollOver) {
    pos=100;
    }
    on (rollOut) {
    pos=30;
    }

    (non ho riportato la parte relativa allo spostamento delle altre perchè adesso non mi interessa).



    Mi piacerebbe fare l'effetto molla anche in entrata delle finestre, non solo quando sono all'over e ingrandiscono; adesso si aprono in modo tutto rigido e ordinato, e poi all'over ingrandiscono in modo elastico. Mi piacerebbe che si aprissero anche, in modo elastico.
    Solo che non so come fare: di action script ne so solo quanto basta a mettere le mani negli script che scarico (e non sempre ci riesco liscio).

    Mi dite come e dove mettere le mani per favore?
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    144
    Up.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    144
    Ho trovato un altro script che fa l'effetto molla in entrata dei MC:


    onClipEvent (load) {
    xscale = 100;
    yscale = 100;
    sX = 0;
    sY = 0;
    multiplicator = .3;
    ratio = .5;
    }
    onClipEvent (enterFrame) {
    if (!jump) {
    sX = Number(sX*multiplicator)+Number((xscale-_xscale)*ratio);
    sY = Number(sY*multiplicator)+Number((yscale-_yscale)*ratio);
    _xscale += sX;
    _yscale += sY;
    }
    }


    Ma non so come unirlo a quello precedente.

    Dai raga, sono sicuro che per voi è facile, datemi una mano

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    144
    Solo per curiosità, è una domanda troppo difficile o troppo scema?

  5. #5
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    In realtà non ho ben capito...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    144
    Originariamente inviato da negatyve
    In realtà non ho ben capito...

    Allora, guarda QUI che facciamo prima, per farti un'idea. Lascia completamente perdere la grafica, è solo una prova di funzionamento da dirozzare, che ho caricato adesso per farti capire. E scusa se è lento, interfree è così.

    Se clicchi su "1fin" o "2fin", vedi che le finestre si aprono con un effetto a molla (come da script postato qui sopra ). Se clicchi su "boing", le finestrine si aprono SENZA effetto a molla, mentre ce l'hanno, simile, quando sei all'over (primo script postato ).

    A me piacerebbe che anche aprendosi (comparendo insomma), lo facessero come in "1fin" e "2fin", ma non sono capace di unire i 2 script, e tanto meno di modificare l'altro



    Ah, non cliccare sui 3 collegamenti a destra, c'è solo un loadMovie e se entri lì poi non riesci + ad aprire gli altri.

    Grazie

  7. #7
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Ho capito. Prova questo:

    codice:
    onClipEvent (load) {
    	inerzia = 2.5;
    	acc = 1.2;
    	vel = 1.7;
    	
    	pos = _xscale;
    	ini = _x;
    	fin = 120;
    	//cambia da una all'altra, sia la x che la posizione
    }
    onClipEvent (enterFrame) {
    	mov = (mov + (pos - _xscale) / acc) / inerzia;
    	end = (end + (fin - _x) / acc) / inerzia;
    	_x += end;
    	_xscale += mov;
    	_yscale = _xscale;
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    144
    Ok, grazie.

    Lo script funziona però adesso c'è un problema: date le dimensioni ridotte delle finestre e la velocità del movie, praticamente nemmeno si vede il loro ingresso e paiono ferme. Come posso fare per renderlo più evidente?

  9. #9
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Devi spostarne la posizione iniziale..

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    144
    Originariamente inviato da negatyve
    Devi spostarne la posizione iniziale..
    Chiaramente ho già fatto anche quello solo che con un framerate a 60 vedo la posizione iniziale, quella finale e poi basta. Tutti i movimenti intermedi sono praticamente invisibili e anche cambiando i tre valori in alto non succede molto.

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.