您的位置:首页 > 其它

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

2012-08-20 15:23 232 查看
一:背景

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()”。

六:源码下载

点我下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: