Flex编程注意之直接获取某个组件的对象(this[]用法)通过id获取控件
来源:互联网 发布:兰德马克软件招聘 编辑:程序博客网 时间:2024/05/11 08:39
有这样一个需求:假如你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好在,我们不需要再建立一个哈希表,这样能节省很多的内存空间。
---------------this[] 好像动态创建的控件 获取不到???
具体请看一下第三种方法的demo:
- Flex编程注意之直接获取某个组件的对象(this[]用法)通过id获取控件
- Flex编程注意之直接获取某个组件的对象(this[]用法)通过id获取控件
- Flex编程注意之直接获取某个组件的对象(this[]用法)通过id获取控件
- [Flex]Flex编程注意之直接获取某个组件的对象(this[]用法)
- [Flex]Flex编程注意之直接获取某个组件的对象(this[]用法)
- 直接获取某个组件的对象(this[]用法)
- 通过类名直接获取某个spring对象
- JavaScript通过元素id和name直接获取元素对象
- 可以直接获取id对象
- flex DataGrid获取嵌入组件的对象
- Flex编程注意之Namespace的用法
- [Flex]Flex编程注意之Namespace的用法
- 通过控件的点击事件获取其id
- 如何直接通过jquery为获取的对象添加事件?
- [Flex]Flex编程注意之自动获取焦点、监听全局键盘事件
- wpf 根据控件的Name 通过反射获取控件对象
- .NET中获取服务器端控件的ID进行客户端编程
- .NET中获取服务器端控件的ID进行客户端编程
- chapter two学习笔记----章节回忆
- 如何进行优秀的时间管理
- 6.windbg-windbg环境
- ulimit -SHn 65535 含义
- ubuntu 安装 ncurses
- Flex编程注意之直接获取某个组件的对象(this[]用法)通过id获取控件
- Result Set not updatable
- C# 山寨版完整版QQ
- 成员变量和局部变量
- [转]Android 适配器Adapter的学习
- myeclipse 显示 .setting
- secureCRT和Xshell登录Ubuntu
- 原:用C/C++扩展PHP
- 嵌入式linux下u盘自动挂载的实现