flex頁面跳轉

    其實對於這個題目是不恰當的,因爲flex中是沒有頁面這個概念的,頁面在flex裏面其實就是一個個的Canvas,vbox,

hbox等等之類的東西,看到的不同頁面的切換,就是這些元素一層層的堆積,或者替換,但是爲了好理解,還是稱之爲

"頁面跳轉"。其實我們可以對比傳統的C/S開發模式,沒頁面跳轉,只有窗體和元件的顯示和隱藏。

       那麼在flex中怎麼實現頁面的跳轉了,我總結了下,主要有一下幾種方式:

      1、使用ViewStack組件,具體代碼如下所示:把要跳轉的頁新建成 MXML Component,然後通過 ViewStack 組件把

這些頁包含進來
<mx:ViewStack id="storeViews" width="100%" height="550" creationPolicy="all">
   <shouye id="homeView"  label="首    頁" showEffect="WipeDown" hideEffect="WipeUp"  />
   <leixing id="pView"    label="模板類型"  showEffect="WipeDown" hideEffect="WipeUp" />
   <make id="supportView" label="立即製作" showEffect="WipeDown" hideEffect="WipeUp"  />
</mx:ViewStack>
然後再用別的組件切換這些頁,比如用 Button
<mx:Button click="storeViews.selectedChild=homeView;"  />   

   2、使用navigateToURL,主要方式如下:var url:String = "http://localhost:8080/Flex_J2eeDemo/bin/Welcome.html"; 
                                                                   var request:URLRequest = new URLRequest(url); 
                                                                   navigateToURL(request,"_blank");

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

  3、也是我採用的方法,就是引用flash中的 import flash.external.ExternalInterface 這個接口,他能提供像jsp中window.location.href方法一樣方便,主要代碼爲: ExternalInterface.call("function()

{window.location.href='http://localhost:8080/Flex_J2eeDemo/bin/Welcome.html';}

");

 

 4、使用組件技術,把不通的頁面做成component,然後通過TabNavigator等進行切換,通過使用state實現跳轉。效果如圖所示:

 


    最後總結下吧:在Flex中,根本就沒有頁面的概念,有的只有狀態,Flex是通過改變不同的狀態在我們的Application中

 

實現不同頁面的平滑變換。目前已有人提出使用"棧"的"後進先出"的思想等等方法來實現,當然還有其他的方法,但

是都需要我們的不斷探索、挖掘。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章