Apache flex Flex AS3:ComboBox设置对false不可见';隐藏
我在视图中有一个组合框,它接收有关应用程序状态更改的信息,然后根据整个应用程序状态显示或隐藏它的子项 它接收状态更改消息,跟踪正确的值,执行它应该执行的操作,但是,它似乎不起作用。本质上,它所需要做的就是在一个状态中隐藏一个组合框,然后在另一个状态中再次显示它 代码如下:Apache flex Flex AS3:ComboBox设置对false不可见';隐藏,apache-flex,actionscript-3,mxml,Apache Flex,Actionscript 3,Mxml,我在视图中有一个组合框,它接收有关应用程序状态更改的信息,然后根据整个应用程序状态显示或隐藏它的子项 它接收状态更改消息,跟踪正确的值,执行它应该执行的操作,但是,它似乎不起作用。本质上,它所需要做的就是在一个状态中隐藏一个组合框,然后在另一个状态中再次显示它 代码如下: public function updateState(event:* = null):void { trace("Project Panel Updating State"); switch(
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>
您是否尝试过更改 UpdateEstate(事件:*=null):无效 对此 UpdateEstate(事件:事件=null):无效
我仍在调查事件:*到目前为止,我发现的一切都是事件而不是*。repost仍然看起来像从代码中还不太清楚updateState函数的调用位置和方式,要进一步了解解决方案,我想我需要了解这一点。不过,我想你可能会想一种不同的方法。< /P> 您是否尝试过使用视图而不是手动显示和隐藏内容以及设置属性?我认为,如果您的交换机中的每种情况都有不同的视图状态,例如“login”等,那么代码会更简单。然后,所有显示隐藏内容都会变成设计时活动,而不是运行时,您所要做的就是设置当前状态
如果您将状态名称与ApplicationData currentState值匹配,您甚至可以完全取消updateState函数。您或多或少是对的,问题是在创建组件时调用updateState的时间不正确。因此,我只是将调用放在一个init函数中,该函数在creationComplete上调用。很高兴您将其整理好,但仍然认为使用视图会更好。我最终切换到了该函数。这是一个在flex中完成的大型项目,正在被重构为AIR。它位于flex应用程序的一个大MXML文件中,因此决定从何处开始改进是一件困难的事情。是的,可能是这样,但是:*或多或少是一样的。虽然它不会真正影响它,但我仍然更改了它。这是我不确定的,我无法找到任何使用过的事件:*计算出您想要说明所有事件类型。不过我也找到了MouseEvent和其他人。