Flex中直接获取某个组件的对象方案1:
遍历这些button所在的容器的,然后通过getChildAt() 或者 getChildByName()这样的方式获取。
这是常规的做法,这种做法的弊端:每次都需要遍历100次button,显然效率很慢。
Flex中直接获取某个组件的对象方案2:
当建立新的button后,将这个button存放到哈希表里面,其键-值的设定关系:key = button.id; value = button;即键里面保存的button的id,而value里面保存的button对象。object[ 'button20' ] = btn20;
在使用的时候,直接取得第20个button的做法:var button : Button = object[ 'button' + 20 ];
这样做无疑要比第一种方式快很多倍,但是这种做法的弊端:需要建立一个哈希表,当你的数据过多的时候,无疑这个哈希表将会很大。
Flex中直接获取某个组件的对象方案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>
分享到:
相关推荐
Flex 组件Flex 组件Flex 组件Flex 组件Flex 组件
flex做拓扑图的组件flex做拓扑图的组件flex做拓扑图的组件
这个是我一直在用的针对于组件全屏的一个类,这里是页面上的某个组件全屏,而不是整个页面全屏。 这是原始的库了,里面少了一个针对按下ESC键的处理,这个在使用的时候可以自己加,另外一个问题就是由于这个库是FLEX...
Flex中获取组件快照的ByteArray,然后调用JavaServlet将ByteArray导出成图片。
Flex+J2EE获取FlexSession的方法
Flex3组件介绍,包含flex3的所有组件介绍并有例子
很通用的Flex 分页组件,经过本人测试,可以应用到项目中,很方便
Flex布局之关于组件的大小 Flex布局之关于组件的大小
Flex4自定义组件 介绍了flex中如何自定义组件以及相关应用
一个组件,相当一个容器,里面可以放好多似类面板的控件,这些控件在这个容器里面可以施动,最小化,最大化。
详解Flex4的系统组件与基本组件。让你在应用的时候知道用什么.
flex的组织结构图组件
Flex3组件拖放教程,该组件是flex组件中最有特色的
flex 组件关系图,让你了解所有组件之前的关系。
flex组件的详细介绍,对每一个组件都有示例代码,即看即用,并附有所有组件效果图。
flex组件时间轴,在flex项目中都有使用的案例,用来设置时间和范围具有很好的作用
研究Flex 组件声明周期,了解组件的生成步骤
flex 高级自定义组件 需要重写的方法,以及为什么要重写,何时调用等。
Flex中导出当前DataGrid中的数据。生成一个Excel文件。资源为一个简单的应用。
详细介绍了flex 组件的功能。是一个不错的参考文档哦!