![](/img/trans.png)
[英]How to come back in main application on click of logout button which is in application's component in flex4?
[英]Flex4 Application state in a custom component
我正在將我的Flex3應用程序移植到Flex4(FlashBuilder4)。 除了一件事,我得到了整個新的狀態概念。 在自定義組件(單獨的mxml文件)中,我使用的是主級別應用程序的狀態。 在Flex3中,它是:
<mx:State name="only_view_mode">
<mx:RemoveChild target="{myComponent.button1}" />
</mx:State>
在Flex4中,應該是這樣的 :
<mx:State name="only_view_mode" />
和
<mx:LinkButton id="button1" excludeFrom="???" />
我的問題是:如何從組件訪問應用程序狀態? 我檢查了官方參考資料( http://www.adobe.com/go/learn_flex4_alldocumentation_cn )和Google,但都沒有成功。
提前致謝
嘗試使用
FlexGlobals.topLevelApplication.currentState
那實際上沒有用,因為它需要一個字符串。 我盡我所能嘗試了所有方法。 到目前為止,我提供了一個非常丑陋的解決方案:我為主要級別組件的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="???" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.