繁体   English   中英

Flex AS3:ComboBox设置为false不会隐藏

[英]Flex AS3: ComboBox set visible to false doesn't hide

我在视图中有一个组合框,用于接收有关应用程序状态更改的信息,然后应该根据整个应用程序状态显示或隐藏其子级。

它接收状态更改消息,跟踪正确的值,执行应有的功能,但是似乎不起作用。 本质上,它所需要做的就是在一个状态下隐藏组合框,并在另一状态下再次显示它。

这是代码:

public function updateState(event:* = null):void {
        trace("Project Panel Updating State");
        switch(ApplicationData.getSelf().currentState) {
            case 'login':
                this.visible = false;
                break;
            case 'grid':
                this.visible = true;
                listProjects.includeInLayout = false;
                listProjects.visible = false;
                trace("ListProjects: " + listProjects.visible);
                listLang.visible = true;
                break;
            default:
                break;


        }
    }

这是MXML:

    <mx:HBox>
    <mx:Button id="btnLoad" x="422" y="84" label="Load" enabled="true" click="loadProject();"/>
    <mx:ComboBox id="listProjects" 
                x="652" 
                y="85" 
                editable="true" 
                change="listChange()" 
                color="#050CA8" 
                fontFamily="Arial" />   
    <mx:Label x="480" y="86" text="Language:" id="label3" fontFamily="Arial" />
    <mx:ComboBox id="listLang" 
                x="537" 
                y="84" 
                editable="true" 
                dataProvider="{langList}" 
                color="#050CA8" 
                fontFamily="Arial" 
                width="107" 
                change="listLangChange(event)"/>
    <mx:CheckBox x="830" y="84" label="Languages in English" id="langCheckbox" click='toggleLang()'/>
</mx:HBox>

您的代码在何处以及如何调用updateState函数,以及如何进一步深入解决方案中,尚不清楚,我想我需要看看。 但是,我认为您可能想考虑其他方法。

您是否尝试过使用视图来代替手动显示和隐藏事物以及设置属性? 我认为如果您在开关中的每种情况下都具有不同的视图状态(例如“登录”等),那么您将拥有更简单的代码。那么所有显示的隐藏内容将变成设计时活动,而不是运行时,要做的就是设置当前状态。

如果将状态名称与ApplicationData currentState值进行匹配,则甚至可以完全取消updateState函数。

您是否尝试过改变

updateState(event:* = null):void

对此

updateState(event:Event = null):void

我仍在调查事件:*,到目前为止,我发现的所有内容都使用事件而不是*。 仍会重新发布

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM