[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()方法。 你先在标题栏添加按钮,然后再确定它们的尺寸和位置。

请记住,这个例子中并没有包括一个事件处理程序,所以如果你真的想让你的按钮做一些事情,你需要自己实现一个事件处理。

你可能感兴趣的:(FLEX)