Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336

    Rilascio tasti tastiera

    Ciao,
    io ho come eventi onKeyUp e onKeyDown.

    Il mio problema è che vorrei che la mia funzione venisse eseguita solo se vengono rilasciati tutti i tasti.

    Se io schiaccio ad esempio 2 tasti contemporaneamente e rilascio solo uno dei 2, onKeyUp viene captato ed esegue la funzione.

    Io ho risolto mettendo i codici dei tasti in un array e cancellando i loro valori quando vengono rilasciati. solo se all'interno dell'array non ci sono valori allora esegue la mia funzione:

    codice:
    myArray = new Array();
    
    keyListener = new Object();
    
    keyListener.onKeyDown = function() {
    	
    	myarray[Key.getCode()]="x";
    	
    }
    
    keyListener.onKeyUp = function() {
    	
    	delete myArray[Key.getCode()];
    	
    	vararray=false;
    	
    	for(i=0;i<=myArray.length;i++)
    	{
    		if(myarray[i]=="x")
    		{
    			vararray=true;
    			
    		}
    		
    	}
    	
    	if(vararray==false)
    	{
    		trace("Funzione eseguita");
    	}
    	
    }
    
    Key.addListener(keyListener);
    Esiste un modo più semplice o questa è la cosa migliore?

  2. #2
    Utente di HTML.it L'avatar di NAP
    Registrato dal
    Jan 2001
    Messaggi
    4,398

    Re: Rilascio tasti tastiera

    Originariamente inviato da Jumpychan
    Il mio problema è che vorrei che la mia funzione venisse eseguita solo se vengono rilasciati tutti i tasti.

    Ciao, cosa vuol dire "tutti i tasti"? Forse volevi dire "qualunque tasto sia rilasciato". Perché... mi chiedo: chi schiaccerebbe tutti i tasti?

    Se io schiaccio ad esempio 2 tasti contemporaneamente e rilascio solo uno dei 2, onKeyUp viene captato ed esegue la funzione.

    La funzione di cui parli, è unica oppure ognuno dei tasti deve eseguirne una tutta sua?

    Nel primo caso (un'unica funzione-sempre-la-stessa), basterebbe una clip vuota a cui associare:

    onClipEvent (keyUp) { // qualunque tasto sia rilasciato...
    nomeFunzione(); // ... fai quell'unica cosa, uguale, sempre.
    }

    Nel secondo caso (se ad ogni rilascio di un tasto deve partire una funzione tutta sua), allora è ovvio che quella funzione va scritta e richiamata dall'onKeyUp di ogni ogni tasto presente nell'array.


    Io ho risolto mettendo i codici dei tasti in un array e cancellando i loro valori quando vengono rilasciati. solo se all'interno dell'array non ci sono valori allora esegue la mia funzione

    Ed hai fatto bene.
    Come alternativa (scherzo), ci vorrebbe una funzione del tipo:

    keyListener.onKeyUp = function() {
    FlashReadMyMind ();
    }


    Ciao,

    NAP
    A volte la diplomazia va condita con un pizzico di siluri fotonici. (K. Janeway)

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.