- <pre name="code" class="html">package com.talkyun.rheaui.model
- {
- //MyWindow作用是为titleWindow添加窗体的最小化和最大化的功能
- import flash.events.MouseEvent;
- import mx.containers.TitleWindow;
- import mx.controls.Button;
- public class MyWindow extends TitleWindow
- {
- public function MyWindow()
- {
- super();
- this.showCloseButton=true;
- }
- protected var maxSizeButton:Button; //最大化按钮
- protected var minSizeButton:Button; //最小化按钮
- //正常状态下窗口的大小、位置
- protected var normalX:int,normalY:Number,normalWidth:int,normalHeight:int;
- //初始状态
- protected var winState:String="normal";
- override protected function createChildren():void
- {
- super.createChildren();
- //创建最大化按钮
- this.maxSizeButton=new Button();
- thisthis.maxSizeButton.width=this.maxSizeButton.height=16;
- this.maxSizeButton.y=6;
- //添加最大化事件
- this.maxSizeButton.addEventListener(MouseEvent.CLICK,OnMaxSize);
- this.titleBar.addChild(this.maxSizeButton);
- //创建最小化按钮
- this.minSizeButton=new Button();
- thisthis.minSizeButton.width=this.minSizeButton.height=16;
- this.minSizeButton.y=6;
- //添加最小化事件
- this.minSizeButton.addEventListener(MouseEvent.CLICK,OnMinSize);
- this.titleBar.addChild(this.minSizeButton);
- }
- protected function OnMaxSize(e:MouseEvent):void
- {
- if(winState=="normal")
- {
- //保存正常状态下窗口位置、大小
- normalX=this.x;
- normalY=this.y;
- normalHeight=this.height;
- normalWidth=this.width;
- //设置为最大化状态
- this.x=0;
- this.y=0;
- this.percentHeight=1200;
- this.percentWidth=1000;
- //最大化状态
- this.winState="max";
- }
- else if(this.winState=="max")
- {
- //恢复正常状态下窗口位置、大小
- thisthis.x=this.normalX;
- thisthis.y=this.normalY;
- thisthis.width=this.normalWidth;
- thisthis.height=this.normalHeight;
- //正常状态
- this.winState="normal";
- }
- }
- protected function OnMinSize(e:MouseEvent):void
- {
- //最小化,简单隐藏
- this.visible=false;
- }
- override protected function layoutChrome(unscaledWidth:Number,
- unscaledHeight:Number):void
- {
- super.layoutChrome(unscaledWidth,unscaledHeight);
- //设置两个新添的按钮的位置
- thisthis.maxSizeButton.x=this.titleBar.width-43;
- thisthis.minSizeButton.x=this.titleBar.width-60;
- //调整状态文本的位置,左移一段位置
- this.statusTextField.x-=32;
- }
- }
- }