ResizeTtitleWindow

来源:互联网 发布:java中的split函数 编辑:程序博客网 时间:2024/05/22 01:47

package Classes
{
  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();
      this.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();
      this.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=100;
        this.percentWidth=100;
       
        //最大化状态
        this.winState="max";
      }
      else if(this.winState=="max")
      {
      //恢复正常状态下窗口位置、大小
        this.x=this.normalX;
        this.y=this.normalY;
        this.width=this.normalWidth;
        this.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);
      //设置两个新添的按钮的位置
      this.maxSizeButton.x=this.titleBar.width-43;
      this.minSizeButton.x=this.titleBar.width-60;
     
      //调整状态文本的位置,左移一段位置
      this.statusTextField.x-=32;
    }
  }
}

原创粉丝点击