Добрый день суток!
Вопрос скорее всего посящен работе событий в ActionScript 3.0.
Исходные данные:
Использую DataGrid с переопределенным CellRenderer для одного из столбцов:

Код AS3:
// таблица со списком сотрудников
var _listEmployees:DataGrid;
var column:DataGridColumn;
_listEmployees = new DataGrid();
column = new DataGridColumn("fio");
column.headerText = "Фамилия Имя Отчетсво";
column.cellRenderer = FIOCellRenderer;
column.minWidth = 224;
_listEmployees.addColumn(column);
_listEmployees.rowHeight = 30;
addEventListener(EventsEnum.EVENT_SHOW_POPUP, onShowPopup);
Класс FIOCellRenderer выглядит следующим образом:

Код AS3:
public class FIOCellRenderer extends MovieClip implements ICellRenderer
{
private var _listData:ListData;
private var _data:Object;
private var _selected:Boolean;
private var _mouseState:String;
private var _btnPopup:SimpleButton;
public function FIOCellRenderer()
{
_btnPopup = new SimpleButton();
_btnPopup.addEventListener(MouseEvent.MOUSE_DOWN, onPopup);
}
public function get data():Object
{
return _data;
}
public function set data(param0:Object):void
{
_data = param0;
}
public function get listData():ListData
{
return _listData;
}
public function set listData(param0:ListData):void
{
_listData = param0
}
public function get selected():Boolean
{
return _selected;
}
public function set selected(param0:Boolean):void
{
_selected = param0;
}
public function setMouseState(param0:String):void
{
_mouseState = param0;
}
public function setSize(w:Number, h:Number):void
{
...
}
public function setStyle(style:String, value:Object):void
{
...
}
protected function onPopup(e:MouseEvent):void
{
dispatchEvent(new MyEvent(EventsEnum.EVENT_SHOW_POPUP, true, false, null, new Point(e.stageX, e.stageY)));
}
}
Обработчик события EventsEnum.EVENT_SHOW_POPUP вот такой:

Код AS3:
protected function onShowPopup(e:MyEvent):voi
{
_menuModal = new Sprite();
_menuModal.graphics.beginFill(0xFFFFFF, 0.5);
_menuModal.graphics.drawRect(0, 0, Constants.STAGE_WIDTH, Constants.STAGE_HEIGHT);
_menuModal.graphics.endFill();
addChild(_menuModal)
}
Этот обработчки создает полупрозрачный Sprite и выводит его поверх всех (в том числе _listEmployees) элементов.
Я щелкаю по _btnPopup, вызывается обработчик onShowPopup. А теперь вопрос:
Если в обработчкике не стоит addChild(_menuModal), то строчка в DataGrid выделяется, а _listEmployees.selectedItem возвращает Object, хранящуюся в этой строке.
Если же строчка addChild(_menuModal) есть, то соответсвующая строка не выделяеся и _listEmployees.selectedItem возвращает null или возвращает элемент,
который был выбран до щелчка.
Почему так происходит?