Событие компонента TextInput не работает - PullRequest
0 голосов
/ 10 августа 2010

Я работаю над проектом только для AS3 во Flex .... Я пытался прослушать событие ВВОД, когда нажимал ввод / возврат в моем поле ввода текста .... но, похоже, это не работает хорошо ... Я пытался использоватьTextEvent.TEXT_INPUT и он работал нормально, но не Component.ENTER ... любая помощь ???Большое спасибо !!

import fl.events.ComponentEvent;
    searchInput=new TextField();
        searchInput.type=TextFieldType.INPUT;
        searchInput.background=true;
        searchInput.backgroundColor=0xecffee;
        searchInput.defaultTextFormat=TF;
        searchInput.width = 200;
        searchInput.height=16;
        searchInput.x=50;
        searchInput.y=180;
        addChild(searchInput);
        searchInput.addEventListener(ComponentEvent.ENTER, testEnter);


    }
    private function testEnter(e:ComponentEvent):void{
        if(searchInput.text!=null){
            beginSearch(searchInput.text);
        }

Ответы [ 3 ]

0 голосов
/ 10 августа 2010

Событие, которое вы ищете, это 'change' / flash.events.Event.CHANGE, которое отправляется при изменении управляющего значения.Здесь очень полезна документация по flex: Flex 3 TextInput

0 голосов
/ 10 августа 2010

Если вы хотите слушать пользователя, нажимающего ENTER, вы должны использовать keyDown-событие.В противном случае (как уже упоминалось) вы можете использовать событие изменения.

Поскольку вы используете компонент TextField, правильная документация: текст ссылки

Компонент TextInput-componentимеет также событие valueCommit, может быть, вы можете использовать это ...

0 голосов
/ 10 августа 2010
searchInput.selectable = true; 

и, возможно,

searchInput.mouseEnabled = true;

попробуйте тогда:

searchInput.addEventListener(MouseEvent.CLICK, testEnter);

private function testEnter(event:MouseEvent):void
{
}

извините, я был слишком быстр на этом ...

вот оно

searchInput=new TextInput();

TextField не расширяет класс UIComponent, поэтому он не может обрабатывать ComponentEvent. Вместо того, чтобы сказать вам, чтобы изменить событие, я должен был сказать вам, чтобы изменить обработчик события. Насколько я понимаю, вы пишете проекты для AS3 с помощью Flex, поэтому я сначала посмотрел на TextField!

Я не уверен, что вы можете использовать класс TextInput в проекте AS3, поскольку он является частью инфраструктуры Flex ...

В этом случае вам, возможно, придется вернуться к MouseEvent, но не с помощью TextField, а простой кнопкой «Поиск»

...