探索與發現

          研究java技術

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            83 隨筆 :: 0 文章 :: 109 評論 :: 0 Trackbacks

          1.可以使用PopUpManager進行界面切換
          2.使用狀態(state),自定義一些狀態事件(StateEvent),在index.mxml(mx:application)中監聽組件派發的狀態事件類型,利用改變狀態來改變顯示的界面.


          ⑴用第一種方式來實現相對簡單,利用PopUpManager的一些靜態方法即可實現,比較適用于一些size相對較小的可視化組件,比如:登陸表單組件,或修改一個值,要求重新輸入一個新值等等類似情況.實現示例代碼如下:

          Js代碼
          1. <span style="font-size: small;">var win:*;   
          2. win = new loginPanel();   
          3. //彈出顯示登錄框   
          4. PopUpManager.addPopUp(win,this,true);   
          5. //登陸框顯示在中間   
          6. PopUpManager.centerPopUp(win); </span>  

           ⑵在第二種方法中利用state來改變顯示的界面則要相對復雜許多.

          ①首先我們需要自定義統一的狀態事件名稱

          Java代碼
          1. <span style="font-size: small;">package note.events{  
          2. /** 
          3.  * 狀態事件,每個狀態值要和狀態名稱一樣 
          4.  * @author halzhang 
          5. */  
          6. public class StateEvent{  
          7.           public static const NULL_STATE:String = "";  
          8.           public static const LOGIN_STATE:String = "loginState";  
          9.           public static const ADDNOTE_STATE:String = "addNoteState";  
          10.           public static const ADDUSER_STATE:String = "addUserState";  
          11.           public static const LISTALLUSER_STATE:String = "listAllUserState";  
          12.          }  
          13. }</span>  

           ②在Flex項目的主程序中定義state,當然也可以加上狀態切換的動畫.

          Html代碼
          1. <span style="font-size: small;"><!-- 定義狀態,我們分別定義了三個狀態,每個狀態對應一個自定義的可視化組件  -->  
          2.     <mx:states>  
          3.         <mx:State name="loginState">  
          4.             <mx:AddChild position="lastChild">  
          5.                 <!-- 狀態對應的自定義組件:登陸組件 -->  
          6.                 <view:loginPanel id="panel_login" x="195" y="89"/>  
          7.             </mx:AddChild>  
          8.         </mx:State>  
          9.           
          10.         <mx:State name="addNoteState">  
          11.             <mx:AddChild position="lastChild">  
          12.                 <!-- 狀態對應的自定義組件:添加留言組件 -->  
          13.                 <view:addNotePanel id="panel_addNote" x="10" y="44"/>  
          14.             </mx:AddChild>  
          15.         </mx:State>  
          16.           
          17.         <mx:State name="addUserState">  
          18.             <mx:AddChild position="lastChild">  
          19.                 <!-- 狀態對應的自定義組件:添加用戶組件 -->  
          20.                 <view:addUserPanel id="panel_addUser" x="10" y="44"/>  
          21.             </mx:AddChild>  
          22.         </mx:State>  
          23.           
          24.         <mx:State name="listAllUserState">  
          25.             <mx:AddChild position="lastChild">  
          26.                 <view:allUserPanel id="panel_allUser" x="10" y="44"/>  
          27.             </mx:AddChild>  
          28.         </mx:State>  
          29.     </mx:states></span>  

          ③在組件中派發狀態事件(StateEvent)

          Js代碼
          1. <span style="font-size: small;"> //關閉添加留言組件的時候派發"空"狀態事件,也就是主程序界面不顯示其他組件     
          2.  //如果想顯示其他組件,則派發相應的狀態事件     
          3.  internal function closeMySelf():void{    
          4.         appModel.dispatchEvent(new Even(StateEvent.NULL_STATE));    
          5.  }</span>  

          ④在主程序界面中監聽狀態事件(StateEvent),從而通過改變狀態來顯示我們需要的組件.

          Js代碼
          1. <span style="font-size: small;">                                                //添加狀態事件監聽,在程序初始化的時候執行  
          2.             internal function stateListener():void{  
          3.                 appModel.addEventListener(StateEvent.NULL_STATE,stateEventHandler);  
          4.                 appModel.addEventListener(StateEvent.LOGIN_STATE,stateEventHandler);  
          5.                 appModel.addEventListener(StateEvent.ADDNOTE_STATE,stateEventHandler);  
          6.             }  
          7.             //狀態事件處理函數  
          8.             internal function stateEventHandler(evt:Event):void{  
          9.                 this.currentState = evt.type.toString();  
          10.             }</span>  

          在項目中appModel是一個繼承 EventDispatcher,使用單例模式實現的程序模型.不知道讀者是否發現StateEvent中事件名稱是和主程序界面中定義的state的 name值是一致的.因為這樣定義我們就可以使用統一的狀態事件處理函數,就不需要先去判斷是哪個狀態事件,在來改變當前狀態.只要簡單的執行 this.currentState = evt.type.toString();

          posted on 2009-09-10 17:50 蜘蛛 閱讀(2873) 評論(2)  編輯  收藏 所屬分類: Flex

          評論

          # re: 對Flex開發過程中界面切換的認識(轉)[未登錄] 2010-08-27 09:21 kevin
          Dim InstalledObjects(12)
          InstalledObjects(1) = "JMail.Message" 'JMail 4.3
          InstalledObjects(2) = "CDONTS.NewMail" 'CDONTS
          InstalledObjects(3) = "Persits.MailSender" 'ASPEMAIL
          '-----------------------
          InstalledObjects(4) = "Adodb.Stream" 'Adodb.Stream
          InstalledObjects(5) = "Persits.Upload" 'Aspupload3.0
          InstalledObjects(6) = "SoftArtisans.FileUp" 'SA-FileUp 4.0
          InstalledObjects(7) = "DvFile.Upload" 'DvFile-Up V1.0
          '-----------------------
          InstalledObjects(9) = "CreatePreviewImage.cGvbox" 'CreatePreviewImage
          InstalledObjects(10) = "Persits.Jpeg" 'AspJpeg
          InstalledObjects(11) = "Persits.Jpeg" 'SoftArtisans ImgWriter V1.21  回復  更多評論
            

          # re: 對Flex開發過程中界面切換的認識(轉) 2013-04-29 15:52 we44444444444444444444444444444444444/////////////
          Flex:實現三個界面的動態切換 - 小石在思考 - Yecon - 和訊博客
          Flex:實現三個界面的動態切換 [原創 2009-2-18 11:06:54] 我頂 字號:大 ...flex 查看和 flex 相關的微博 界面 查看和 界面 相關的微博 state 查看和 ...
          yecon.blog.hexun.com/29488241...html 2013-4-4 - 百度快照
          急!在flex中如何點擊按鈕實現頁面切換(狀態切換)_百度知道
          1個回答 - 提問時間: 2012年07月26日
          可以用viewstack或者state
          zhidao.baidu.com/question/4558101... 2012-7-27 - 百度快照
          FLEX界面切換 - ITeye問答
          FLEX界面切換10 剛接觸FLEX,我想了解一下,在做FLEX的時候,我們能不能把MXML... 產品License 如何實現? 使用dwr出現的問題 http 怎么實現長連接, CXF的純...
          www.iteye.com/problems/16... 2013-4-23 - 百度快照
          Flex怎樣實現局部切換顯示????? - CSDN論壇 - CSDN.NET
          8條回復 - 發帖時間: 2012年5月17日
          Flex怎樣實現局部切換顯示? [問題點數:20分,結帖人templingbin] 收藏...比如我有一界面,頂部是標題欄,底部是狀態信息欄,中間就是用于切換各個界面內容...
          bbs.csdn.net/topics/390054... 2013-4-18 - 百度快照
          對Flex開發過程中界面切換的認識(轉) - 探索與發現 - BlogJava
          1條評論 - 發文時間: 2009年9月10日
          對Flex開發過程中界面切換的認識(轉) 1.可以使用PopUpManager進行界面切換 2....利用改變狀態來改變顯示的界面. ⑴用第一種方式來實現相對簡單,利用PopUpManager...
          www.aygfsteel.com/zhaijianhui/archive... 2013-4-23 - 百度快照
          js實現圖片切換_浮動窗口代碼_flex js_js圖片變換代碼
          js實現圖片切換_浮動窗口代碼_flex js_js圖片變換代碼 在php中加入js代碼js實現圖片切換網頁漂浮代碼左側浮動廣告代碼js廣告代碼管理空間漂浮物代碼js圖片展示js樹形...
          xrjvs.17173.adultcompanion.co.uk/ 2010-11-2 - 百度快照
          對Flex開發過程中界面切換的認識 - 努力吧 - ITeye技術網站
          利用改變狀態來改變顯示的界面. ⑴用第一種方式來實現相對簡單,利用PopUpManager... ②在Flex項目的主程序中定義state,當然也可以加上狀態切換的動畫. <!--...
          halzhang.iteye.com/blog/457... 2013-4-13 - 百度快照
          急!在flex中如何點擊按鈕實現頁面切換(狀態切換) - 已解決 - 搜搜...
          1個回答 - 最新回答: 2011年4月14日
          最佳答案: n種辦法, 你可以用model 或者狀態status 或者 viewstatic
          wenwen.soso.com/z/q2801163...htm 2013-3-20 - 百度快照
          一種基于flex的可視化多層流量切分界面的實現_系統架構_酷勤網
          一種基于flex的可視化多層流量切分界面的實現瀏覽次數:次 2012年07月07日 百度... 那么這些基本元素的數據模型如何實現呢?我們可以從這些元素的特性著手分析,如圖1...
          www.kuqin.com/system-analysis/201207... 2012-7-8 - 百度快照
          Flex怎么樣實現各個mxml頁面之間的來回轉換,最好給個例..._百度知道
          1個回答 - 提問時間: 2011年09月06日
          最佳答案: 不知道你的MXML各個頁面是什么方式的。 如果是以Module方式的建立的MXML頁面,可以使用_moduleInfo.load() 例: 假設我們有個testmod.mxml的Module ...
          zhidao.baidu.com/question/3164598... 2011-9-9 - 百度快照
            回復  更多評論
            

          主站蜘蛛池模板: 留坝县| 九寨沟县| 秀山| 寻甸| 邵阳县| 上高县| 长顺县| 天峻县| 光泽县| 罗甸县| 贡嘎县| 陕西省| 五大连池市| 长寿区| 皮山县| 高陵县| 留坝县| 珠海市| 益阳市| 舒兰市| 池州市| 涿州市| 额敏县| 塔城市| 射洪县| 介休市| 海原县| 静安区| 甘肃省| 松江区| 西畴县| 探索| 昌乐县| 习水县| 赣榆县| 湖口县| 阆中市| 新兴县| 广宁县| 乐亭县| 西城区|