Показать сообщение отдельно
Старый 30.10.2006, 12:31
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 73  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
По умолчанию 79. Определение фазы события

Обработчик события в ActionScript 3 может определить фазу события (см. предыдущий совет о фазах событий) по свойству eventPhase, которое может принимать три значения:
  • EventPhase.CAPTURING_PHASE
  • EventPhase.AT_TARGET
  • EventPhase.BUBBLING_PHASE
Пример:
Код:
var circle:Sprite = new Sprite();
circle.graphics.beginFill(0x4080A0);
circle.graphics.drawCircle(50, 50, 25);
addChild(circle);

circle.addEventListener(MouseEvent.CLICK, clickCircle);
circle.addEventListener(MouseEvent.CLICK, clickCircle, true);
stage.addEventListener(MouseEvent.CLICK, clickStage);
stage.addEventListener(MouseEvent.CLICK, clickStage, true);

function clickCircle(evt:MouseEvent):void {
    trace("clickCircle: " + getPhaseName(evt.eventPhase));
}
function clickStage(evt:MouseEvent):void {
    trace("clickStage: " + getPhaseName(evt.eventPhase));
}

function getPhaseName(phase:int):String {
    switch(phase) {
        case EventPhase.CAPTURING_PHASE:
            return "Capturing Phase";
        case EventPhase.AT_TARGET:
            return "At Target Phase";
        case EventPhase.BUBBLING_PHASE:
            return "Bubbling Phase";
    }
    return "Error: No Phase Detected";
}
Кликнув по кругу:
Код:
//output
clickStage: Capturing Phase
clickCircle: At Target Phase
clickStage: Bubbling Phase
Кликнув вне круга:
Код:
//output
clickStage: At Target Phase
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.