gpt4 book ai didi

actionscript-3 - 当 Combobox 不显示时,在 Flex Combobox 上设置 selectedItem?

转载 作者:行者123 更新时间:2023-12-04 18:20:20 25 4
gpt4 key购买 nike

我正在尝试在组合框(mx)上设置 selectedItem。以下是代码:

callLater(function ():void {
if (comboBox.dataProvider && comboBox.dataProvider.length > 0) {
comboBox.selectedItem = comboBox.dataProvider.getItemAt(0);
}
});

编辑:我正在以编程方式创建组合框:
var comboBox:ComboBox = new ComboBox();

这工作正常并将 selectedItem 设置为数据提供者的第一项 - 但仅当组合框显示在屏幕上且未隐藏在可折叠组中时 .

我有一种情况,我可能将组合框包含在可折叠组(我自己的组件)中,并且在展开折叠组之前不显示(见下图)

第一个图像:当组折叠并且组合框未显示但已创建时
collapsed_groups

第二张图片:当展开折叠的组以显示组合框时 - 请注意 dataprovider 中的第一个元素未选择为 selectedItem

Expanded Group

以下行总是被执行
 comboBox.selectedItem = comboBox.dataProvider.getItemAt(0);

但是,当组合框包含在折叠组中时,不会选择第一项 - 当组合框包含在展开组中时可以正常工作。

我认为这是 flex 中的一个错误——除非有人不这么认为?

最佳答案

问题是您无法知道对象何时添加到舞台。正如您已经提到的,如果组件不可见,则不会设置该项目。

Creation Complete 不会被多次调用,因此您需要另一种方法来完成它。
为确保该项目在再次可见后被设置为组件,只需在组合框本身上调用“callLater”方法(然后在再次呈现组件后调用该方法,而不是整个应用程序)

var comboBox:ComboBox = new ComboBox();

comboBox.callLater(function ():void {
if (comboBox.dataProvider && comboBox.dataProvider.length > 0) {
comboBox.selectedItem = comboBox.dataProvider.getItemAt(0);
}
});

关于actionscript-3 - 当 Combobox 不显示时,在 Flex Combobox 上设置 selectedItem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10817930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com