2010-08-10 7 views
0

Je travaille sur un projet AS3 uniquement dans Flex .... J'ai essayé d'écouter l'événement ENTRÉE lorsque l'utilisateur clique sur Entrée/Retour dans ma boîte de saisie de texte .... mais cela ne semble pas fonctionner correctement. ..J'ai essayé d'utiliser TextEvent.TEXT_INPUT et cela a bien fonctionné mais pas Component.ENTER ... aucune aide ??? Merci beaucoup!!Evénement TextInput Component ne fonctionne pas

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); 
     } 

Répondre

0
searchInput.selectable = true; 

et peut-être

searchInput.mouseEnabled = true; 

essayer ceci alors:

searchInput.addEventListener(MouseEvent.CLICK, testEnter); 

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

désolé, j'étais un peu trop vite sur celui ...

ici il est

TextField n'étend pas la classe UIComponent, par conséquent il ne peut pas gérer ComponentEvent.
searchInput=new TextInput(); 

Au lieu de vous dire de changer l'événement, j'aurais dû vous dire de changer le gestionnaire d'événement. Je comprends que vous écrivez des projets AS3 avec Flex, donc j'ai d'abord regardé le TextField!

Je ne sais pas si vous pouvez utiliser la classe TextInput dans un projet AS3 puisqu'il fait partie du cadre Flex ...

dans ce cas, vous devrez peut-être revenir à la MouseEvent mais pas déclenché par la TextField cependant mais par un simple bouton 'Rechercher'

+0

hm ... encore son ne fonctionne pas ..... – FlyingCat

+0

Je ne pense pas que cliquer sur textInput est ce que je veux ....... Merci .. – FlyingCat

0

L'événement que vous recherchez est 'change'/flash.events.Event.CHANGE qui est distribué lorsque la valeur de contrôle est modifiée. La documentation flex est très utile ici: Flex 3 TextInput

0

Si vous voulez écouter l'utilisateur en appuyant sur ENTRÉE, vous devez utiliser l'événement keyDown. Sinon (comme mentionné aussi), vous pouvez utiliser l'événement change-event.

Comme vous utilisez le TextField composant la documentation droit est link text

Le composant TextInput dispose également d'un valueCommit événement, peut-être vous pouvez utiliser celui-ci ...