Je tente de rechercher une zone de liste déroulante en fonction du texte entré via un événement de clavier. La recherche fonctionne et le résultat correct est sélectionné mais je n'arrive pas à obtenir le scrollToIndex pour trouver le bon élément qui devrait être le résultat trouvé (i). Il fait défiler jusqu'à la dernière lettre entrée qui je crois est le comportement par défaut d'une liste déroulante. Je pense que je fais référence à la cible de l'événement de manière incorrecte. Débutant déchirer mes cheveux. Pouvez-vous aider? Je vous remercie. Voici la fonction:Flex 3 scrollToIndex Aide
private function textin(event:KeyboardEvent):void
{
var combo:ComboBox = event.target as ComboBox;
var source:XMLListCollection = combo.dataProvider as XMLListCollection;
str += String.fromCharCode(event.charCode);
if (str=="") {
combo.selectedIndex = 0;
}
for (var i:int=0; i<source.length; i++) {
if (source[i][email protected](new RegExp("^" + str, "i"))) {
combo.selectedIndex = i;
event.target.scrollToIndex(i);
break;
}
}
}
contrôle:
<mx:ComboBox keyDown="textin(event);" id="thislist" change="processForm();" dataProvider="{xmllist}"/>
Pourquoi une zone de liste déroulante est-elle la cible d'un événement de clavier dont vous saisissez un code de charte? Êtes-vous sûr que c'est l'event.target? Peut-être que si vous postez le reste du code, je peux vous aider plus. –