四種方式實(shí)現(xiàn)Flex頁面跳轉(zhuǎn)
在學(xué)習(xí)Flex的過程中,你可能會(huì)遇到Flex頁面跳轉(zhuǎn)的問題,本文和大家分享一下,頁面在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ā)模式,沒頁面跳轉(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方法一樣方便,F(xiàn)lex頁面跳轉(zhuǎn)主要代碼為:
- ExternalInterface.call("function()
- {window.location.href='http://localhost:8080/Flex_J2eeDemo/bin/Welcome.html';}
- ");
4、使用組件技術(shù),把不通的頁面做成component,然后通過TabNavigator等進(jìn)行切換,通過使用state實(shí)現(xiàn)跳轉(zhuǎn)。
最后總結(jié)下吧:在Flex中,根本就沒有頁面的概念,有的只有狀態(tài),F(xiàn)lex是通過改變不同的狀態(tài)在我們的Application中實(shí)現(xiàn)不同頁面的平滑變換。目前已有人提出使用"棧"的"后進(jìn)先出"的思想等等方法來實(shí)現(xiàn),當(dāng)然還有其他的方法,但是都需要我們的不斷探索、挖掘。
【編輯推薦】
- 技術(shù)分享 用FlexBuilder創(chuàng)建Flex項(xiàng)目
- Flex基礎(chǔ) 創(chuàng)建第一個(gè)Flex項(xiàng)目
- 解析Flex事件執(zhí)行流程
- FlexBuilder3.0與Eclipse3.4的完美結(jié)合
- 學(xué)習(xí)筆記 FlexBuilder2.0中如何使用基于Lists的控件