Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.02.2007, 13:58
Azy вне форума Посмотреть профиль Отправить личное сообщение для Azy Посетить домашнюю страницу Azy Найти все сообщения от Azy
  № 1  
Ответить с цитированием
Azy
 
Аватар для Azy

Регистрация: Apr 2004
Адрес: Челябинск
Сообщений: 131
Отправить сообщение для Azy с помощью ICQ
По умолчанию Превент ивента в датагриде

Для того чтобы в моем ItemRenderer-e (extend TextArea) при переход на следующую строку DataGrid не переходил на строку ниже хочу отпревентить KeyDownEvent в датагриде, при нажатии клавиши Enter (keycode=13)
Код:
package ed
{
	import mx.controls.DataGrid;
	import flash.events.KeyboardEvent;
	
	public class EDataGrid extends DataGrid
	{
		public function EDataGrid()
		{
			super();
			this.addEventListener(KeyboardEvent.KEY_DOWN, this.keyDownEvent);
		}
		
		public function keyDownEvent(event:KeyboardEvent):void
		{
			if(event.charCode==13)
			{
				trace("Enter pressed");
				event.preventDefault();
			}
		}
	}
}
Трейситься - трейсится, а ивент не превентится. Где трабл?

Старый 08.02.2007, 14:24
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 2  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
замени на flash.events.Event.stopPropagation()
__________________
33 коровы

Старый 08.02.2007, 14:28
Azy вне форума Посмотреть профиль Отправить личное сообщение для Azy Посетить домашнюю страницу Azy Найти все сообщения от Azy
  № 3  
Ответить с цитированием
Azy
 
Аватар для Azy

Регистрация: Apr 2004
Адрес: Челябинск
Сообщений: 131
Отправить сообщение для Azy с помощью ICQ
Цитата:
Сообщение от __i
замени на flash.events.Event.stopPropagation()
Заменил. Все равно работает. Т.е. при нажатии Enter переходит на следующую строку таблицы.

Старый 08.02.2007, 14:39
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 4  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
тьху ты не досмотрел класс )
Код:
public class EDataGrid extends DataGrid
	{
		public function EDataGrid()
		{
			super();
		}
                          override protected function keyDownHandler(event:KeyboardEvent):void
                         {
                                       if(event.charCode!=13)
			{
                                            super.keyDownHandler(event)
			}

                          }
__________________
33 коровы

Старый 08.02.2007, 14:51
Azy вне форума Посмотреть профиль Отправить личное сообщение для Azy Посетить домашнюю страницу Azy Найти все сообщения от Azy
  № 5  
Ответить с цитированием
Azy
 
Аватар для Azy

Регистрация: Apr 2004
Адрес: Челябинск
Сообщений: 131
Отправить сообщение для Azy с помощью ICQ
Усе равно не пашет
Добавил трейсы:
Код:
			trace(event.charCode);
			if(event.charCode!=13)
			{
				trace("pressed not enter");
				super.keyDownHandler(event)
			}
Оттрейсил. При нажатии ентера super.KeyDownHandler не вызывается. Но как-то умудряется работать.

Старый 08.02.2007, 14:59
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 6  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
тогда проблемы в айтем рендере он передает это событие дальше... как решение в атем реднере оверайдишь обработчик на клаву и внем делаешь stopPropagation();
__________________
33 коровы

Старый 08.02.2007, 15:10
Azy вне форума Посмотреть профиль Отправить личное сообщение для Azy Посетить домашнюю страницу Azy Найти все сообщения от Azy
  № 7  
Ответить с цитированием
Azy
 
Аватар для Azy

Регистрация: Apr 2004
Адрес: Челябинск
Сообщений: 131
Отправить сообщение для Azy с помощью ICQ
Уря! Пашет! Добавил в ItemEditor stopImmediatePropagation():
Код:
package ed
{
	import mx.controls.TextArea;
	import flash.events.Event;
	import flash.system.fscommand;
	import flash.events.KeyboardEvent;
	
	public class EDescription extends TextArea
	{
		public function EDescription()
		{
			super();
			this.addEventListener("change", this.changeEvent);
		}
		
		private function changeEvent(eventObject:Event):void
		{
			this.height = (this.textHeight <= 48) ? 48 : this.textHeight+6;
			this.verticalScrollPosition=0;
		}
		
		override protected function keyDownHandler(event:KeyboardEvent):void
		{
			super.keyDownHandler(event)
			if(event.charCode==13)
			{
				event.stopImmediatePropagation();
			}
		}		
	}
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:30.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.