我需要找出我目前正在查看的状态。让我们假设......
<mx:states>
<mx:State name="state1">
</mx:AddChild>
</mx:State>
<mx:State name="state2">
</mx:AddChild>
</mx:State>
</mx:states>
登录我的应用程序后,状态1会出现,但刷新页面后会再次消失。
我现在有会话值,只需检查会话是否为真,然后保持当前状态或返回默认状态。
答案 0 :(得分:1)
您可以从组件的currentState属性确定当前状态。在flex 3中,默认状态为空字符串。当您刷新浏览器页面(使用Flash应用程序时是谁?)时,您实际上会重新加载整个Flash应用程序,这意味着将重新创建所有组件。因此,如果您检查会话,则需要相应地分配组件的currentState。
因此,根据您的示例代码,如果您正在查看状态2,则定义状态的组件的currentState现在将为“state2”。这是您指定为第二个州名称的值。要将查看设置为第一个状态,您可以执行
component.currentState = "state1";
因为那是你的第一个州的名字。要进入默认(初始)状态,您可以执行以下操作:
component.currentState = "";
要确认您处于第二状态,您可以
if (component.currentState == "state2")
doSomething();
如果您的第二个州名为“secondstate”而不是“state2”,那么您将使用:
if (component.currentState == "secondstate")
doSomething();
至少这是flex 3的方式,因为据我所知,flex 4引入了一些与状态相关的变化。
答案 1 :(得分:0)
与上述一致,以下是一些代码示例:
在组件中,您必须引用this.currentState
或仅引用currentState
:
private function checkCurrentState():void
{
alert(this.currentState);
}
或者,如果您正在调试,只需使用trace()
语句:
trace(this.currentState);