Мне нужно сделать компонент автозаполнения в flex, который извлекает результаты автозаполнения из удаленной базы данных, используя веб-сервис. У меня есть веб-сервис и часть запросов. Я уже сделал пользовательские компоненты в сценарии действия, расширив VBox. Однако я не могу понять, как создать всплывающее окно, которое должно отображаться под вводом текста в моем текстовом поле автозаполнения.
В настоящее время я использую что-то вроде
PopUpManager.addPopUp(popup, parentComponent);
Мой всплывающий класс расширяет VBox и расширяет метод createChildren следующим образом
protected override function createChildren():void
{
for (var i:int = 0; i < results.length; i++) {
var itemC:UIComponent =
factory.getComponent(results[i]);
addChild(itemC);
itemC.addEventListener(MouseEvent.CLICK,
getClickFunction(i));
}
private function getClickFunction(index:int):Function {
return function (event:MouseEvent):void
{
selectedIndex = index;
};
}
К сожалению, когда веб-сервис извлекает свои результаты и вызывается addPopUp, ничего не появляется.
В настоящее время метод factory.getComponent выполняет этот код
public function getComponent(user:Object):UIComponent
{
var email:Label = new Label();
email.text = user.email;
var name:Label = new Label();
name.text = user.displayName;
var vbox:VBox = new VBox();
vbox.addChild(name);
vbox.addChild(email);
return vbox;
}