1、下载flexlib组件。
2、创建flex项目,并添加flexlib.swf到项目中。
3、
- <?xml version="1.0" encoding="utf-8"?>
- <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark"
- xmlns:flexlib="http://code.google.com/p/flexlib/"
- creationComplete="initApp();"
- xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" width="100%" height="100%">
- <fx:Script>
- <![CDATA[
- import flexlib.mdi.events.MDIWindowEvent;
- ]]>
- </fx:Script>
- <fx:Declarations>
- <!-- 将非可视元素(例如服务、值对象)放在此处 -->
- </fx:Declarations>
- <fx:Script>
- <![CDATA[
- import mx.core.IUIComponent;
- import flash.utils.setTimeout;
- import mx.events.CloseEvent;
- import mx.controls.Alert;
- import flexlib.mdi.events.MDIManagerEvent;
- private var queueEvent:MDIManagerEvent;
- private var menuState:Boolean = false;
- [Bindable]
- private var time:String = "";
- //初始化
- private function initApp():void {
- mdiCanvas.windowManager.addEventListener(MDIManagerEvent.WINDOW_CLOSE, windowCloseHandle);
- bindTime();
- // vGroup.addEventListener(MouseEvent.CLICK, mouseClickHandle);
- }
- //关闭窗口事件处理
- private function windowCloseHandle(event:Event):void {
- if(event is MDIManagerEvent) {
- queueEvent = event.clone() as MDIManagerEvent;
- event.preventDefault();
- Alert.show("是否关闭窗口?", "提示", 3, null, alertHandle, null);
- }
- }
- //关闭窗口提示
- private function alertHandle(event:CloseEvent):void {
- if(event.detail == Alert.YES) {
- mdiCanvas.windowManager.executeDefaultBehavior(queueEvent);
- }
- }
- //添加窗口
- private function addWindowHandle(event:Event):void {
- var title:String = Button(event.target).label;
- var newWindow:MDIWindow = new MDIWindow();
- // newWindow.x = mdiCanvas.width / 2;
- // newWindow.y = mdiCanvas.height / 2;
- newWindow.width = 650;
- newWindow.height = 450;
- newWindow.title = title;
- mdiCanvas.windowManager.add(newWindow);
- }
- //获取当前时间
- private function getTime():String {
- var ret:String = "";
- var now:Date = new Date();
- var year:Number = now.getFullYear();
- var month:Number = now.getMonth();
- var day:Number = now.getDay();
- var date:Number = now.getDate();
- var hour:Number = now.getHours();
- var minute:Number = now.getMinutes();
- var second:Number = now.getSeconds();
- ret = year + ":" + month + ":" + date + "-"
- + hour + ":" + minute + ":" + second + "-" + getDay(day);
- setTimeout(getTime, 1000);
- return ret;
- }
- //绑定当前事件到time变量
- public function bindTime():void {
- time = getTime();
- setTimeout(bindTime, 1000);
- }
- //根据day获取星期几
- private function getDay(date:Number):String {
- // var arr:Array = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
- var arr:Array = new Array();
- arr.push("星期天");
- arr.push("星期一");
- arr.push("星期二");
- arr.push("星期三");
- arr.push("星期四");
- arr.push("星期五");
- arr.push("星期六");
- var ret:String = "";
- switch(date) {
- case 0:
- ret = arr[0];
- break;
- case 1:
- ret = arr[1];
- break;
- case 2:
- ret = arr[2];
- break;
- case 3:
- ret = arr[3];
- break;
- case 4:
- ret = arr[4];
- break;
- case 5:
- ret = arr[5];
- break;
- case 6:
- ret = arr[6];
- break;
- default:
- ret = "none"
- break;
- }
- return ret;
- }
- //菜单按钮事件处理
- private function menuBtnClickHandle(event:Event):void {
- if(!menuState) {
- menuPanel.setVisible(true);
- menuState = true;
- menuPanel.setFocus();
- }
- else {
- menuPanel.setVisible(false);
- menuState = false;
- }
- }
- ]]>
- </fx:Script>
- <s:VGroup id="vGroup" width="100%" height="100%" horizontalAlign="center">
- <!--
- <mx:ApplicationControlBar dock="true" width="100%">
- <s:Button id="addWindow" label="Add" click="addWindowHandle(event);" />
- </mx:ApplicationControlBar>
- -->
- <s:Group width="100%" height="100%">
- <s:layout>
- <s:HorizontalLayout verticalAlign="middle" gap="8" />
- </s:layout>
- <flexlib:MDICanvas id="mdiCanvas" width="100%" height="100%" tilePadding="10" snapDistance="15"
- horizontalScrollPolicy="off" verticalScrollPolicy="off">
- <s:Group width="8%" height="100%" fontSize="15">
- <s:layout>
- <s:VerticalLayout paddingLeft="3" paddingRight="3" paddingTop="8" paddingBottom="8"
- gap="50"/>
- </s:layout>
- <s:Button label="Me" />
- <s:Button label="Other" />
- <s:Button id="addWindow" label="Add" click="addWindowHandle(event);" />
- </s:Group>
- <flexlib:MDIWindow resizable="true" draggable="true" x="443.95" y="128.85"
- width="532" height="345">
- </flexlib:MDIWindow>
- <s:Group id="menuPanel" width="325" height="490" x="1.3" y="443.15"
- color="#9F9F82" visible="false">
- <mx:VBox width="100%" height="100%" borderStyle="solid" x="5" y="-19">
- <mx:Box width="100%" height="10%" borderStyle="solid">
- </mx:Box>
- <mx:HBox width="100%" height="100%" borderStyle="solid">
- <mx:Box width="60%" height="100%" borderStyle="solid">
- </mx:Box>
- <mx:Box width="40%" height="100%" borderStyle="solid">
- </mx:Box>
- </mx:HBox>
- </mx:VBox>
- </s:Group>
- </flexlib:MDICanvas>
- </s:Group>
- <mx:ApplicationControlBar width="100%" borderStyle="solid" cornerRadius="8">
- <s:Button id="menuBtn" label="Menu" click="menuBtnClickHandle(event);" />
- <mx:Spacer width="100%" />
- <mx:Label text="{time}" />
- </mx:ApplicationControlBar>
- </s:VGroup>
- </s:Application>