四種方式實現Flex頁面跳轉


在學習Flex的過程中,你可能會遇到Flex頁面跳轉的問題,本文和大家分享一下,頁面在flex里面其實就是一個個的Canvas,vbox,hbox等等之類的東西,看到的不同頁面的切換,就是這些元素一層層的堆積,或者替換,但是為了好理解,還是稱之為"頁面跳轉"。

Flex頁面跳轉

其實對於這個題目是不恰當的,因為flex中是沒有頁面這個概念的,頁面在flex里面其實就是一個個的Canvas,vbox,hbox等等之類的東西,看到的不同頁面的切換,就是這些元素一層層的堆積,或者替換,但是為了好理解,還是稱之為"頁面跳轉"。其實我們可以對比傳統的C/S開發模式,沒頁面跳轉,只有窗體和元件的顯示和隱藏。

那么怎么實現Flex頁面跳轉呢,我總結了下,主要有一下幾種方式:

1、使用ViewStack組件,具體代碼如下所示:把要跳轉的頁新建成MXMLComponent,然后通過ViewStack組件把
這些頁包含進來
 

 
 
 
         
  1. <mx:ViewStackidmx:ViewStackid="storeViews"width="100%"height="550"creationPolicy="all"> 
  2. <shouyeidshouyeid="homeView"label="首頁"showEffect="WipeDown"hideEffect="WipeUp"/> 
  3. <leixingidleixingid="pView"label="模板類型"showEffect="WipeDown"hideEffect="WipeUp"/> 
  4. <makeidmakeid="supportView"label="立即制作"showEffect="WipeDown"hideEffect="WipeUp"/> 
  5. </mx:ViewStack> 

然后再用別的組件切換這些頁,比如用Button
 

 
 
 
         
  1. <mx:Buttonclickmx:Buttonclick="storeViews.selectedChild=homeView;"/> 

2、使用navigateToURL,主要方式如下:

 
 
 
         
  1. varurl:String="http://localhost:8080/Flex_J2eeDemo/bin/Welcome.html";  
  2. varrequest:URLRequest=newURLRequest(url);  
  3. navigateToURL(request,"_blank"); 

但是這個方法很郁悶就是頁面切換總是彈出新的頁面,而不是只變換url

3、也是我采用的方法,就是引用flash中的importflash.external.ExternalInterface這個接口,他能提供像jsp中window.location.href方法一樣方便,Flex頁面跳轉主要代碼為:

 
 
 
         
  1. ExternalInterface.call("function()  
  2. {window.location.href='http://localhost:8080/Flex_J2eeDemo/bin/Welcome.html';}  
  3.  
  4. ");  

 

4、使用組件技術,把不通的頁面做成component,然后通過TabNavigator等進行切換,通過使用state實現跳轉。

最后總結下吧:在Flex中,根本就沒有頁面的概念,有的只有狀態,Flex是通過改變不同的狀態在我們的Application中實現不同頁面的平滑變換。目前已有人提出使用"棧"的"后進先出"的思想等等方法來實現,當然還有其他的方法,但是都需要我們的不斷探索、挖掘。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM