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:
codice:
function foo(){
trace(this)
d = 20;
}
- se la chiamo da root il risultato è ovvio: "_level0" con d creata nella root
- se creo un mc e gli assegno:
codice:
onClipEvent (load) {
_root.foo();
}
il risultato è lo stesso e ok...
- se invece assegno da root:
codice:
mymc.onLoad = foo;
il trace mi dice "_level0.mymc" e io, ingenuo, mi aspetto che la variabile d sia in _level0.mymc invece è in root:
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:
codice:
mymc.onLoad = foo;
fosse uguale a scrivere in mymc:
codice:
onClipEvent (load) {
trace(this)
d = 20;
}
posso ottenere lo stesso risultato senza riempire il mio codice di this?
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