我有一个带有两个饼图的组件,它们显示两个特定日期的百分比(想想开始值和结束值)。但是,我有三个视图:仅开始值、仅结束值或显示两者。我正在使用 ToggleButtonBar 来控制显示。改变这种视图状态的最佳实践是什么?现在(因为此代码被继承),视图状态在 ActionScript 函数中更改,该函数根据 ToggleButtonBar 的 selectedIndex 在每个饼图上设置可见和 includeInLayout 属性,但是,这似乎不是最好的方法要做到这一点 - 不是很动态。我希望能够根据 selectedItem 的名称更改状态,以防 ToggleButtons 的顺序发生变化,并且因为我正在存储 selectedItem 的名称以供将来参考。
使用States会更好吗?如果是这样,实现这一点的最佳方法是什么?
谢谢。
当前逻辑:
private function pieTypeToggleButtonBar_itemClickHandler():void
{
// Show/Hide the appropriate Pie Charts based on the user's selection
switch (pieTypeToggleButtonBar.selectedIndex)
{
// "Start Value" is selected
case 0:
{
// Hide the End Value Pie Chart
endValuePieChartVBox.visible = false;
endValuePieChartVBox.includeInLayout = false;
// Show the Start Value Pie Chart
startValuePieChartVBox.includeInLayout = true;
startValuePieChartVBox.visible = true;
break;
}
// "End Value" is selected
case 1:
{
// Hide the Start Value Pie Chart
startValuePieChartVBox.visible = false;
startValuePieChartVBox.includeInLayout = false;
// Show the End Value Pie Chart
endValuePieChartVBox.includeInLayout = true;
endValuePieChartVBox.visible = true;
break;
}
// "Both" is selected
case 2:
{
// Show the Start Value Pie Chart
startValuePieChartVBox.includeInLayout = true;
startValuePieChartVBox.visible = true;
// Show the End Value Pie Chart
endValuePieChartVBox.includeInLayout = true;
endValuePieChartVBox.visible = true;
break;
}
}
}
<mx:ToggleButtonBar id="pieTypeToggleButtonBar" selectedIndex="1"
itemClick="pieTypeToggleButtonBar_itemClickHandler()">
<mx:Array>
<mx:Object name="startValue" label="Start Value" />
<mx:Object name="endValue" label="End Value" />
<mx:Object name="both" label="Both" />
</mx:Array>
</mx:ToggleButtonBar>