我有一个组件有两个饼图,显示两个特定日期的百分比(认为开始和结束值)。但是,我有三个视图:仅限起始值,仅限终值或显示两者。我正在使用ToggleButtonBar来控制显示。改变这种视图状态的最佳做法是什么?现在(因为这段代码被继承了),视图状态在ActionScript函数中进行了更改,该函数根据ToggleButtonBar的selectedIndex在每个饼图上设置visible和includeInLayout属性,但是,这看起来并不是最好的方式做到这一点 - 不是很有活力。我希望能够根据selectedItem的名称更改状态,以防ToggleButtons的顺序发生变化,并且我将存储selectedItem的名称以备将来参考。改变视图状态的最佳做法是什么?
会使用状态更好吗?如果是这样,那么执行此操作的最佳方法是什么?
谢谢。
当前逻辑:
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>
除非我复制代码,否则视图堆栈将不起作用。 View Stack一次只显示一个组件。我还需要选择显示两个孩子,而不仅仅是一个或另一个。 – 2009-01-29 15:31:44
好点...棒的错误结局 – 2009-02-27 15:35:22