`

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

    博客分类:
  • FLEX
阅读更多
资讯类型: 翻译
来源页面: 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()方法。 你先在标题栏添加按钮,然后再确定它们的尺寸和位置。

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

相关推荐

    TitleWindow的一个小demo

    首先,我们需要创建一个TitleWindow实例,并在其中添加所需的UI元素,例如按钮和文本字段。这可以通过MXML代码或ActionScript实现。在MXML中,我们可以这样编写: ```xml &lt;mx:TitleWindow xmlns:mx=...

    flex 模仿WINDOWS窗口

    这个“Flex模仿WINDOWS窗口”的示例是利用Flex 3.0的功能来创建一个类似Windows操作系统界面的用户界面。在本文中,我们将深入探讨Flex 3.0的关键特性和如何利用它们来实现这一目标。 1. Flex 3.0框架:Flex 3.0是...

    自定义ActionBar外观(flex4手机应用)

    1. **创建自定义组件**:创建一个新类,继承自Flex4的BaseComponent或SkinnableComponent,然后添加你需要的属性和方法,以控制ActionBar的显示和行为。 2. **定义皮肤**:在Flex中,组件的外观通过皮肤来定义。你...

    Flex4.0自定义控件

    - 新建一个名为`CLogin.mxml`的自定义组件,基于`TitleWindow`。 - 在Design视图中编辑`TitleWindow`的标题为“用户登录”。 - 添加`Form`控件,并在其中放置两个`FormItem`(用于输入用户名和密码)以及一个提交...

    flex开发实例

    - **TitleWindow组件**:一个带有标题栏的窗口,可以移动和关闭。 - **ViewStack组件**:用于实现多个视图之间的切换。 - **表单Form**:提供了一种结构化的方式来展示和管理数据输入字段。 - **基本组件**:包括...

    Flex开发自定义控件

    本文将详细介绍如何在Flex中创建自定义控件,并通过一个具体的登录组件示例来展示其具体实现过程。 #### 二、Flex自定义控件概述 在Flex中,自定义控件是指根据特定需求构建的新控件,这些控件可以基于现有的Flex...

    flex 入门实例教程

    - **小型Flex网站**:介绍了如何构建一个完整的Flex网站,包括页面导航、内容布局等。 - **Flex与WebService通信**:演示了Flex应用程序如何与后端服务进行交互。 - **Flex与Ajax交互**:展示了如何结合Ajax技术...

    Flex试题 .txt

    创建SWC通常涉及创建一个Flex库项目,在源代码目录下放置你的类和资源,然后构建项目以生成SWC文件。 ### 5. 如何减小Flex应用的大小? 为了减小Flex应用的大小,可以采用多种策略,包括:优化图像资源,利用RSL来...

    flex开发自定义控件

    自定义控件是Flex开发中的一个重要方面,它允许开发者根据特定需求创建独特的UI组件,从而增强应用的功能性和视觉效果。本文将深入探讨Flex自定义控件的创建过程,从前期准备到实际应用,帮助读者掌握这一关键技能。...

    Flex入门实例教程

    - **小型Flex网站**:构建一个简单的Flex网站,包含多个页面和功能。 - **Flex与服务器端通信**:实现Flex应用与服务器之间的数据交换。 通过以上知识点的介绍,我们可以看出Flex不仅提供了丰富的组件库,还支持...

    flex3的cookbook书籍完整版dpf(包含目录)

    给一个Text 组件中的文本添加拖拽阴影 4.15节. 找出一个TextArea 中最后显示的字符 第五章Lists,Tiles,和Trees(147) 5.1 节.创建可编辑的list 组件 5.2节.为List的某项设置图标 5.3 节. 为List的内容变更添加特效...

    Flex 开发技巧集

    8. **获取Alert的用户选择**:Alert的`show`方法返回一个CloseEvent,通过检查`event.detail`值,可以得知用户选择了哪个按钮,如YES或NO。 9. **删除字符串中的空白字符**:使用正则表达式`/\s/g`可以匹配并替换...

    flex题目大全

    自己写一个方法实现以固定符号为分割的将字符换转换成数组的功能,也就是将第13题目的功能自己实现。 - **答案**: - **示例代码**: ```as3 function splitString(str:String, separator:String):Array { var...

    原创:实现view(mxml)和代码分离的好方法

    在这个例子中,我们创建了一个简单的窗口,包含一个标签和一个按钮。 ```xml &lt;mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="300" height="300" creationComplete="init()...

    《Flex 3 组件实例与应用(2009版)》(PDF)

    以上仅为《Flex 3 组件实例与应用(2009版)》书中部分知识点的概述,该书详细介绍了每一个组件的使用方法、属性、事件以及示例代码,对于希望深入学习和掌握Flex 3开发技术的读者来说,是一本不可多得的实战指南。

    ReSizeTitleWindow

    Flex是一种基于Adobe Flash Player或Adobe AIR运行时的开源框架,用于构建富互联网应用程序(RIA)。Flex提供了丰富的组件库,使开发者能够轻松创建具有复杂交互性的图形用户界面。在Flex中,窗口通常被称为...

    flex quick starts 中文版(翻译by dreamer)

    容器定义了Adobe Flash Player中图形界面的一个矩形区域,在该区域内可以放置各种组件、控件或其他容器。容器内的这些组件被称为子组件。 #### 容器类型及特点 Adobe Flex提供了多种容器选项,每种都有其独特的功能...

    Flex 全屏组件 部分全屏的实现代码

    这个场景下的“部分全屏”功能是将一个指定的Flex组件(如一个窗口或某个控件)扩展至屏幕的边界,而其他部分保持不变。 以下是一个关于Flex部分全屏实现的实例代码,主要涉及如何控制特定组件进入和退出全屏状态:...

    spark skins

    Spark Skins是Adobe Flex框架中一个关键的概念,用于改变Flex应用程序中组件的外观和交互体验。在Flex中,皮肤是一种可替换的外观层,允许开发者根据项目需求自定义UI组件的视觉样式。Spark Skin主要是针对Spark组件...

Global site tag (gtag.js) - Google Analytics