【发布时间】:2011-05-17 14:47:18
【问题描述】:
我需要在 flex 中创建一个自动完成组件,该组件使用 web 服务从远程数据库中获取自动完成结果。我已经解决了网络服务和查询部分。我已经通过扩展 VBoxes 在动作脚本中制作了自定义组件。但是我不知道如何生成应该显示在我的自动完成文本框中的文本输入下的弹出窗口。
目前我正在使用类似的东西
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;
};
}
不幸的是,当 web 服务检索其结果并调用 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;
}
【问题讨论】:
标签: actionscript-3 flex4 custom-component