`
WonLen
  • 浏览: 51159 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

[Flex]Flex编程注意之直接获取某个组件的对象(this[]用法)

阅读更多

详细请看:http://www.k-zone.cn/zblog/post/flex-get-a-reference-to-object.html
有这样一个需求:假如你new了一百次Button,同时这些button的id分别赋值如btn1.id = "button1"; btn2.id = "button2";以此类推。
当100个button建立后,我想直接对其第20个button进行操作,那么应该如何实现呢?

方案1:
遍历这些button所在的容器的,然后通过getChildAt() 或者 getChildByName()这样的方式获取。
这是常规的做法,这种做法的弊端:每次都需要遍历100次button,显然效率很慢。

方案2:
当建立新的button后,将这个button存放到哈希表里面,其键-值的设定关系:key = button.id; value = button;
即键里面保存的button的id,而value里面保存的button对象。object[ 'button20' ] = btn20;
在使用的时候,直接取得第20个button的做法:var button : Button = object[ 'button' + 20 ];
这样做无疑要比第一种方式快很多倍,但是这种做法的弊端:需要建立一个哈希表,当你的数据过多的时候,无疑这个哈希表将会很大。

方案3:
我们第一不需要遍历100次button容器,第二不需要建立一个哈希表。我们只是用this[xxxx]的方式,即可取出第20个button。
具体做法:var button : Button = this[ 'button' + 20 ];即可完成操作。无论这些button在什么地方?在什么样深度的容器里面,只要是它仍在这个project里面,就可以使用this[xxx]的方式取出。
无疑这种做法是高效的,其实我们仔细看一下this[xxx]其实也是使用哈希表的方式,只不过比方案2好在,我们不需要再建立一个哈希表,这样能节省很多的内存空间。

具体请看一下第三种方法的demo:

<?xml version="1.0"?>  
<mx:Application xmlns:mx="http://www.adobe.com/2006/mx
 
 <mx:Script>
    <![CDATA[  
    private var newFontStyle:String;  
    private var newFontSize:int;  
   
    public function changeStyle( s : String ) : void {  
        s = "button" + s;      
        this[ s ].setStyle( "fontSize", 20 );  
    }  
    ]]>
    </mx:Script>  
  
    <mx:Button id="button1" click="changeStyle('2')" label="Button 1" />  
    <mx:Button id="button2" click="changeStyle('1')" label="Button 2" />  
 
</mx:Application>

 

分享到:
评论
3 楼 NewTamato 2009-08-24  
不错,赞一个!
2 楼 WonLen 2009-07-20  
tieshow 写道
各种flex小技巧  真不错

是啊,的确很多技巧,不过很多时候,adobe不会给出我们答案,而我们只能去探索...
1 楼 tieshow 2009-07-20  
各种flex小技巧  真不错

相关推荐

    flex 区域,鼠标画矩形选择组件

    在IT行业中,Flex是一种基于ActionScript 3.0的开源框架,主要用于构建富互联网应用程序...此外,如果你想要扩展这个组件,比如添加撤销/重做功能,或者与其他组件交互,你可能还需要了解更多的Flex编程技巧和API。

    flex播放视频video调用示例

    在Flex编程环境中,开发人员经常需要处理多媒体内容,如视频播放。`Video`组件是Adobe Flex SDK中的核心组件之一,它允许我们轻松地在Flash Player或Adobe AIR应用程序中嵌入和控制视频播放。本篇文章将深入探讨如何...

    flex Tree 复选框。

    在Flex编程环境中,Tree组件是一种常用的用户界面元素,它用于展示层次结构的数据。在这个特定的场景中,我们关注的是在Flex Tree中集成复选框功能,这为用户提供了一种直观的方式来选择或操作树形结构中的多个节点...

    flex 截图并上传到服务器中

    在Flex中,可以使用DisplayObject的drawToBitmap方法将舞台或任何显示对象转换为位图。这个位图可以是用户界面的一部分,或者在用户交互下截取的特定区域。以下是一个简单的示例: ```actionscript var bitmapData:...

    flex Socket 通信

    Flex是一种基于ActionScript的开源框架,主要用于创建富互联网应用(RIA),而Java则是一种广泛使用的多平台编程语言,尤其在服务器端开发中占据重要地位。通过Socket通信,这两种技术可以实现实时、双向的数据交换...

    FLEX画圆小程序

    在本文中,我们将深入探讨如何使用Adobe Flex 4.0创建一个简单的“FLEX画圆小程序”。Flex是一种基于ActionScript的开源框架,用于构建富互联网应用程序(RIA)。它提供了丰富的用户界面组件和强大的数据绑定机制,...

    flex快速上手(中文)

    Flex 2.0基于ActionScript 3.0,这是一种强大的面向对象编程语言,相较于之前的版本,提供了更好的执行效率和更小的SWF文件大小。此外,Flex 2.0引入了一个全新的开发环境——Flex Builder 2.0,它基于流行的Eclipse...

    flex datagrid 中实现combobox联动

    在Flex编程中,数据网格(DataGrid)是用于展示大量结构化数据的组件,而ComboBox是一种下拉选择框,常用于提供用户可选择的选项。当我们需要在DataGrid的不同列中实现ComboBox的联动效果时,即在一个ComboBox的选择...

    Flex导航条提示自定义

    3. 在creationComplete事件处理函数内,通过this参考获取ZoomSlider组件,然后通过findChildByName方法找到zoomInButton和zoomOutButton。 4. 分别设置这两个按钮的toolTip属性。例如: ```actionscript var ...

    flex_连接数据库

    本文将详细介绍如何使用Flex配合Java技术实现对数据库的操作,具体来说,我们将以一个简单的公告信息展示系统为例,介绍如何使用Flex+Java+SQL Server进行数据库操作。 #### 二、环境准备 在开始之前,我们需要...

    flex创建的字体属性框

    根据给定的信息,本文将详细解释“flex创建的字体属性框”的相关概念和技术要点,包括Flex框架中的字体属性设置、MXML与ActionScript混合编程、数据绑定以及UI组件的运用等。 ### Flex简介 Flex是一种用于构建跨...

    Flex 弹出窗口代码

    在Flex编程中,"弹出窗口代码"是一个常见的需求,特别是在设计用户交互界面时,我们经常需要实现点击按钮后打开一个新的窗口或者对话框来展示更多信息或进行特定操作。本篇将详细讲解如何在Flex中创建一个点击按钮后...

    flex 设置背景音乐

    ### Flex设置背景音乐知识点解析 在Flex开发中,设置背景...通过以上分析可以看出,使用Flex设置背景音乐涉及到了Flex的基本结构、ActionScript编程、声音处理等多个方面。掌握这些知识点对于开发者来说是非常重要的。

    flex题目大全

    使用方法是在Flex项目中引用所需的RSL,并在运行时动态加载。 #### 27. 如何使应用去掉水平滚动条而显示垂直滚动条? - **答案**:通过设置`&lt;s:Application&gt;`标签中的`scrollPolicy`属性。 #### 28. 我想创建的...

    Flex 3 A Beginners Guide

    ### Flex 3: A Beginner's Guide - 关键知识点解析 #### 一、Flex 3简介与应用领域 - **Flex 3**:一种强大的开发工具,用于构建多媒体丰富的交互式Flash应用程序,适用于Web开发。 - **适用场景**:多媒体内容展示...

    flex添加右键菜单实例

    在Flex编程中,右键菜单(ContextMenu)是一个重要的交互元素,它可以为用户提供额外的操作选项。在给定的实例中,我们看到如何在Flex应用中创建并添加自定义的右键菜单。下面将详细解释这个实例中的关键知识点。 ...

    Flex4视频教程_02-03用AS自定义事件.rar

    2. **派发自定义事件**:在事件源对象(通常是UIComponent或其他自定义组件)上,使用dispatchEvent方法来派发自定义事件。派发时需要实例化自定义事件,并传入相关参数: ```actionscript var customEvent:...

    Flex4视频教程_02-02用mxml自定义事件.rar

    在Flex4中,MXML是一种声明式编程语言,主要用于构建用户界面,与ActionScript的面向对象编程相辅相成。 在Flex中,事件是系统和组件之间通信的关键机制。事件可以由用户操作引发,如点击按钮,或者由程序逻辑内部...

    flex与Java整合(完整的增删改查)

    在开始之前,确保已经安装了必要的开发工具,如Flex SDK、Java JDK等,并且熟悉Eclipse或其他IDE的基本使用方法。 ### 二、基础知识点概述 1. **Flex简介**: - Flex是一种用于构建跨平台富互联网应用程序(RIA)的...

    datagrid.rar_Windows编程_Flex_

    在Windows编程领域,Flex是一种基于Adobe Flash Player或Adobe AIR运行时的开源富互联网应用程序(RIA)框架,主要用于创建交互式的、数据驱动的Web应用。在Flex中,DataGrid控件是一个非常重要的组件,用于显示大量...

Global site tag (gtag.js) - Google Analytics