In effetti la sintassi (diciamo che) è corretta ma c'è più che altro qualche problema di concetto.
Si tratta comunque delle basi di programmazione che sono valide in generale per ogni linguaggio e non solo per AS.
Ti spiego il problema..
Con questa riga:
codice:
_root.box1.onEnterFrame=funzione(1);
stai dicendo che "onEnterFrame" deve assumere il valore restituito da "funzione" (a cui hai passato il valore 1 come argomento).
Infatti, quando si indicano le parentesi a seguito del nome di funzione, si sta praticamente facendo una chiamata a tale funzione (quindi non si sta facendo un semplice riferimento).
In questo caso è come se ti aspettassi che "funzione(1)" ti restituisca un valore (che dovrà essere assegnato a onEnterFrame) , cosa che invece non avviene perché all'interno di "funzione" non c'è alcun "return" e pertanto onEnterFrame assumerà il valore "undefined".
Ovviamente intuisco che tu NON voglia attribuire a "onEnterFrame" il valore restituito da "funzione" ma bensì fare riferimento alla funzione di per se.
In questo caso dovresti avere uno script del genere:
codice:
_root.box1.onEnterFrame=funzione;
Devi tener presente però che la funzione onEnterFrame non accetta nessun argomento per cui non puoi passare alcun valore a questa funzione, nemmeno se gli assegni un'altra funzione come riferimento.
Eventualmente dovresti utilizzare un'altro sistema.
Ad esempio potresti assegnare una variabile a box1 in modo da recuperarla all'interno della funzione stessa:
codice:
function funzione() {
this._x = this._x+this.val;
}
box1.onEnterFrame = funzione;
box1.val=1;
Questo è un'esempio ma puoi fare in mille altri modi.