![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 23
|
Добрый день суток!
Вопрос скорее всего посящен работе событий в ActionScript 3.0. Исходные данные: Использую DataGrid с переопределенным CellRenderer для одного из столбцов: // таблица со списком сотрудников 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); 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))); } } 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) } Я щелкаю по _btnPopup, вызывается обработчик onShowPopup. А теперь вопрос: Если в обработчкике не стоит addChild(_menuModal), то строчка в DataGrid выделяется, а _listEmployees.selectedItem возвращает Object, хранящуюся в этой строке. Если же строчка addChild(_menuModal) есть, то соответсвующая строка не выделяеся и _listEmployees.selectedItem возвращает null или возвращает элемент, который был выбран до щелчка. Почему так происходит? |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 14
|
попробуйте
addEventListener(EventsEnum.EVENT_SHOW_POPUP, onShowPopup, true); |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 23
|
Цитата:
Добавлено через 19 часов 35 минут Ну что ж... Разобрался сам ![]() Проблема возникает вот в какой строке: Дело в том, что DataGrid выделяет некоторую строку при событии MouseEvent.CLICK. А такого события в описанной ситуации в DataGrid просто не приходит. В DataGrid приходит событие MouseEvent.MOUSE_DOWN, а событие MouseEvent.MOUSE_UP приходит уже в в то самое полупрозрачное окно. Последний раз редактировалось kosheev_me; 21.09.2010 в 18:52. Причина: Почему-то вложенный тег [B] в тег [AS3] не выделяет жирным, а просто пишет <b>....b> |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|