[Flash/Flex] 给一个TitleWindow添加按钮的方法

资讯类型: 翻译
来源页面: http://userflex.wordpress.com/2011/05/05/add-titlewindow-buttons/
资讯原标题: How to Add Buttons to a TitleWindow
资讯原作者: Nick Schneble
翻译词数: 97 词
我的评论:小技巧,先收藏
对这篇文你有啥看法,跟贴说说吧!欢迎口水和板砖,哈哈。欢迎大家和我们一同分享更多资讯。
TitleWindow对象是伟大的,但如果在标题栏,你不想只有一个关闭按钮,那么你需要扩展组件并添加自己的功能。

下面是一个简单操作方法:

package
{
import mx.containers.TitleWindow;
import mx.controls.Button;
import mx.controls.LinkButton;

public class CustomTitleWindow extends TitleWindow
{
private var helpButton : LinkButton;
private var _closeButton : Button;

public function CustomTitleWindow ()
{
title = "Custom TitleWindow";
showCloseButton = true;
}

private function get closeButton () : Button
{
if (! _closeButton)
{
for (var i : int = 0; i < titleBar.numChildren; ++ i)
{
if (titleBar.getChildAt (i) is Button &&
titleBar.getChildAt (i) != helpButton)
{
_closeButton = titleBar.getChildAt (i) as
Button;
}
}
}

return _closeButton;
}

override protected function createChildren () : void
{
super.createChildren ();

if (! helpButton)
{
helpButton = new LinkButton ();
helpButton.label = "Help";
helpButton.focusEnabled = false;
helpButton.setStyle ("paddingTop", 4);

titleBar.addChild (helpButton);
helpButton.owner = this;
}
}

override protected function layoutChrome (w : Number,
h : Number) : void
{
super.layoutChrome (w, h);

var width : Number =
helpButton.getExplicitOrMeasuredWidth ();
var height : Number =
helpButton.getExplicitOrMeasuredHeight ();

var x : Number = closeButton.x – width;
var y : Number = closeButton.y – Math.floor
((height – closeButton.height) * 0.50);

helpButton.setActualSize (width, height);
helpButton.move (x, y);
}

}
}


正如你在上面看到的,所有你需要做的就是:扩展TitleWindow类,并重写createChildren()和layoutChrome()方法。 你先在标题栏添加按钮,然后再确定它们的尺寸和位置。

请记住,这个例子中并没有包括一个事件处理程序,所以如果你真的想让你的按钮做一些事情,你需要自己实现一个事件处理。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
demo版本所展示的部分功能: 1、创建窗口 2、设置窗口宽高,标题 3、拖拽边缘缩放窗口,拖拽窗口 4、双击顶端的标题栏,最大化和缩放 5、实现不同的窗口机制 等等……………… core核心包结构初略讲解: IWindow接口:定义所有窗口,并且Window实现了该接口 Module类:模块基类 PopModule类:弹出型环境类,继承Module PopWindow类:弹出型窗口,继承Window Window类:窗口基类 WindowEvent类:窗口事件类 WindowsManager类:窗口管理基类 core核心包实现讲解: 凡是flash cs3中继承Module的元件,都可以直接在元件的第一帧撰写代码,并且在编译的过程中会自动把代码编译出来并继承Module类,在第一帧所拽写的代码可以通过实例化后来访问,比如下面贴出的"控制台源码"就是如此写的 如果需要提供特殊环境等,可以继承Module撰写,比如PopModule,控制台的父类就是PopModule,在控制台的源码中,我们可以看得到他直接访问了window属性,得到的就是控制台所在的窗口对象 Window类实现了基本窗口操作,比如拖拽,关闭,显示等,与WindowManager是配套使用 如果需要更复杂的窗口,可以继承Window类撰写,比如PopWindow,FixedWindow类的父类就是PopWindow,在FixedWindow中,我们只需要把PopWindow的状态和模式定死在window和fixed就可以了,而PopWindow本来就是一个普通的窗口,因此创建Create窗口的时候,直接使用PopWindow即可创建一个普通的窗口,在PopWindow中,默认窗口的状态和模式都为window 核心包是另外一个公司做的。核心代码是反编译过来的。代码经过测试能正常运行。 此代码仅供学习,请勿传播。 flash版窗体系统demo观看地址:http://www.xiaos8.com/uploads/flash/window.swf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值