實(shí)現(xiàn)Flex頁面跳轉(zhuǎn)行之有效的辦法
本文和大家重點(diǎn)討論一下Flex頁面跳轉(zhuǎn)實(shí)現(xiàn)的方式,Flex中是沒有頁面這個(gè)概念的,頁面在Flex里面其實(shí)就是一個(gè)個(gè)的Canvas,vbox,hbox等等之類的東西,看到的不同頁面的切換,就是這些元素一層層的堆積,或者替換,但是為了好理解,還是稱之為"頁面跳轉(zhuǎn)"。
Flex頁面跳轉(zhuǎn)
其實(shí)對(duì)于這個(gè)題目是不恰當(dāng)?shù)?,因?yàn)镕lex中是沒有頁面這個(gè)概念的,頁面在Flex里面其實(shí)就是一個(gè)個(gè)的Canvas,vbox,hbox等等之類的東西,看到的不同頁面的切換,就是這些元素一層層的堆積,或者替換,但是為了好理解,還是稱之為"頁面跳轉(zhuǎn)"。其實(shí)我們可以對(duì)比傳統(tǒng)的C/S開發(fā)模式,沒Flex頁面跳轉(zhuǎn)只有窗體和元件的顯示和隱藏。
那么怎么實(shí)現(xiàn)Flex頁面跳轉(zhuǎn)呢,我總結(jié)了下,主要有一下幾種方式:
1、使用ViewStack組件,具體代碼如下所示:把要跳轉(zhuǎn)的頁新建成MXMLComponent,然后通過ViewStack組件把這些頁包含進(jìn)來
- <mx:ViewStackidmx:ViewStackid="storeViews"width="100%"height="550"creationPolicy="all">
- <shouyeidshouyeid="homeView"label="首頁"showEffect="WipeDown"hideEffect="WipeUp"/>
- <leixingidleixingid="pView"label="模板類型"showEffect="WipeDown"hideEffect="WipeUp"/>
- <makeidmakeid="supportView"label="立即制作"showEffect="WipeDown"hideEffect="WipeUp"/>
- </mx:ViewStack>
然后再用別的組件切換這些頁,比如用Button
- <mx:Buttonclickmx:Buttonclick="storeViews.selectedChild=homeView;"/>
2、使用navigateToURL,主要方式如下:
- varurl:String="http://localhost:8080/Flex_J2eeDemo/bin
- /Welcome.html";
- varrequest:URLRequest=newURLRequest(url);
- navigateToURL(request,"_blank");
但是這個(gè)方法很郁悶就是頁面切換總是彈出新的頁面,而不是只變換url
3、也是我采用的方法,就是引用flash中的importflash.external.ExternalInterface這個(gè)接口,他能提供像jsp中window.location.href方法一樣方便,主要代碼為:
- ExternalInterface.call("function()
- {window.location.href='http://localhost:8080/Flex_J2eeDemo/bin/Welcome.html';}
- ");
4、使用組件技術(shù),把不通的頁面做成component,然后通過TabNavigator等進(jìn)行切換,通過使用state實(shí)現(xiàn)Flex頁面跳轉(zhuǎn)。
最后總結(jié):
在Flex中,根本就沒有Flex頁面的概念,有的只有狀態(tài),F(xiàn)lex是通過改變不同的狀態(tài)在我們的Application中實(shí)現(xiàn)不同頁面的平滑變換。目前已有人提出使用"棧"的"后進(jìn)先出"的思想等等方法來實(shí)現(xiàn),當(dāng)然還有其他的方法,但是都需要我們的不斷探索、挖掘。
【編輯推薦】
- Flex頁面跳轉(zhuǎn)實(shí)現(xiàn)的幾種方式
- FlexBuilder4十大新特性閃亮登場(chǎng)
- Flex框架中Cairngorm和Mate的優(yōu)點(diǎn)大比拼
- FlexBuilder3.0與Eclipse3.4的完美結(jié)合
- 解析Flex應(yīng)用開發(fā)步驟 新特性和技術(shù)框架