PDA

Visualizza la versione completa : TypeError: Error #1009


yader
26-06-2009, 19:03
Salve a tutti, premetto che non sono un esperto in flash/AS...Da giorni sto realizzando un form in cui suddivido la fase di registrazione in 2 fotogrammi...Al primo fotogramma i dati personali dell'utente, al secondo gli i dati di contatto (tel, email ecc...)...Ho associato al mio fla una classe as...Nel primo fotogramma tutto funziona correttamente...Quando tutti i dati sono corretti passo al 2° fotogramma, dove ho gli altri campi...Ma se voglio accedere a questi campi mi dà errore


TypeError: Error #1009: Impossibile accedere a una proprietà o a un metodo di un riferimento oggetto null

In pratica la classe as associata al fla mi vede solo i componenti (TextInput, Button ecc...) del primo fotogramma, non quelli del secondo!!!Come mai???

Spero di essere stato abbastanza chiaro...

Aiutatemi per favore a risolvere il problema....Non ho alternative di implementazione anche se penso che una maniera (brutta) per aggirare il problema ci sarebbe:

aggiungere e togliere dinamicamente tramite (addChild e removeChild) tutti i componenti, in modo da essere sicuro di far riferimento a qualcosa di non nullo

and80
26-06-2009, 19:50
Mi spiace, ma fino a che gli elementi non "esistono" per il player, non sono raggiungibili, quindi o gestisci gli script nel filmato, senza usare la document class, oppure devi usare un solo frame o istanziare gli oggetti del secondo frame anche nel primo (magari li nascondi in una parte del filmato che non si vede).

yader
27-06-2009, 00:51
Ma gli elementi nel secondo frame ci sono...ad esempio uso NOME, COGNOME e CF nel primo frame, TEL , EMAIL nel secondo frame...Ma è logico che nel primo frame non posso puntare nè a TEL, nè a EMAIL...Gli punto nel secondo frame ovviamente!!!E non capisco perchè non li vede!!!cioè non mi sembra una cosa tanto ovvia!!!

and80
27-06-2009, 10:02
No aspetta, tu hai detto che punti agli elementi usando la document class (main), quindi per il compilatore è inutile che quegli elementi esistano da qualche altra parte, devono esistere quando la classe viene letta, ossia nel primo frame.
Potresti creare un'eccezione verificando il frame, e usando try...catch potresti bloccare gli errori, una roba del genere:


if (currentframe == 2) {
try {
// prova ad usare gli elementi contenuti nel secondo frame
} catch (err:Error) {
// altrimenti segna un errore, se non scrivi niente qui l'errore non verrà rilevato dal compilatore
}
}

yader
27-06-2009, 10:36
Scusa anche con try/catch non evito l'errore, perchè il meccanismo lancia l'eccezione controllata ogni volta che faccio riverimento a componenti che non fanno parte del 1° frame

Guarda ti spiego meglio...
Nel mio Stage ho creato 3 fotogrammi:
1)Nel primo ho inserito NOME, COGNOME e CODICE FISCALE
2)Nel secondo EMAIL, TEL e FAX...
3)Nel terzo fotogramma il messaggio che tutti i campi sono ok

Ora, nel 1° fotogramma tutto ok, nel secondo mi serve un metodo che risalga al contenuto del campo EMAIL x verificare se esiste già un indirizzo di posta equivalente a quello appena inserito...cioè


controlla_email(EMAIL.text);

dove controlla_email(..) è un metodo che mi controlla l'esistenza dell'email (tramite PHP/MYSQL)

Non sono un esperto in AS, ho iniziato da 1 mese, ma penso ci vorrebbe un metodo per spostare tutto lo scenario al 2° frame (e non con il semplice gotoAndStop(2)) in modo che egli veda i componentin di quel fotogramma

and80
28-06-2009, 00:23
Strano che ti dia un'eccezione anche con il try...catch, lasciando il catch vuoto.
Comunque dipende da come è impostato il codice in questa classe. In ogni caso potresti tentare di accedere a quegli elementi tramite root, come se fossero elementi di un array associativo (se il campo del telefono si chiama "tel" potresti accedervi con root["tel"]).

Loading