Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    riconoscere se la funzione e' attivata AS2

    Salve a tutti, ho un problema risolvibile ma non capisco esattamente come.

    Definisco il suono mp3 in streaming (loop)

    Codice PHP:
    var sound_site:Sound = new Sound();
    sound_site.onLoad = function(success:Boolean):Void {
        if (
    success) {
            
    trace("Sound Loaded");
            
    game_sound.start(0,999);
        }
    };
    sound_site.loadSound("sound_city.mp3"false); 
    a questo punto tranquillamente con un pulsante posso attivarlo, nel caso in cui non fosse in esecuzione

    on (release) {
    _root.sonidoGREASE.start(0,999);
    }


    il problema ora e', siccome il suono puo' essere attivato anche da un altro pulsante come posso far si che i suoni non si accavallano? una funzione che controlli se e' gia' in esecuzione o no... vero? pensavo ad una cosa simile ma non va.

    all'altro pulsante

    Codice PHP:
    on (release) {
        
    _root.ani_stage.play();
        if (
    _root.sound_site.start(0,999)){

        }
            else
            {
            
    _root.sound_site.start(0,999);     
            } 
    // end else if
         
    }; 

    in poche parole se lo streaming e' gia' attivo non dovrebbe far nulla else l'esegue.
    Pero' credo che e' sbagliata la prima sintassi dell' if ....

    quale sarebbe la forma piu' corretta?



    grazie in anticipo.



    M.

  2. #2

  3. #3
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    il loadSound avvia automaticamente il suono senza bisogno di dargli start, quindi se inizializzi una variabile booleana subito dopo quel comando, puoi usare quella per verificare se il suono è già in esecuzione

    Codice PHP:
    var sound_site:Sound = new Sound();
    sound_site.onLoad = function(success:Boolean):Void {
        if (
    success) {
            
    trace("Sound Loaded");
            
    game_sound.start(0,999);
        }
    };
    sound_site.loadSound("sound_city.mp3"false);
    var 
    sound_started true
    sul pulsante verifichi se la variabile è true e se non lo è lo avvii da 0

    Codice PHP:
    on (release) {
        
    _root.ani_stage.play();
        if (!
    _root.sound_started){
            
    _root.sound_site.start(0999);
        }
    }; 
    ovviamente la cosa ha senso nel momento in cui c'è un pulsante che stoppa il suono e a cui dovrai aggiungere la valorizzazione della variabile sound_started=false

    Codice PHP:
    on (release) {
        
    _root.sound_site.stop();
        
    _root.sound_started false;


  4. #4
    ciao And80

    grazie della risposta.

    ho visto il tuo post.

    Codice PHP:
    on (release) {
        
    _root.ani_stage.play();
        if (!
    _root.sound_started){
            
    _root.sound_site.start(0999);
        }
    }; 
    pero' no manca l' else?

    cioe' io dovrei dirgli se il suono e' gia' in esecuzione non dovrebbe eseguirlo....

  5. #5
    con quella gli dici di eseguirlo solo se non è in esecuzione (che è la stessa cosa)

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    l'else non serve, perchè se il suono è già in esecuzione non si deve eseguire alcuna azione, quindi non è necessario dichiararlo
    cioè, se lo dichiarassi faresti:

    Codice PHP:
    on (release) {
        
    _root.ani_stage.play();
        if (!
    _root.sound_started){
            
    _root.sound_site.start(0999);
        } else {
            
    // nessuna azione
        
    }
    }; 
    ma non è necessario farlo

  7. #7
    mmm i suoni si accavallano ....


    ho visto che hai aggiunto


    Codice PHP:
    var sound_started true

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ma, aspetta tu parli di suoni diversi? cioè non devi controllare un suono, devi evare che se è in esecuzione quello di sfondo, si attivi l'altro? fammi capire bene, perchè credo di essere fuori strada

  9. #9
    allora io carico piu' suoni ....
    ovvero

    var sound_beach:Sound = new Sound();
    sound_site.onLoad = function(success:Boolean):Void {
    if (success) {
    trace("Sound Loaded");
    sound_beach.start(0,999);
    }
    };
    sound_beach.loadSound("sound_beach.mp3", false);



    poi un altro

    var sound_city:Sound = new Sound();
    sound_city.onLoad = function(success:Boolean):Void {
    if (success) {
    trace("Sound Loaded");
    sound_city.start(0,999);
    }
    };
    sound_city.loadSound("sound_city.mp3", false);


    qual'e' il problema ? se io attivo il suono da un pulsante e poi premo un altro pulsante (che ha la stessa funzione) i suoni si accavallano.

    io dovrei quindi dirgli, se il suono e' in esecuzione non eseguirlo un altra volta.

    non so se mi sono spiegato bene.



    grazie.

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Allora direi che il metodo è lo stesso che ti ho indicato, solo che per gestire più suoni devi usare più variabili booleane e poi fai le dovute verifiche sui pulsanti che attivano i suoni e vedi se, nel caso di due suoni, entrambe le variabili sono "false" e in quel caso attivi il suono

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.