Руководство по actionscript. часть 4, стр. 024
Листинг 21.3. Поглощение события
package { import flash. display. Sprite; import flash. events.*;
public class ToolPanel extends Sprite { private var enabled:Boolean;
public function ToolPanel ( ) { enabled = false;
var tool 1:Tool = new TooK ); var tool2:Tool = new TooK ); var tool3;Tool = new TooK );
tool 2.x = tool 1.width + 10;
tool 3.x = tool 2.x + tool 2.width + 10;
addChild(tooll); addChild(tool2); addChild(tool3);
// Регистрируем приемник в этом объекте для уведомлений // о возникновении события MouseEvent. CLICK в фазе захвата addEventListener(MouseEvent. CLICK, clickListener, true);
}
private function clickListener (e:MouseEvent):void { // Если данный объект ToolPanel неактивен… if (!enabled) {
// …останавливаем процесс диспетчеризации данного события -// щелчка кнопкой мыши, чтобы оно не достигло потомков данного // объекта ToolPanel
e. stopPropagation( );
traceC’Panel disabled. Click event dispatch halted.»);
}
}
}
}
В повседневной разработке приложений метод stopPropagation ( ) используется гораздо более часто, чем stopImmediatePropagation ( ). Тем не менее второй метод применяется в следующих ситуациях:
? когда объект-получатель желает, чтобы его собственные приемники не вызывались в результате возникновения события;
? когда программа не желает, чтобы приемники реагировали на данное событие.