sto cercando di chiarimrmi le idee una volta per tutte...
mi sono letto le varie documentazioni di onClipEvent, this, function e function.call ma ancora ho qualche dubbio e la speranza è trovare qui qualcuno che mi illumini con un po' della sua conoscenza
la cosa che nn mi torna è questa:
definisco una funzione nella root:
- se la chiamo da root il risultato è ovvio: "_level0" con d creata nella rootcodice:function foo(){ trace(this) d = 20; }
- se creo un mc e gli assegno:
il risultato è lo stesso e ok...codice:onClipEvent (load) { _root.foo(); }
- se invece assegno da root:
il trace mi dice "_level0.mymc" e io, ingenuo, mi aspetto che la variabile d sia in _level0.mymc invece è in root:codice:mymc.onLoad = foo;
perchè?
mi chiedo:
che differenza c'è tra usare OnClipEvent oppure assegnare direttamente al gestore di evento una funzione?
l'errore che commettevo era pensare che scrivere:
fosse uguale a scrivere in mymc:codice:mymc.onLoad = foo;
posso ottenere lo stesso risultato senza riempire il mio codice di this?codice:onClipEvent (load) { trace(this) d = 20; }
forse ho solo bisogno di chiarirmi cosa accade quando faccio un assegnazione del genere nuovafunzione = funzione...
avete qualche buon testo di cui consigliarmi la lettura?
grazie per la pazienza e scusate per la marea di domande

Rispondi quotando
, per avere una funzione che ti dichiari la variabile nel movieclip da cui la richiami devi per forza usare il this, sì
