因为它需要一个字符串,所以没有真正起作用。我尽我所能地试过了。到目前为止,我得到了一个非常糟糕的解决方案:我添加了一个事件监听器,用于我的主级别组件的checkint状态更改:
<?xml version="1.0" encoding="utf-8"?>
<s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="{onCreationComplete();}">
<fx:Script>
<![CDATA[
import mx.core.FlexGlobals;
import mx.events.StateChangeEvent;
private function onCreationComplete():void {
FlexGlobals.topLevelApplication.addEventListener(StateChangeEvent.CURRENT_STATE_CHANGE, onStateChanged);
}
private function onStateChanged(event:StateChangeEvent):void {
currentState = event.newState;
}
]]>
</fx:Script>
<s:states>
<s:State name="default" />
<s:State name="login" />
</s:states>
<s:TextArea includeIn="login"/>
</s:Panel>
如果有更好的解决办法,请告诉我。顺便说一句,我预感State组件的basedOn属性是一个不错的选择。但不知道它需要什么样的格式:
<s:State name="login" basedOn="???" />