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

Discussione: Funzione vibra

  1. #1
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619

    Funzione vibra

    Sto cercando di costruire una funzione che associata ad un pulsante faccia tremare e cambiare gli alpha di un clip.
    Deve farlo ogni 50 ms per 1 secondo.

    Ecco il mio codice:

    function vibra() {

    tempo=getTimer();
    i=50;
    while (j<999999999) {
    if(getTimer()<tempo+i){
    _root.mvib._x +=random(7)-7;
    _root.mvib._y +=random(7)-7;
    _root.mvib._alpha = 100-random(50);
    trace(_root.mvib._x);
    trace(_root.mvib._alpha);
    i=i+50;}
    }
    _root.mvib._x=30;
    _root.mvib._y=140;
    _root.mvib._alpha=100;
    }

    Perche' non succede niente?

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    A parte che sarebbe:

    codice:
     while (i<999999999) {
    prova così:

    codice:
    function vibra()
    {
    	clearInterval(vibraID);
    	timer = getTimer();
    	_root.mvib._x = 30;
    	_root.mvib._y = 140;
    	_root.mvib._alpha = 100;
    	vibraID = setInterval(_vibra, 50);
    }
    function _vibra()
    {
    	if(getTimer() - timer > 1000)clearInterval(vibraID);
    	_root.mvib._x += random(7)-7;
    	_root.mvib._y += random(7)-7;
    	_root.mvib._alpha = 100-random(50);
    }

  3. #3
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Hai ragione per la "j" ma ho distrattamente postato codice sporcato o meglio mal pulito da altri tentativi.

    Provero' in tutti e due i modi che mi hai suggerito dopo aver studiato clearinterval e setinterval che proprio non conosco.

    Grazie

  4. #4
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    La prima no.

    La seconda quasi,funziona ma una volta sola: io ho bisogno che le x e le y cambino ogni 50ms per un secondo.

    Ciao

  5. #5
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Aspetta, le due funzioni vanno usate insieme:

    codice:
    function vibra()
    {
    	clearInterval(vibraID);
    	timer = getTimer();
    	_root.mvib._x = 30;
    	_root.mvib._y = 140;
    	_root.mvib._alpha = 100;
    	vibraID = setInterval(_vibra, 50);
    }
    function _vibra()
    {
    	if(getTimer() - timer > 1000)clearInterval(vibraID);
    	_root.mvib._x += random(7)-7;
    	_root.mvib._y += random(7)-7;
    	_root.mvib._alpha = 100-random(50);
    }
    vibra();

  6. #6
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Eccezzionale!

    Mi manca solo che alla fine mi riporti in questo stato

    _root.mvib._x = 34;
    _root.mvib._y = 140;
    _root.mvib._alpha=100;



    Ma ... uhm ... come funziona?

    Se per caso dovessi avere 2 min liberi.... 2 righette di commento....


    Se no non importa


    Ciao e grazie mille

  7. #7
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    codice:
    // funzione richiamata dall'utente
    function vibra()
    {
    	// viene resettato l'intervallo
    	clearInterval(vibraID);
    	// viene salvato il numero di millisecondi
    	// dall'inizio del filmato nella variabile timer
    	timer = getTimer();
    	// viene invocata la funzione "ripristina",
    	// per resettare la posizione del movieclip
    	ripristina();
    	// viene reimpostato l'intervallo, perchè
    	// chiami la funzione _vibra ogni 50 ms
    	vibraID = setInterval(_vibra, 50);
    }
    // funzione richiamata da "vibra"
    function _vibra()
    {
    	// verifica se è passato un secondo
    	if(getTimer() - timer > 1000){
    		// in caso affermativo, resetta l'intervallo
    		clearInterval(vibraID);
    		// resetta la posizione del movieclip
    		ripristina();
    	} else {
    		// altrimenti...
    		_root.mvib._x += random(7)-7;
    		_root.mvib._y += random(7)-7;
    		_root.mvib._alpha = 100-random(50);
    	}
    }
    function ripristina()
    {
    	_root.mvib._x = 30;
    	_root.mvib._y = 140;
    	_root.mvib._alpha = 100;
    }
    vibra();

  8. #8
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619

  9. #9
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Ultima cosa. Lo giuro!
    Ho provato a modificare la funzione perche' mi prenda un parametro in modo da poter specificare a che clip applicarla quando la richiamo ma non ci sono riuscito.

    Io vorrei chiamarla cosi' :

    vibra(percorsodelclip);

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795
    function vibra(obb)
    {
    clearInterval(vibraID);
    timer = getTimer();
    obb._x = 30;
    obb._y = 140;
    obb._alpha = 100;
    vibraID = setInterval(_vibra, 50,obb);
    }
    function _vibra(obb)
    {
    if(getTimer() - timer > 1000)clearInterval(vibraID);
    obb._x += random(7)-7;
    obb._y += random(7)-7;
    obb._alpha = 100-random(50);
    }
    vibra(_root.mvib);
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

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.