Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    163

    Far partire un suono con getTimer()

    Come si fa a far partire un suono con getTimer()?

    codice:
    onClipEvent (load) {
         elapsed=getTimer();
    }
    onClipEvent (enterFrame) {
         if(getTimer()-elapsed>2000){
              _root.sound.gotoAndStop("suona")
         };
    }
    Così funziona, ma se ripeto il comando gotoAndStop() dentro ad un altro 'if' esempio dopo 4000 millisecondi, non suona più.

  2. #2
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122
    Te la butto là, anche perchè il tuo metodo di far partire suoni poco lo approvo.
    PErchè non concateni il suono e fai una cosa del genere
    codice:
    onClipEvent (load) {
         elapsed=getTimer();
    }
    onClipEvent (enterFrame) {
         if(getTimer()-elapsed>2000){
              _root.sound.start(0,99) // nel caso di un loop
         };
    }
    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    163
    Con il codice qui sotto il suono continua a ripetersi. Invece ho bisogno che suoni 1 volta sola rispettivamente al passaggio dei 2000 e 4000 millisecondi.
    codice:
    onClipEvent (load) {
         elapsed=getTimer();
    }
    
    onClipEvent (enterFrame) {
         if(getTimer()-elapsed>2000){
              _root.sound.start(0,1)
         };  
          
         if(getTimer()-elapsed>4000){
              _root.sound.start(0,1)
         };
    }
    Come fare?

  4. #4
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122
    Originariamente inviato da simo100
    Con il codice qui sotto il suono continua a ripetersi. Invece ho bisogno che suoni 1 volta sola rispettivamente al passaggio dei 2000 e 4000 millisecondi.
    codice:
    onClipEvent (load) {
         elapsed=getTimer();
    }
    
    onClipEvent (enterFrame) {
         if(getTimer()-elapsed>2000){
              _root.sound.start(0,1)
         };  
          
         if(getTimer()-elapsed>4000){
              _root.sound.start(0,1)
         };
    }
    Come fare?
    e non è giusto così scusa?? Questo codice non funziona ?? :master:

    ne avrei uno ma è un po più lungo
    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    163
    No. Purtroppo non è giusto, perchè così continua a loopare il suono.
    Al primo passaggio (2000 ms) tutto ok, ma al secondo (4000 ms) il suono va in loop.
    -

  6. #6
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122
    Originariamente inviato da simo100
    No. Purtroppo non è giusto, perchè così continua a loopare il suono.
    Al primo passaggio (2000 ms) tutto ok, ma al secondo (4000 ms) il suono va in loop.
    -



    è vero non mi ero accorto di questo piccolo particolare ! Tranquillo allora ho quello che fa per te ! Prova questo:

    codice:
    onClipEvent (load) {
         elapsed=getTimer();
    }
    
    onClipEvent (enterFrame) {
         if(getTimer()-elapsed>2000){
              if(!myvar1) {
              _root.sound.start(0,1)
              myvar1 = !myvar1;
              }
         };  
          
         if(getTimer()-elapsed>4000){
              if(!myvar2) {
              _root.sound.start(0,1)
              myvar2 = !myvar2;
              }
         };
    }


    dovrebbe funzionare al 100%
    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    163
    Grazie mille!!

    Ho appena provato e funziona a meraviglia. Finalmente!
    Ma cosa si ottiene facendo così
    codice:
    if  (!myvar1) { ... myvar1 = !myvar1)
    qual'è il meccanismo che scatta?
    -

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    163
    Sul primo frame :
    codice:
    clip1 = new Array("bla", "700");
    clip2 = new Array("bla", "300");
    _root.suono1 = new Sound();
    _root.suono1.attachSound(clip1[0]);
    _root.suono2 = new Sound();
    _root.suono2.attachSound(clip2[0]);
    E poi sulla clip :
    codice:
    onClipEvent (load) {
    	elapsed = getTimer();
    	 
    	function suona(nome, stack) {
    		if (getTimer()-elapsed>stack) {
    			if (!myvar) {
    				Object(_root[nome]).start(0, 1);
    				myvar = !myvar;
    			}
    		}
    	}
    }
    
    onClipEvent (enterFrame) {
    	if (getTimer()-elapsed>2000) {
    		suona("suono1", 2000);
    	}
    	if (getTimer()-elapsed>4000) {
    		suona("suono1", 4000);
    	}
    }
    Praticamente ho creato una funzione nel "Load" che faccia partire il suono "x" al momento "y" richiamandola nell'"EnterFrame".

    Per completare l'opera, come potrei mettere nei parametri della funzione anche "myvar" in modo che cambi ogni volta che la richiamo?
    -

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    163
    codice:
    function suona(nome, stack)
    In sostanza, la funzione qui sopra, mi è utile per far partire un suono ad un dato passaggio di tempo, ma contiene all'interno la condizione "if(!myvar){...myvar = !myvar}" che non lascia partire altri suoni successivi al primo.

    La mia domanda è: potrei aggiungere un parametro alla funzione (es: "function suona(nome, stack, myvar) "), così da differenziare "myvar" ad ogni richiamo e lasciare partire anche altri suoni dopo?
    -

  10. #10
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122
    scusa se ti rispondo solo ora è che non posso connettermi molte volte.

    allora, l'istruzione myvar = !myvar; cambia il valore booleano alla variabile

    quando non crei una variabile essa nasce come false;
    nel codice che ti ho dato c'è scritto

    se myvar == false
    allora.....
    e infine myvar = true;

    in questa maniera restando myvar = true la condizione if non verrà mai più rispettata e il ciclo sarà ogni volta saltato.

    Non o capito il tuo ultimo problema scusa. Potresti esser eun po più chiaro ??
    Ciao
    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

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.