实现最大化、最小化的TitleWindow
第一篇博客,别人的代码,放着有时间参考。实现TitleWindow的最大化、最小化功能。新添加的图标没有按钮和样式!
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;
}
}
}
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;
}
}
}