Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    311

    abbassare gradualmente evento audio

    ciao,
    premetto che non sono un esperto di flash.
    Ho creato un paio di scene... la prima sarebbe un MENU.
    Nella scena MENU entrano i vari pulsanti per le sezioni e parte un MC con dentro un evento audio in loop.
    Quando clicco su un pulsante (che mi dirige verso un'altra SCENA), vorrei che la base musicale (in questo caso il MC che ho menzionato prima) si abbassasse gradualmente fino a scomparire poichè in ogni SCENA è presente un evento audio in loopo diverso e che, all'uscita, dovrà fare la stessa cosa cioè abbassare gradualmente l'audio fino a scomparire.
    Ho cercato sia qui che altrove, ma vengono spiegate applicazioni molto diverse dalla mia e non riesco ad applicarle al mio progetto.
    Grazie mille.

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,780
    Ciao..

    Dovrai utilizzare un oggetto Sound.
    Se hai la traccia audio direttamente sulla timeline non potrai fare ciò che stai chiedendo.

    Dai uno sguardo all'utilizzo dell'oggetto sound..

    Una volta che hai questo oggetto potrai utilizzare il metodo setVolume come ti pare..
    ad esempio con tre righe di codice e l'utilizzo della classe tween puoi facilmente creare l'effetto fade-out.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    311
    grazie, sono riuscito a creare un associazione con questo script:

    loop = new Sound(apertura);
    loop = new Sound(suono);
    loop.start();
    loop.setVolume(100);

    ma per quando riguarda la sfumatura in uscita, al momento me la sono giocata con una decina di keyframe ed impostazione "loop.setVolume();" da 90 a 0.
    Non ho trovato aiuti per la funzione tweet che mi hai segnalato... non importa cmq, al momento ho risolto. grazie mille!
    Ciao

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,780
    Benissimo..
    Se hai risolto buon per te

    Anche se non capisco perché hai dichiarato due volte l'oggetto "loop"
    codice:
    loop = new Sound(apertura);
    loop = new Sound(suono);
    .. non ha senso.. :master:

    Comunque nel mentre ho elaborato una funzione per il fade automatico utilizzando la classe tween, applicabile a qualsiasi oggetto sound e con possibilità di specificare vari parametri..
    Potrebbe tornare utile a qualcuno..
    Codice PHP:
    // creo degli oggetti sound applicandoli a dei mc contenitori
    var suono1 = new Sound(_root.createEmptyMovieClip("snd1"1));
    var 
    suono2 = new Sound(_root.createEmptyMovieClip("snd2"2));
    //
    // associo dei campioni che ho inserito in libreria con proprietà di concatenamento
    suono1.attachSound("campione 1");
    suono2.attachSound("campione 2");
    //
    // funzione soundFade (oggetto sound, volume iniziale, volume finale, durata del fade, [azione])
    var soundFade:Function = function (snd:Objectini:Numberend:Numberduration:Numberaction:Boolean):Void {
        
    trace(snd._name)(snd.fade) && (snd.fade.stop());
        (
    ini == null) ? ini=snd.getVolume() : snd.setVolume(snd.vol);
        (
    action == "start") && (snd.start());
        
    snd.fade = new mx.transitions.Tween(snd"vol"mx.transitions.easing.Regular.easeOutinienddurationtrue);
        
    snd.fade.onMotionChanged = function() {
            
    snd.setVolume(snd.vol);
        };
        if (
    action == "stop") {
            
    snd.fade.onMotionFinished = function() {
                
    snd.stop();
            };
        }
    };
    // ----------------------------------------------------
    // varie modalità di applicazione della funzione soundFade
    //
    // fade-in da 0 a 100 in 4 secondi con start dell'oggetto sound indicato
    soundFade(suono101004"start");
    //
    // fade-out dal volume corrente a 0 in 5 secondi con stop al termine
    soundFade(suono1null05"stop");
    //
    // fade da 20 a 80 in mezzo secondo
    soundFade(suono12080.5);
    //
    // mix tra due tracce in 10 secondi
    suono1.start();
    soundFade(suono1100010"stop");
    soundFade(suono2010010"start"); 
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    311
    non va bene uffa!...

    ho molti problemi con queste funzioni.
    E' una cosa strana a mio parere...
    Ho circa 7 scene
    Intro, Menu, Scena1, Scena2, Scena3, Scena4, Scena5
    Dal menu con 5 pulsanti distinti rimando alle Scene cliccate, e fin qui tutto bene.
    Ad ogni scena, associo un audio; ho precedentemente creato dei MC (uno per ogni audio) e per ognuno ho inserito l'audio desiderato impostando le ripetizioni e il Fade In.
    Metto questo MC sul primo frame della Scena e nello stesso frame scrivo questo codice:
    Codice PHP:
    scena1= new Sound(scena1_mc);
    scena1.start(1,100);
    scena1.setVolume(100); 
    dove "scena1" è il nome dell'istanza del MC che cambia per ogni scena.
    Ogni scena non è altro che un sequenza di immagini.
    Al termine della scena ho impostato su alcuni KeyFrame il volume simulando un FadeOut (l'ho fatto prima di vedere il codice di KillerWorm), con il codice:
    Codice PHP:
    scena1.setVolume(90);

    //dopo un paio di KeyFrame
    scena1.setVolume(80);

    // ecc. fino ad azzerare il volume
    scena1.stop();

    //quindi torno al menu
    gotoAndPlay("menu",30); 
    Il problema vero arriva adesso...
    se creo una scena (scena2) anche completamente vuota da oggetti e codici, ma ordinata SOTTO la scena1, sento l'audio che avevo messo nella scena1.
    Stessa cosa se creo un'ulteriore scena (scena3) posizionata sotto la scena2, in quel caso sento sia l'audio della scena1 che l'audio della scena2... contemporaneamente... e così via per tutte le ulteriori scene.
    Qualcuno può aiutarmi a capire come gestire chiaramente questi audio ?

    Sentiti ringraziamenti.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    311
    Killer:
    ho provato ad usare il tuo script, ma quando faccio partire il fade con il codice:
    Codice PHP:
    soundFade(suono101004"start"); 
    mi restituisce un errore UNDEFINED sulla finestra output e l'audio non parte in fade ma subito a volume alto. Stessa cosa per il Fade Out:
    Codice PHP:
    soundFade(suono1null05"stop"); 
    e poi... come faccio a far partire la traccia audio in loop ?
    Da come hai indicato la traccia viene eseguita una sola volta.

    Non riesco a levarci le gambe... pensavo che fosse mooooolto più facile fare un fading

    Qualcuno sa almeno indicarmi cosa cercare o dove posso riferirmi ?
    Se cerco "controlli flash audio" trovo solo dei player audio fatti in flash oppure dei controlli per fermare, partire, e mettere in pausa un solo file, ma nessun esempio è applicabile a quello che devo fare, cioè l'audio diverso per ogni scena e con il fade-in all'ingresso ed il fade-out all'uscita.
    Grazie

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,780
    C'era un trace che non centrava niente.. probabilmente è restato li dopo qualche test..

    Ecco lo script corretto!!
    Vai tranquillo ora deve funzionare per forza..

    Codice PHP:
    // creo degli oggetti sound applicandoli a dei mc contenitori
    var suono1 = new Sound(_root.createEmptyMovieClip("snd1"1));
    var 
    suono2 = new Sound(_root.createEmptyMovieClip("snd2"2));
    //
    // associo dei campioni che ho inserito in libreria con proprietà di concatenamento
    suono1.attachSound("campione 1");
    suono2.attachSound("campione 2");
    //
    // funzione soundFade (oggetto sound, volume iniziale, volume finale, durata del fade, [azione])
    var soundFade:Function = function (snd:Objectini:Numberend:Numberduration:Numberaction:Boolean):Void {
       (
    snd.fade) && (snd.fade.stop());
        (
    ini == null) ? ini=snd.getVolume() : snd.setVolume(snd.vol);
        (
    action == "start") && (snd.start());
        
    snd.fade = new mx.transitions.Tween(snd"vol"mx.transitions.easing.Regular.easeOutinienddurationtrue);
        
    snd.fade.onMotionChanged = function() {
            
    snd.setVolume(snd.vol);
        };
        if (
    action == "stop") {
            
    snd.fade.onMotionFinished = function() {
                
    snd.stop();
            };
        }
    };
    // ----------------------------------------------------
    // varie modalità di applicazione della funzione soundFade
    //
    // fade-in da 0 a 100 in 4 secondi con start dell'oggetto sound indicato
    soundFade(suono101004"start");
    //
    // fade-out dal volume corrente a 0 in 5 secondi con stop al termine
    soundFade(suono1null05"stop");
    //
    // fade da 20 a 80 in mezzo secondo
    soundFade(suono12080.5);
    //
    // mix tra due tracce in 10 secondi
    suono1.start();
    soundFade(suono1100010"stop");
    soundFade(suono2010010"start"
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    311
    ok, ora funziona, ma rimane per me il problema che non fa il loop.
    E poi... in questo modo non posso impostare il punto di "taglio" inizio/fine dell'audio per la ripetizione perfetta come si usa nell'iserimeto audio "evento"...

    ma non si può applicare qualcosa del tipo "...creo un MC con audio "evento" perfettamente tagliato per loopare, pilotando il volume e il fade dalla timeline principale..." ? oppure con un MC esterno ?

    grazie killer.

  9. #9
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,780
    Per i loops ho inserito un parametro nella funzione..

    Ecco l'ulteriore modifica:
    Codice PHP:
    var soundFade:Function = function (snd:Objectini:Numberend:Numberduration:Numberaction:Booleanloop:Number):Void {
        (
    snd.fade) && (snd.fade.stop());
        (
    ini == null) ? ini=snd.getVolume() : snd.setVolume(snd.vol);
        (
    action == "start") && (snd.start(0loop));
        
    snd.fade = new mx.transitions.Tween(snd"vol"mx.transitions.easing.Regular.easeOutinienddurationtrue);
        
    snd.fade.onMotionChanged = function() {
            
    snd.setVolume(snd.vol);
        };
        if (
    action == "stop") {
            
    snd.fade.onMotionFinished = function() {
                
    snd.stop();
            };
        }
    };
    // esegui fade-in 
    soundFade(suono101004"start"999); 
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  10. #10
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,780
    Per controllare il suono di un mc basta che associ l'oggetto sound a quella determinata istanza..

    codice:
    var suono1 = new Sound(istanzaConAudio);
    Quindi non dovrai utilizzare attachSound..

    Potrai comunque utilizzare la funzione soundFade allo stesso modo.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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.