Показать сообщение отдельно
Старый 15.10.2012, 18:16
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 30  
Ответить с цитированием
AlexLucas
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Цитата:
Сообщение от in4core Посмотреть сообщение
вопрос снят.

Вопрос другого плана. Если кнопка подписана на 2 события клика, и одно из событий было удалено, то при нажатии все равно срабатывают оба. Как разрешить срабатывать только тому, которое не было удалено?! ( какой нить там preventDefault )
Код AS3:
public class Main extends Sprite 
	{
		private var btn:Sprite = new Sprite();
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			btn.graphics.beginFill(0xFF0000);
			btn.graphics.drawCircle(20, 20, 20);
			addChild(btn);
			btn.addEventListener(MouseEvent.CLICK, evt1);
			btn.addEventListener(MouseEvent.CLICK, evt2);
		}
 
		private function evt1(e:MouseEvent) {
			trace('1');
		}
 
		private function evt2(e:MouseEvent) {
			trace('2'); btn.removeEventListener(MouseEvent.CLICK, evt2);
		}
	}
Вот минимальный пример, который я воспроизвёл следуя вашему объяснению, при втором клике evt2 не срабатывает. Может вы его опять где-нибудь цепляете?