- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- azzerare più variabili in flash 8
-
azzerare più variabili in flash 8
Salve a tutti.
Premessa
Ho un form realizzato in flash che comunica con un file php per inviare i dati compilati ad una mail, in pratica funziona così: L'utente compila i campi relativi a nome cognome ecc.., alcuni di questi sono obbligatori e nel caso non vengono compilati esce un messaggio di avviso che per tot secondi avvisa l'utente informandolo su quale campo non è stato compilato, dopo l'utente può riempire il campo vuoto e quindi fare click su di un tasto invia che trasmette i dati alla pagina php, questa invia la mail, da un messaggio di conferma e ricarica la pagina contenente il form.Problema
Nel caso l'utente abbia compilato un campo obbligatorio solo dopo il messaggio di errore e per un motivo x abbia cancellato il contenuto di un altro campo obbligatorio il form non restituisce più nessun errore come invece dovrebbe fare.Codice pulsante invio
on (release) {
if (nome == null)
{
gotoAndPlay("nome vuoto");
}
else if (cognome == null)
{
gotoAndPlay("cognome vuoto");
}
else if (cit == null)
{
gotoAndPlay("città vuoto");
}
else if (email == null)
{
gotoAndPlay("email vuoto");
}
else
{
gotoAndPlay("invia");
}}Codice variabili presente nel fotogramma 1
stop ();var variabile: LoadVars = new LoadVars();
variabile.nome = nome.text; //campo obbligatorio
variabile.cognome = cognome.text; //campo obbligatorio
variabile.ragsol = ragsol.text;
variabile.naz = naz.text;
variabile.cit = cit.text; //campo obbligatorio
variabile.cap = cap.text;
variabile.ind = ind.text;
variabile.tel = tel.text;
variabile.cell = cell.text;
variabile.fax = fax.text;
variabile.email = email.text; //campo obbligatorio
variabile.testomail = testomail.text;Codice presente in uno dei target chiamati dal tasto invio in caso di errore
gotoAndStop (1); //ritorna al fotogramma 1 per riavviare il formConclusioni
credo che il problema consista nel fatto che quando l'utente immette i dati li memorizza in variabili che rimangono tali anche quando il campo che le ha definite nel primo tentativo di invio viene cancellato, per risolvere questo problema credo che dovrei azzerare le variabili ogni qual volta si verifica un errore. Sapete dirmi come si fa? Io ho provato con var variabile.nome = null; ma non funziona.:(
-
Ciao
Quando appare il messaggio 'compilare i campi obligatori ', sposti anche la timeline ?
-
Il messaggio si trova più avanti sulla timeline, lo raggiungo tramite il nome che assegno al fotogramma, tutti i campi compilati continuano a vedersi, il messaggio appare su un altro livello che sovrasta i campi, solo il pulsante invia si interrompe prima, questo per evitare che mi attivi la funzione rollOut dello stesso, dopo aver visualizzato il messaggio di errore ritorna al fotogramma 1.
Tu pensi che dipenda dal fatto che i campi non vengono cancellati prima?
Scusa se non ho risposto subito, ero andato a mangiare.
-
Secondo me è proprio quello il problema.
Quando, dopo il messaggio, la timeline torna al frame 1, le variabili dichiarate nel frame vengono ricreate.Dovresti provare a non muovere la timeline, bensì fai un attachMovie della MovieClip che contiene il messaggio.
-
per attachMovie intendi una copia dei fotogrammi da mettere in corrispondenza del messaggio di errore? ovviamente senza rendere consecutiva la sequenza, effettivamente dovrebbe funzionare, ora provo, anche se credo che le dimensioni del il file cresceranno un po' in questo modo. Scusa il chiarimento ma anche se imparo presto per me queste sono cose nuove, con flash per ora ho fatto solo spot pubblicitari senza script.
Comunque grazie mille.
-
attachMovie sarebbe ' attaccare ' una MovieClip dalla libreria allo stage usando il metodo attachMovie();
Sulla guida di Flash hai un valido esempio di attachMovie
-
vado a controllare la guida
-
ma in questo modo l'utente deve riscrivere tutti i campi se non erro, quindi se ha scritto un testo piuttosto lungo si ritroverà a doverlo riscrivere o sbaglio?
-
Non deve riscriverli perchè non muovi la timeline e le varibili rimangono le stesse.
Con attachMovie è come se facessi apparire una pop-up col messaggio di errrore.
-
ok, sto cercando di capirci qualcosa tramite la guida ma mi sa che devo stravolgere tutto poiché non ho usato un clip filmato per usare questo metodo.
-
scusa se continuo a postare, ma è un po' complicato. Se ho capito bene devo fare un clip filmato che contiene il messaggio di errore, questo clip filmato anziché essere messo direttamente sulla timeline devo richiamarlo tramite il metodo attachMovie();
Quindi devo cambiare il codice del pulsante se non erro.
Altra domandina, ma nel flip filmato oltre al messaggio devo mettere anche un secondo form?
-
Ciao
Selezioni la MovieClip col messaggio che hai nella libreria. Click destro, identificatore. Ti si apre una finestra, attiva l' opzione ' esporta per Actionscript ' e nel campo di testo identificatore scrivi: messaggio.
Selezioni il keyframe dove si trova il pulsante. Apri il pannello azioni e scrivi:
nomeBottone.onRelease=function()
{
_root.attachMovie('messaggio');
}
-
ho fatto come dici, ovvero:
Ho creato il clip filmato contente il messaggio questo clip si chiama err nome vuoto poi facendo click destro su di esso nella libreria ho fatto proprietà e ho messo il flag su esporta per ActionScript e su Esporta nel primo fotogramma lasciando l'identificatore con il nome err nome vuotopoi ho fatto click su ok, Premetto che il clip filmato non è presente sulla timeline ma solo in libreria. perché non funziona? Questo è il codice.invia.onRelease=function()
{
if (nome == null)
{
_root.attachMovie('err nome vuoto');
}
else if (cognome == null)
{
gotoAndPlay("cognome vuoto");
}
else if (cit == null)
{
gotoAndPlay("città vuoto");
}
else if (email == null)
{
gotoAndPlay("email vuoto");
}
else
{
gotoAndPlay("invia");
}
}le condizioni che contengono gotoAndPlay funzionano quella che contiene _root.attachMovie no, inoltre se esporto in flash 6 funzionano le condizioni == se esporto in flash 8 va direttamente alla riga gotoAndPlay("invia"); forse devo cambiare lo script per esportare in flash 8? Esporto con ActionScript 2.0 in entrambi i casi.
-
Non mettere spazi nel nome identificatore delle MovieClip da attaccare. Vediamo se il problema è quello.
-
a ok, grazie, comunque sto rifacendo tutto col metodo attachMovie creando clip filmato differenti con diversi identificatori, speriamo funzioni, ed il problema dell'esportazione in flash8 lo risolvo con lo spazio?
-
Non pensare ai problemi con Flash 8. Lavora su Flash 8 e sei a posto col mondo
Non muovere la Timeline