Показать сообщение отдельно
Старый 14.08.2009, 02:50
Alex_41 вне форума Посмотреть профиль Отправить личное сообщение для Alex_41 Найти все сообщения от Alex_41
  № 3  
Ответить с цитированием
Alex_41

Регистрация: Aug 2009
Сообщений: 27
Цитата:
Сообщение от wvxvw Посмотреть сообщение
>> а программно убрать выделение или управлять кареткой в эдитейбл поле комбобокса нельзя
Это почему же? - это же обычный TextField. Просто надо поискать, как до него добраться...
С пары тыков не получилось, погуглил, ничего толком не нашел, решил спросить тут. Будем копать.

Добавлено через 11 часов 42 минуты
решение найдено

Код AS3:
package classes.common
{
	import flash.events.KeyboardEvent;
 
	import mx.collections.ArrayCollection;
	import mx.controls.ComboBox;
 
	public class CustomCombobox extends ComboBox
	{
		private var tmpText: String; 
 
		public function CustomCombobox()
		{
			super();
			addEventListener(KeyboardEvent.KEY_UP, function(event: KeyboardEvent):void{
				tmpText = event.currentTarget.text;
 
				dataProvider.filterFunction = producerListFilterFunction;
				dataProvider.refresh();
 
				text = tmpText;
 
				if(dataProvider.length > 0)
				     open();
			} );
		}
 
		private function producerListFilterFunction(item:Object):Boolean{
	             return !Boolean(String(item.label).toUpperCase().indexOf(text.toUpperCase(), 0));			
		}
		
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ super.updateDisplayList(unscaledWidth, unscaledHeight);   if (editable){ textInput.selectionBeginIndex = text.length; textInput.selectionEndIndex = text.length; } }
} }