读书人

【您不知道的flex】-【state状态切换之

发布时间: 2013-10-08 15:21:37 作者: rapoo

【你不知道的flex】-【state状态切换之初始化方法】

一:背景

flex全屏切换的效果

【您不知道的flex】-【state状态切换之初始化方法】

【您不知道的flex】-【state状态切换之初始化方法】

二:目的

1:状态2=》状态1

2:切换执行状态1的初始化方法(某方法,我们一般是init方法,你懂得)

注:看似很简单,那么来试试吧。

三:code

<mx:states>
<mx:State name=”s1″ >
<mx:AddChild position=”lastChild” >
<local:s1 id=”mainapp” horizontalCenter=”0″ verticalCenter=”0″ width=”100%” height=”100%”>
</local:s1>
</mx:AddChild>

</mx:State>
<mx:State name=”s2″>
<mx:AddChild position=”lastChild”>
<local:s2 />
</mx:AddChild>
</mx:State>
</mx:states>

状态s1,状态s2两个状态

s1,s2是两个自定义组件

关键代码:请看红色部分

<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Canvas xmlns:mx=”http://www.adobe.com/2006/mxml” width=”100%” height=”100%” creationComplete=”init()”addedToStage=”init2()” >


<mx:Script >
<![CDATA[


private function init():void{
trace("s1 init");
}

private function init2():void{
trace("s1 init2");
}
]]>
</mx:Script>

<mx:Label x=”106″ y=”115″ text=”S1=状态1″ fontSize=”36″ fontWeight=”bold”/>


</mx:Canvas>

四:输出

s1 init
s1 init2
s1 init2
s1 init2
s1 init2
s1 init2
s1 init2
s1 init2
s1 init2

init只是第一次执行,init2每次切换的时候都执行

五:结论

状态切换时候initialize,creationComplete的方法,都只是执行一次,多次切换,仅执行一次。

如果需要每次切换,请将方法写到addedToStage=“init()”。

六:源码下载
点我下载

读书人网 >flex

热点推荐