Цитата:
Сообщение от udaaff
mickfallout, автор хочет передать параметр вместе с событием, т.е. сама переменная необязательно должна быть доступна в объекте, в котором вы подписываетесь на это событие.
|
ну в таком виде как раз локальная переменная функции(function Main) передается в обработчик. в объекте она недоступна.

Код AS3:
package {
import flash.display.MovieClip;
import flash.events.*;
public class Main extends MovieClip {
public function Main() {
super();
var localArg:String = "local Argument";
var handler:Function = function(event:Event):void { multiArgumentHandler(event, localArg, handler); };
addEventListener(Event.ENTER_FRAME, handler);
}
public function multiArgumentHandler(event:Event, argument:String,handler:Function):void {
trace("localArgument = "+ argument );
removeEventListener(Event.ENTER_FRAME, handler);
}
}
}
Цитата:
Сообщение от gait
думал, что может быть есть простое решение (типа addEventListener(Event.ENTER_FRAME, traceNumEnterFrame(myVar)) 
|
Итого: вместо

Код AS3:
addEventListener(Event.ENTER_FRAME, traceNumEnterFrame(myVar))
писать

Код AS3:
var handler:Function = function(event:Event):void { traceNumEnterFrame(myVar); };
addEventListener(Event.ENTER_FRAME, handler);
и не забывать думать о том что если подписываешься на событие - скорее всего нужно будет и отписаться.