Scusate, ma faccio fatica a capire cosa fa l'operatore "!".
Qualcuno mi può aiutare per cortesia?
-
Scusate, ma faccio fatica a capire cosa fa l'operatore "!".
Qualcuno mi può aiutare per cortesia?
-
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>
Quindi:come si dovrebbe interpretare?codice:if (!myvar) { myvar = !myvar; }
-
significa:
ma non ha molto senso come codice... l'if è inutile e il codice rende sempre myvar = true.codice:if (myvar == false) { myvar = not myvar; }
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.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?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; } } }
-
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)
Scusa panta ma.... credo proprio che tu ti stia sbagliando.
Come detto, il codice a cui mi riferivo equivale a:
Infatti: se myvar è falso allora settalo su vero, altrimenti (ovvero con myvar vero) non fare nientecodice:myvar = true
-> 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:
che, a seconda dei casi, richiamerai così:codice:function control_sound (myvar, time) { if (getTimer()-elapsed>time) { if (!myvar) { _root.sound.start(0, 1); myvar = !myvar; } }
oppure così:codice:control_sound(myvar1, 2000);
Se mi sono spiegato male (probabile) dimmelo.codice:control_sound(myvar2, 4000);
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)
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":Esempio di utilizzo:codice:function suona(nome, stack, myvar) { if (getTimer()-elapsed>Number(stack)) { if (!(this[myvar])) { Object(_root[nome]).start(0, 1); this[myvar] = !(this[myvar]); } } }Che dite voi? Funziona, ma potrei fare meglio?codice:suona("suono1", 2000, 2000)
Comunque ad essere sincero non ho ancora capito l'operatore "!". Nella fattispecie il codice(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?codice:if (!myvar) { myvar = !myvar; }
![]()
-
Il codice da te usato va benissimo, anzi secondo me è fin troppo formaleNel senso che dovrebbe funzionare ugualmente così (poi magari mi sbaglio, tu prova e se non va rimetti quello che avevi fatto
):
Per quanto riguarda !, nel codice che hai riportato tu significa: se "myvar" è falso, allora "myvar" prende il suo opposto".codice:function suona(nome, stack, myvar) { if (getTimer()-elapsed>stack) { if (!myvar) { _root.nome.start(0, 1); myvar = true; } } }
ps @panta: np![]()