flex 类XP简单界面

1、下载flexlib组件。

2、创建flex项目,并添加flexlib.swf到项目中。

3、

Code:
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"   
  3.                xmlns:s="library://ns.adobe.com/flex/spark"   
  4.                xmlns:flexlib="http://code.google.com/p/flexlib/"  
  5.                creationComplete="initApp();"  
  6.                xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" width="100%" height="100%">  
  7.     <fx:Script>  
  8.         <![CDATA[ 
  9.             import flexlib.mdi.events.MDIWindowEvent; 
  10.  
  11.              
  12.         ]]>  
  13.     </fx:Script>  
  14.     <fx:Declarations>  
  15.         <!-- 将非可视元素(例如服务、值对象)放在此处 -->  
  16.     </fx:Declarations>  
  17.       
  18.     <fx:Script>  
  19.         <![CDATA[ 
  20.             import mx.core.IUIComponent; 
  21.             import flash.utils.setTimeout; 
  22.             import mx.events.CloseEvent; 
  23.             import mx.controls.Alert; 
  24.             import flexlib.mdi.events.MDIManagerEvent; 
  25.              
  26.             private var queueEvent:MDIManagerEvent; 
  27.             private var menuState:Boolean = false; 
  28.              
  29.             [Bindable] 
  30.             private var time:String = ""; 
  31.             //初始化 
  32.             private function initApp():void { 
  33.                 mdiCanvas.windowManager.addEventListener(MDIManagerEvent.WINDOW_CLOSE, windowCloseHandle); 
  34.                 bindTime(); 
  35. //              vGroup.addEventListener(MouseEvent.CLICK, mouseClickHandle); 
  36.             } 
  37.             //关闭窗口事件处理 
  38.             private function windowCloseHandle(event:Event):void { 
  39.                 if(event is MDIManagerEvent) { 
  40.                     queueEvent = event.clone() as MDIManagerEvent; 
  41.                     event.preventDefault(); 
  42.                      
  43.                     Alert.show("是否关闭窗口?", "提示", 3, null, alertHandle, null); 
  44.                 } 
  45.             } 
  46.             //关闭窗口提示 
  47.             private function alertHandle(event:CloseEvent):void { 
  48.                 if(event.detail == Alert.YES) { 
  49.                     mdiCanvas.windowManager.executeDefaultBehavior(queueEvent); 
  50.                 } 
  51.             } 
  52.             //添加窗口 
  53.             private function addWindowHandle(event:Event):void { 
  54.                 var title:String = Button(event.target).label; 
  55.                  
  56.                 var newWindow:MDIWindow = new MDIWindow(); 
  57. //              newWindow.x = mdiCanvas.width / 2; 
  58. //              newWindow.y = mdiCanvas.height / 2; 
  59.                 newWindow.width = 650; 
  60.                 newWindow.height = 450; 
  61.                 newWindow.title = title; 
  62.                 mdiCanvas.windowManager.add(newWindow); 
  63.             } 
  64.             //获取当前时间 
  65.             private function getTime():String { 
  66.                 var ret:String = ""; 
  67.                  
  68.                 var now:Date = new Date(); 
  69.                 var year:Number = now.getFullYear(); 
  70.                 var month:Number = now.getMonth(); 
  71.                 var day:Number = now.getDay(); 
  72.                 var date:Number = now.getDate(); 
  73.                 var hour:Number = now.getHours(); 
  74.                 var minute:Number = now.getMinutes(); 
  75.                 var second:Number = now.getSeconds(); 
  76.                  
  77.                 ret = year + ":" + month + ":" + date  + "-"  
  78.                     + hour + ":" + minute + ":" + second + "-" + getDay(day); 
  79.                  
  80.                 setTimeout(getTime, 1000);   
  81.                 return ret; 
  82.             } 
  83.             //绑定当前事件到time变量 
  84.             public function bindTime():void { 
  85.                 time = getTime(); 
  86.                 setTimeout(bindTime, 1000); 
  87.             } 
  88.             //根据day获取星期几 
  89.             private function getDay(date:Number):String { 
  90. //              var arr:Array = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']; 
  91.                 var arr:Array = new Array(); 
  92.                 arr.push("星期天"); 
  93.                 arr.push("星期一"); 
  94.                 arr.push("星期二"); 
  95.                 arr.push("星期三"); 
  96.                 arr.push("星期四"); 
  97.                 arr.push("星期五"); 
  98.                 arr.push("星期六"); 
  99.                  
  100.                 var ret:String = ""; 
  101.                 switch(date) { 
  102.                     case 0: 
  103.                         ret = arr[0]; 
  104.                         break; 
  105.                     case 1: 
  106.                         ret = arr[1]; 
  107.                         break; 
  108.                     case 2: 
  109.                         ret = arr[2]; 
  110.                         break; 
  111.                     case 3: 
  112.                         ret = arr[3]; 
  113.                         break; 
  114.                     case 4: 
  115.                         ret = arr[4]; 
  116.                         break; 
  117.                     case 5: 
  118.                         ret = arr[5]; 
  119.                         break; 
  120.                     case 6: 
  121.                         ret = arr[6]; 
  122.                         break; 
  123.                     default: 
  124.                         ret = "none" 
  125.                         break; 
  126.                 } 
  127.                 return ret; 
  128.             } 
  129.             //菜单按钮事件处理 
  130.             private function menuBtnClickHandle(event:Event):void {          
  131.                 if(!menuState) { 
  132.                     menuPanel.setVisible(true); 
  133.                     menuState = true; 
  134.                     menuPanel.setFocus(); 
  135.                      
  136.                 } 
  137.                 else { 
  138.                     menuPanel.setVisible(false); 
  139.                     menuState = false; 
  140.                 } 
  141.             } 
  142.         ]]>  
  143.     </fx:Script>  
  144.     <s:VGroup id="vGroup" width="100%" height="100%" horizontalAlign="center">  
  145.         <!--  
  146.         <mx:ApplicationControlBar dock="true"  width="100%">  
  147.             <s:Button id="addWindow" label="Add" click="addWindowHandle(event);" />  
  148.         </mx:ApplicationControlBar>  
  149.         -->  
  150.         <s:Group width="100%" height="100%">  
  151.             <s:layout>  
  152.                 <s:HorizontalLayout verticalAlign="middle" gap="8" />  
  153.             </s:layout>  
  154.               
  155.             <flexlib:MDICanvas id="mdiCanvas" width="100%" height="100%" tilePadding="10" snapDistance="15"   
  156.                                horizontalScrollPolicy="off" verticalScrollPolicy="off">  
  157.                 <s:Group width="8%" height="100%"  fontSize="15">  
  158.                     <s:layout>  
  159.                         <s:VerticalLayout paddingLeft="3" paddingRight="3" paddingTop="8" paddingBottom="8"   
  160.                                           gap="50"/>  
  161.                     </s:layout>  
  162.                       
  163.                     <s:Button label="Me" />  
  164.                     <s:Button label="Other" />  
  165.                     <s:Button id="addWindow" label="Add" click="addWindowHandle(event);" />  
  166.                 </s:Group>  
  167.   
  168.                 <flexlib:MDIWindow resizable="true" draggable="true"  x="443.95" y="128.85"   
  169.                                    width="532" height="345">  
  170.                       
  171.                 </flexlib:MDIWindow>   
  172.                   
  173.                 <s:Group id="menuPanel" width="325" height="490"  x="1.3" y="443.15"   
  174.                          color="#9F9F82" visible="false">  
  175.                     <mx:VBox width="100%" height="100%" borderStyle="solid"  x="5" y="-19">  
  176.                         <mx:Box width="100%" height="10%" borderStyle="solid">  
  177.                               
  178.                         </mx:Box>  
  179.                         <mx:HBox width="100%" height="100%" borderStyle="solid">  
  180.                             <mx:Box width="60%" height="100%" borderStyle="solid">  
  181.                                   
  182.                             </mx:Box>  
  183.                             <mx:Box width="40%" height="100%" borderStyle="solid">  
  184.                                   
  185.                             </mx:Box>  
  186.                         </mx:HBox>   
  187.                     </mx:VBox>  
  188.                 </s:Group>  
  189.             </flexlib:MDICanvas>  
  190.         </s:Group>  
  191.           
  192.         <mx:ApplicationControlBar width="100%" borderStyle="solid" cornerRadius="8">  
  193.             <s:Button id="menuBtn" label="Menu" click="menuBtnClickHandle(event);" />  
  194.             <mx:Spacer width="100%" />  
  195.             <mx:Label text="{time}" />  
  196.         </mx:ApplicationControlBar>  
  197.           
  198.     </s:VGroup>  
  199.       
  200. </s:Application>  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值