`
ycy303
  • 浏览: 195626 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Flex 3 cookbook翻译: 2.12 显示并定位多个弹出框

    博客分类:
  • flex
阅读更多

 

2.12 显示并定位多个弹出框

2.12.1 问题

你希望用弹出窗口显示额外的消息给用户。

Recipe 2.12.2. Solution

2.12.2 解答

基于用户交互,用 PopUpManager 创建一个 TitleWindow 组件的实例。

Recipe 2.12.3. Discussion

2.12.3 讨论

Flex 框架包含了一个 PopUpManager 类,它包含有在 Flex 应用中创建,布置,移除最上层窗口的静态方法。请看如下的代码:

 

<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute">

    <mx:Canvas horizontalCenter="0" verticalCenter="0">

        <mx:LinkButton label="Top" x="100" y="10" click="showDetail(event)"/>
        <mx:LinkButton label="Left" x="10" y="100" click="showDetail(event)"/>
        <mx:LinkButton label="Bottom" x="100" y="200" click="showDetail(event)"/>
        <mx:LinkButton label="Right" x="200" y="100" click="showDetail(event)"/>
        <mx:Canvas width="100" height="100" x="125" y="40"
            backgroundColor="#ff0000" rotation="45">
        </mx:Canvas>
    </mx:Canvas>

    <mx:Script>
        <![CDATA[
            import mx.managers.PopUpManager;

            private const POPUP_OFFSET:int = 10;

            private function showDetail(evt:MouseEvent):void {
                // create the popup
                var popup:CustomPopUp = CustomPopUp(PopUpManager.createPopUp(this,
CustomPopUp,false));
                popup.message = "This is the detail for " + evt.target.label;

                // position the popup
                var pt:Point = new Point(0, 0);
                pt = evt.target.localToGlobal(pt);
                popup.x = pt.x  + POPUP_OFFSET;
                popup.y = pt.y  + evt.target.height + POPUP_OFFSET;
            }
        ]]>
    </mx:Script>
</mx:Application>
 

 

在这个例子里,创建了四个 LinkButton 控件并按绝对定位放在一个 Canvas 里面。当用户单击一个 LinkButton ,在按钮下方会显示一个弹出框,为用户呈现了详细的消息。

为了做到这一点, LinkButton click 事件与一个 showDetail 方法关联起来。 showDetail 方法里, PopUpManager createPopUp 方法创建了自定义组件 CustomPopUp 的一个实例。接下来弹出框的 message 属性被赋值为需要向用户显示的内容。

译者注: PopUpManager createPopUp 方法创建一个弹出框,并返回对该弹出框的引用。 CustomPopUp(PopUpManager.createPopUp(this,CustomPopUp,false) ) 是将返回强制改变类型为 CustomPopUp 。所以   var popup:CustomPopUp = CustomPopUp(PopUpManager.createPopUp(this,CustomPopUp,false)) 也可以改成   var popup:CustomPopUp =PopUpManager.createPopUp(this,CustomPopUp,false) as   CustomPopUp

最后,弹出框根据接收请求的 LinkButton 来定位。为了做到这一点,该 LinkButton 的左上角的本地坐标(在该 LinkButton 里,左上角的坐标是( 0 0 ))被转换成全局坐标(用的是 localToGlobal 方法)。这是一种对所有可视对象和他们的子对象都可用的很方便的方法。

CustomPopUp 类定义如下:

 

<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="vertical"
    width="300" height="50"
    styleName="customPopUp"
    showCloseButton="true"
    close="handleClose(event)">

    <mx:Style>
        .customPopUp {
            header-height:2;
            padding-left:5;
            padding-right:5;
            padding-top:5;
            padding-bottom:5;
            border-color:#000000;
            border-alpha:.5;
            border-thickness-left:5;
            border-thickness-right:5;
            border-thickness-bottom:5;
            border-thickness-top:5;
            background-color:#666666;
            color:#ffffff;
        }
    </mx:Style>

    <mx:Text width="100%" height="100%" text="{message}"/>

    <mx:Script>
        <![CDATA[
            import mx.managers.PopUpManager;
            import mx.events.CloseEvent;
            [Bindable]
            public var message:String;

            private function handleClose(evt:CloseEvent):void {
                PopUpManager.removePopUp(this);

            }
        ]]>
    </mx:Script>
</mx:TitleWindow>
 

 

 

CustomPopUp 类继承自 TitleWindow 类,并增加了一个文本控件来显示消息。 TitleWindow close 事件被指派给 handleClose 方法,这个方法用 PopUpManager removePopUp 方法关闭弹出框,它还包含了定义 CustomPopUp 外观的 CSS 样式。

 

  • 大小: 7.4 KB
分享到:
评论

相关推荐

    Flex 3 Cookbook简体中文版最新推荐常青

    Flex 3 Cookbook 简体中文版是一本专注于Flex 3技术的实用指南,由翻译协作组精心编译并免费传播。这本书旨在帮助开发者深入理解和应用Flex 3框架,包括ActionScript和MXML这两个核心组成部分。 ActionScript是Flex...

    Flex3 CookBook 教程

    3. **组件库的使用**:Flex提供了一整套预定义的UI组件,如按钮、文本框、列表等,了解如何创建、自定义和组织这些组件以构建专业级的用户界面。 4. **数据绑定**:学习如何利用Flex的数据绑定机制,实时更新界面...

    flex3 cookbook.rar

    《Flex3 Cookbook》是针对Adobe Flex 3这一版本的开发指南,主要涵盖了使用Flex构建富互联网应用程序(RIA)的各种技术和策略。Flex是一个开源框架,它允许开发者使用MXML和ActionScript来创建交互式、高性能的Web...

    Flex 3 Cookbook.rar

    2. **数据绑定**:Flex 3中的数据绑定机制是其强大之处,书籍会讲解如何将UI组件与后台数据模型关联,实现动态更新和双向数据同步。 3. **事件处理**:书中会涵盖如何监听和响应各种用户交互事件,以实现应用的动态...

    Flex 3 cookbook 2008

    Flex 3 Cookbook by Joshua Noble; Todd AndersonPublisher: O'ReillyPub Date: May 6, 2008 Print ISBN-13: 978-0-596-52985-7 Pages: 704 The best way to show off a powerful new technology is to demonstrate...

    Flex 4 Cookbook 英文版( pdf 非影印版)

    在《Flex 4 Cookbook》中,首先介绍的是如何在Flash Builder中创建一个Flex项目。Flash Builder是Adobe公司推出的一款强大的集成开发环境(IDE),专为Flex和ActionScript开发设计。创建Flex项目的步骤包括: 1. **...

    Flex中文帮助+Flex3cookbook中文版

    这个压缩包包含了“Flex中文帮助”和“Flex3Cookbook中文版”,是初学者入门Flex开发的重要参考资料。 Flex中文帮助是针对Flex SDK的官方文档的中文翻译版,它详细介绍了Flex框架的各种组件、类库、API以及编程模型...

    Flex 4 Cookbook

    Flex 4 Cookbook

    Flex 3 Cookbook.Flex 3 Cookbook.Flex 3 Cookbook.Flex 3 Cookbook.Flex 3 Cookbook.

    Flex 3 Cookbook 是一本专注于Adobe Flex 3技术的实用指南,旨在帮助开发者深入理解和应用Flex 3框架。Flex 3 是一个用于构建富互联网应用程序(RIA)的开发平台,它结合了MXML和ActionScript 3.0,使得UI设计和编程...

    Flex 3 CookBook 源码

    Flex 3 CookBook源码 Flex 3 CookBook源码

    Flex 3 CookBook 简体中文

    3. **数据绑定**:Flex 3的数据绑定机制使得UI元素和数据模型之间的同步变得简单,书中有实例解析这一机制及其在实际应用中的价值。 4. **图形和动画**:Flex 3提供了丰富的绘图API和Timeline控制,可以创建复杂的...

    flex3 cookbook 源码 完整版

    《Flex3 Cookbook》是针对Adobe Flex 3这一版本的开发指南,它包含了丰富的代码示例和实践教程,帮助开发者深入理解和应用Flex技术。这个完整版的资源包括了源码、范例XML数据以及Bonus Chapter的代码,对于学习和...

    flex3 Cookbook 中文版

    1. **Flex 3基础**:Flex 3是Adobe推出的用于构建RIA的开源框架,基于ActionScript 3.0编程语言,提供强大的组件库和MXML标记语言,使得开发者可以构建交互性强、视觉效果丰富的Web应用程序。 2. **MXML与...

    Flex 3 Cookbook 中文版

    9. **国际化与本地化**:Flex 3提供了支持多语言的机制,书中会介绍如何实现应用的国际化和本地化。 10. **性能优化与调试**:最后,书中还将探讨提高Flex应用性能的策略,以及使用Flex Builder的调试工具来查找和...

    flex3 COOKBOOK

    通过阅读《Flex 3 Cookbook》并实践其中的示例,开发者可以深入了解Flex 3框架,提升开发技能,构建出高效且用户体验良好的RIA。配合提供的链接,如访问FLEX3COOKBOOK实验室,可以进一步加深理解和应用。

    Flex 3 Cookbook代码.rar

    7. **状态管理**:Flex 3支持组件状态管理,允许根据应用的不同阶段改变UI的显示。书中的代码可能包含如何定义和切换组件状态的示例。 8. **国际化与本地化**:Flex 3提供了实现应用程序多语言支持的机制。这部分的...

    Flex cookbook(中文版)+Flex入门到实践

    这个大礼包包含两本非常重要的学习资料:《Flex cookbook(中文版)》和《Flex入门到实践》。这两本书将帮助初学者深入理解Flex的原理与实践应用。 《Flex入门到实践》这本书可能涵盖了以下知识点: 1. **Flex基础**...

Global site tag (gtag.js) - Google Analytics