您的位置:首页 > 其它

flex titleWindow添加最小化和最大化按纽as

2012-01-10 13:52 295 查看
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();
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=1200;
this.percentWidth=1000;

//最大化状态
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;
}
}
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息