我想在点击此HBox中的任何对象时更改HBox的样式。我为HBox的click事件设置了句柄,然后我发现很难在这个HBox中的组合框中选择项目。
当我点击组合框时,它会下拉其项目列表,并且HBox样式发生变化,然后组合框很快就会下降,我没有时间选择Combobox中的项目。
这是我的代码,有什么方法可以避免这个问题吗?
<mx:Repeater id="itemRepeater">
<mx:HBox id="itemHBox" styleName="active" click="onItemClick(event);">
<mx:ComboBox id="cb1" dataProvider="{dp}" close="closeHandler(event);"/>
<mx:TextArea id="itemText" />
</mx:HBox>
</mx:Repeater>
private function onItemClick(e:MouseEvent):void {
for (var k:Number=0; k < total; k++) {
itemHBox[k].styleName = "Inactive";
}
// Change edit style
itemHBox[e.currentTarget.instanceIndices].styleName = "active";
}
答案 0 :(得分:1)
设置styleName
会使HBox
无效并强制其子项检查其大小和重新布局,这就是为什么ComboBox
会隐藏它的下拉列表。
相反,您可以使用精确的样式值:
private function onItemClick(e:MouseEvent):void {
for (var k:Number=0; k < total; k++) {
itemHBox[k].setStyle("backgroundColor", 0xFFFFFF);
}
// Change edit style
itemHBox[e.currentTarget.instanceIndices].setStyle("backgroundColor", 0xFF0000);
}