Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Onpress

  1. #1

    Onpress

    Ciao a tutti,
    sto realizzando dei controlli per regolare il volume di un file audio caricato ( _level10.musica)
    quello che vorrei è che tenendo premuto sul pulsante + il volume aumenti e quando rilascio il pulsante si fermi..
    stessa cosa ma al contrario per il pulsante meno..
    Riesco a far aumentare il volume e ad abbassarlo ma questo avviene a scatti .. ovvero premo sul pulsante + ( aumenta di 1) ma tenendo premuto non avanza, rimane fermo ( come se fosse impostasto su OnRelease) ho provato ad inserire un setinterval , ma una volta attivato ho provato a disattivarlo nello stato OnRelease del pulsante ma senza successo.. rimane attivo..
    Altre volte ho messo il pulsante dentro un movieClip e utilizzato il metodo onClipEvent (enterFrame) ma so che occupa molto il processore..
    suggerimenti??

    posto il codice che ho utilizzato ora con il setInterval dove sbaglio?? C' è un metodo piu' "pulito" ed efficace?? Grazie

    Codice PHP:
    function volume_piu() {
        
    volume_musica _level10.musica.getVolume();
        if (
    volume_musica<100) {
            
    volume_musica++;
            
    _level10.musica.setVolume(volume_musica)();
        }else{
        
    clearInterval(i_piu);
        }
    }
    function 
    volume_meno() {
        
    volume_musica _level10.musica.getVolume();
        if (
    volume_musica>=0) {
            
    volume_musica--;
            
    _level10.musica.setVolume(volume_musica)();

        }
    }

    piu.onPress = function() {
        var 
    i_piu:Number setInterval(volume_piu100);

    };
    piu.onRelease = function() {
        
    clearInterval(i_piu);
    };

    meno.onPress = function() {
        var 
    i_meno:Number setInterval(volume_meno100);
    };
    meno.onRelease= function() {
        
    clearInterval(i_meno);

    }; 
    Designer ci si i(n)venta...
    www.3dtre.com

  2. #2
    Utente di HTML.it L'avatar di gobbo89
    Registrato dal
    Jun 2006
    Messaggi
    816
    Così dovrebbe andare...
    Io naturalmente ho tolto _level10 perchè come vedi definivo musica sullo stesso livello, attaccando un suono dalla libreria. Adattalo ai tuoi percorsi e dovrebbe andare.

    codice:
    var musica:Sound = new Sound();
    var volumeMusica:Number;
    var edit:Boolean = false;
    var piuInterval:Number;
    var menoInterval:Number;
    var fattore:Number = 10;
    musica.attachSound("suono");
    musica.start();
    function volumePiu():Void {
    	trace("piu");
    	if (edit) {
    		volumeMusica = musica.getVolume();
    		if (volumeMusica<100) {
    			volumeMusica += fattore;
    			musica.setVolume(volumeMusica);
    			trace(musica.getVolume());
    		}
    	}
    }
    function volumeMeno():Void {
    	trace("meno");
    	if (edit) {
    		volumeMusica = musica.getVolume();
    		if (volumeMusica>0) {
    			volumeMusica -= fattore;
    			musica.setVolume(volumeMusica);
    			trace(musica.getVolume());
    		} else {
    			musica.setVolume(0);
    		}
    	}
    }
    piu.onPress = function() {
    	edit = true;
    	piuInterval = setInterval(volumePiu, 100);
    };
    piu.onRelease = piu.onReleaseOutside=function () {
    	edit = false;
    	clearInterval(piuInterval);
    };
    meno.onPress = function() {
    	edit = true;
    	menoInterval = setInterval(volumeMeno, 100);
    };
    meno.onRelease = meno.onReleaseOutside=function () {
    	edit = false;
    	clearInterval(menoInterval);
    };

  3. #3
    grazzzie così funziona!!
    perchè la mia non andava ?? per il controllo "edit" ?? Quindi quando chiamo una funzione con un set interval non basta bloccare l' intervallo?? devo bloccare anche la funzione?? :master:
    Designer ci si i(n)venta...
    www.3dtre.com

  4. #4
    Utente di HTML.it L'avatar di gobbo89
    Registrato dal
    Jun 2006
    Messaggi
    816
    Originariamente inviato da philip_stark
    grazzzie così funziona!!
    perchè la mia non andava ?? per il controllo "edit" ?? Quindi quando chiamo una funzione con un set interval non basta bloccare l' intervallo?? devo bloccare anche la funzione?? :master:
    Non si tratta di bloccare la funzione piuttosto che l'intervallo...

    A parte il fatto che nel tuo codice manca la definizione della variabile musica e l'associazione di un suono [presumo omesse volontariamente], il problema principale è costituito dal fatto che hai definito le due variabili del setInterval "dentro" l'evento onPress dei bottoni.

    Facendo così, quando provi a fare il clearInterval, fornisci il percorso sbagliato a flash.
    Se infatti provi a mettere un trace(i_piu) nell'onRelease ti restituirà undefined.
    E' sempre buona norma in AS2 come in AS3, definire le variabili nella "_root" corrente.

    Detto questo non escludo che il tuo codice potesse avere altri problemi, ma quando l'ho testato mi sono fermato a quello degli intervalli.


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.