【问题标题】:Flex 4 Button state in a HGroupHGroup 中的 Flex 4 按钮状态
【发布时间】:2010-05-11 14:56:03
【问题描述】:

我有一个带有一些按钮的 HGroup,里面是我的应用程序的菜单。

<s:HGroup id="nav">
    <s:Button id="homeButton" label="Home" />
    <s:Button id="showroomButton" label="Showroom" />
    <s:Button label="Catalogue" />
    <s:Button label="Offers" />
    <s:Button label="My Account" />
    <s:Button label="My Orders" />
</s:HGroup>

我想要的是,例如当我单击 #homeButton 以将其状态更改为“结束”、禁用并将所有其他按钮重置为“向上”状态时。

我写了这个函数

    private function resetNavState():void {
        for(var i:int = 0,ii:int = nav.numChildren-1;i<ii;i++) {
        Button(nav.getChildAt(i)).mouseEnabled = true;
        Button(nav.getChildAt(i)).skin.setCurrentState("up",true);
    }
}

然后在 homeButton 单击处理程序上,例如我使用

protected function homeButton_clickHandler(event:MouseEvent):void
{
    resetNavState();
    currentState = "home";
    homeButton.skin.setCurrentState("over",true);
    homeButton.mouseEnabled = false;

}

我重置了#nav 按钮的状态,但它不会改变按下按钮的状态。

有什么想法吗?

提前感谢

【问题讨论】:

    标签: apache-flex flex4


    【解决方案1】:

    您需要将按钮放在&lt;s:ButtonBar /&gt; 控件而不是 HGroup 中。

    【讨论】:

    • 我会使用 ButtonBar 但我不想使用视图堆栈而是状态。此外,我发现为 ButtonBar 设置皮肤更困难......
    • 您不仅可以将 ViewStacks 与 ButtonBars 一起使用,还可以通过处理 ButtonBar 的更改事件来执行您想要的任何逻辑。为什么你觉得它们很难设计?
    • 在仔细阅读文档后,我终于明白了它是如何工作的 :) Thnx
    猜你喜欢
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 2011-07-29
    • 2017-12-22
    • 2011-04-13
    相关资源
    最近更新 更多