Показать сообщение отдельно
Старый 27.05.2013, 16:16
ProcXel.A вне форума Посмотреть профиль Найти все сообщения от ProcXel.A
  № 8  
Ответить с цитированием
ProcXel.A
Banned

Регистрация: May 2013
Сообщений: 60
Немного теории.
Когда назначается слушатель методом
Код AS3:
addEventListener( MouseEvent.CLICK, Func );
То в слушатель передается не имя функции, а объект функции. Поэтому переназначить функцию слушателя вот так
Код AS3:
var Func:Function = NewFunc;
нельзя. В слушатель не добавится новая функция таким образом.

Если тебе нужно изменить функцию слушателя, то тебе нужно удалить старый слушатель и повесить новый.
Код AS3:
var action:Boolean = true;
btn.addEventListener( MouseEvent.CLICK, Click1 );
btn2.addEventListener( MouseEvent.CLICK, Change );
function Click1( e:MouseEvent ):void {
	trace( 1 );
}
function Click2( e:MouseEvent ):void {
	trace( 2 );
}
function Change( e:Event ) {
	if ( action == true ) {
		btn.removeEventListener( MouseEvent.CLICK, Click1 );
		btn.addEventListener( MouseEvent.CLICK, Click2 );
	}
	else {
		btn.removeEventListener( MouseEvent.CLICK, Click2 );
		btn.addEventListener( MouseEvent.CLICK, Click1 );
	}
	action = !action;
}


Последний раз редактировалось ProcXel.A; 27.05.2013 в 16:35.