是否有一种简单的方法来获取当前状态的状态组或实际State对象?

时间:2012-03-30 15:55:22

标签: actionscript-3 flex viewstate flex4.5

我正在使用Flex 4.5并尝试利用新的状态组功能。我有两个State s(称为readType1和readType2),它们都属于同一个stateGroup(称之为readOnly)。有几个地方我想根据当前状态做一些事情,对于两个读取状态也是如此。 E.g:

if (this.currentState == "readType1" || this.currentState == "readType2")
{
  //do stuff
}

我想知道的是,是否有改变这一点的方法,以便它基于stateGroup(因为从逻辑上讲,这真的是什么呢?' s基于,而不是基于实际的确切状态)以一种简单的方式。我想做点什么:

if (this.currentStateGroup == "readOnly")
{
  //do stuff
}

或失败

if (this.currentStateObject.stateGroups.indexOf("readOnly") >= 0)
{
  //do stuff
}

我无法找到获取当前stateGroup名称的方法,也无法获得当前状态的实际State对象({{1} }只是一个字符串)而没有循环currentState。我希望我能错过一些东西,并且有办法轻松搞定......

我认为这是国家组应该帮助的事情:将共同行为分组在一起。还是我误解了国家组的观点?目前还没有很多例子或大量信息可供使用,我发现的例子还不足以真正理解如何在真实应用中使用它们。

无论如何,如果有人知道如何做我想做的事情,我会很感激,或者如果我认为这一切都错了,请告诉我。感谢。

1 个答案:

答案 0 :(得分:1)

也许你可以把这个问题转过来:

进入适当的状态时进行工作。在MXML中,在属于stateGroup的每个状态上使用“enterState”侦听器:

<s:states>
  <s:State name="readType1" enterState="onEnterReadState()" stateGroups="readGroup"/>
</s:states>