温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Flex中怎么直接获取某个组件的对象

发布时间:2021-07-14 16:08:27 来源:亿速云 阅读:89 作者:chen 栏目:编程语言

本篇内容介绍了“Flex中怎么直接获取某个组件的对象”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

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中怎么直接获取某个组件的对象”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI