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

    Cosa fa l'operatore "!"?

    Scusate, ma faccio fatica a capire cosa fa l'operatore "!".
    Qualcuno mi può aiutare per cortesia?
    -

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795
    equivale a "not". quindi if(!false) e if(not false) sono la stessa cosa.
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    163
    Quindi:
    codice:
    if (!myvar) {
    	myvar = !myvar;
    }
    come si dovrebbe interpretare?
    -

  4. #4
    significa:
    codice:
    if (myvar == false)
    {
        myvar = not myvar;
    }
    ma non ha molto senso come codice... l'if è inutile e il codice rende sempre myvar = true.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    163
    Marsellus hai ragione,
    questo codice è un aiuto di Nix82. In pratica dopo 2 secondi parte un suono, dopo 4 ne parte un'altro. Unico neo, devo usare due "myvar" (1 e 2) altrimenti i suoni successivi al primo non partono.
    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;
    		}
    	}
    
    }
    Siccome ho intenzione di mettere (per praticità) la condizione "if" dentro a una funzione, "myvar" deve essere ogni volta diversa, sennò come dicevo il suono parte la prima volta ma non le successive. Sai se c'è un modo?
    -

  6. #6
    non è per niente vero che quel codice è inutile...

    significa:

    se myvar è falso INVERTI myvar e quindi settalo su vero...

    usato nell'assegnazione setta il valore inverso per un booleano
    cya
    "La consapevolezza di Case suddivisa come perle di mercurio. La sua visione era sferica, come se una singola retina rivestisse la superficie interna di un globo che conteneva tutte le cose, se tutte le cose si potevano contare." —Neuromante, William Gibson (1984)

  7. #7
    Scusa panta ma.... credo proprio che tu ti stia sbagliando.
    Come detto, il codice a cui mi riferivo equivale a:
    codice:
    myvar = true
    Infatti: se myvar è falso allora settalo su vero, altrimenti (ovvero con myvar vero) non fare niente
    -> ciò equivale a affermare myvar = true.

    Per quanto riguarda la domanda fatta, non ho ben capito che funzione vuoi usare né dove vuoi metterla (sarà a causa dell'ora!), ma a quanto ho capito ti bsata scrivere una funzione a cui passi come argomento la variabile (myvar1 o myvar2) e il tempo nella condizione dell'if (2000 o 4000 stando a quanto hai scritto). In particolare, una cosa del tipo:
    codice:
    function control_sound (myvar, time)
    {	
            if (getTimer()-elapsed>time)
            {
    		if (!myvar)
                    {
    			_root.sound.start(0, 1);
    			myvar = !myvar;
    	        }
    }
    che, a seconda dei casi, richiamerai così:
    codice:
    control_sound(myvar1, 2000);
    oppure così:
    codice:
    control_sound(myvar2, 4000);
    Se mi sono spiegato male (probabile) dimmelo.

  8. #8
    ah scusa marsellus... devo aver capito male

    l'importante che che simo100 capisca bene
    "La consapevolezza di Case suddivisa come perle di mercurio. La sua visione era sferica, come se una singola retina rivestisse la superficie interna di un globo che conteneva tutte le cose, se tutte le cose si potevano contare." —Neuromante, William Gibson (1984)

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    163
    Marsellus e Panta, grazie dell'aiuto.
    Mi spiego: in pratica al passaggio dei 2000ms e dei 4000ms deve partire uno tra i diversi suoni creati a suo tempo con "new Sound()" e "attachSound()" nella "_root". La funzione, per questo scopo, dovrebbe contemplare il richiamo di: 1)-del tipo di suono, 2)-del tempo esatto in cui farlo partire, e in ultimo 3)-la distinzione di volta in volta di "myvar" altrimenti i suoni successivi al primo (che parte regolarmente) non partirebbero. Questa è la funzione che ho adottato per differenziare "myvar":
    codice:
    function suona(nome, stack, myvar) {
    	if (getTimer()-elapsed>Number(stack)) {
    		if (!(this[myvar])) {
    			Object(_root[nome]).start(0, 1);
    			this[myvar] = !(this[myvar]);
    		}
    	}
    }
    Esempio di utilizzo:
    codice:
    suona("suono1", 2000, 2000)
    Che dite voi? Funziona, ma potrei fare meglio?
    Comunque ad essere sincero non ho ancora capito l'operatore "!". Nella fattispecie il codice
    codice:
    if (!myvar)
    {
        myvar = !myvar;
    }
    (scusate ma non so ancora dire la mia, se sia o non sia utile) può voler dire: se "myvar" è vero allora convertilo in falso, e poi, "myvar è uguale al contrario di "myvar", oppure no?

    -

  10. #10
    Il codice da te usato va benissimo, anzi secondo me è fin troppo formale Nel senso che dovrebbe funzionare ugualmente così (poi magari mi sbaglio, tu prova e se non va rimetti quello che avevi fatto ):
    codice:
    function suona(nome, stack, myvar) {
    	if (getTimer()-elapsed>stack) {
    		if (!myvar) {
    			_root.nome.start(0, 1);
    			myvar = true;
    		}
    	}
    }
    Per quanto riguarda !, nel codice che hai riportato tu significa: se "myvar" è falso, allora "myvar" prende il suo opposto".


    ps @panta: np

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.