一:背景
flex全屏切换的效果
二:目的
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()”。
六:源码下载
点我下载