自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談Flex中直接獲取某個(gè)組件的對(duì)象

開發(fā) 后端
有這樣一個(gè)需求:假如你new了一百次Button,同時(shí)這些button的id分別賦值如btn1.id = "button1"; btn2.id = "button2";以此類推。當(dāng)100個(gè)button建立后,我想直接對(duì)其第20個(gè)button進(jìn)行操作,那么應(yīng)該如何實(shí)現(xiàn)呢?本文將介紹如何在Flex直接獲取某個(gè)組件的對(duì)象。

Flex中直接獲取某個(gè)組件的對(duì)象方案1:

遍歷這些button所在的容器的,然后通過getChildAt() 或者 getChildByName()這樣的方式獲取。
這是常規(guī)的做法,這種做法的弊端:每次都需要遍歷100次button,顯然效率很慢。

Flex中直接獲取某個(gè)組件的對(duì)象方案2:

當(dāng)建立新的button后,將這個(gè)button存放到哈希表里面,其鍵-值的設(shè)定關(guān)系:key = button.id; value = button;即鍵里面保存的button的id,而value里面保存的button對(duì)象。object[ 'button20' ] = btn20;

在使用的時(shí)候,直接取得第20個(gè)button的做法:var button : Button = object[ 'button' + 20 ];

這樣做無疑要比***種方式快很多倍,但是這種做法的弊端:需要建立一個(gè)哈希表,當(dāng)你的數(shù)據(jù)過多的時(shí)候,無疑這個(gè)哈希表將會(huì)很大。

Flex中直接獲取某個(gè)組件的對(duì)象方案3:

我們***不需要遍歷100次button容器,第二不需要建立一個(gè)哈希表。我們只是用this[xxxx]的方式,即可取出第20個(gè)button。

具體做法:var button : Button = this[ 'button' + 20 ];即可完成操作。無論這些button在什么地方?在什么樣深度的容器里面,只要是它仍在這個(gè)project里面,就可以使用this[xxx]的方式取出。
無疑這種做法是高效的,其實(shí)我們仔細(xì)看一下this[xxx]其實(shí)也是使用哈希表的方式,只不過比方案2好在,我們不需要再建立一個(gè)哈希表,這樣能節(jié)省很多的內(nèi)存空間。

具體請(qǐng)看一下第三種方法的demo:

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

【編輯推薦】

  1. Flex教程 Flex程序開發(fā)初步
  2. Flex垃圾回收和性能優(yōu)化的一些總結(jié)
  3. Flex和Jsp之間中文參數(shù)的傳遞
  4. Flex編程中需要注意的Namespace用法
  5. 將Flex與Spring集成框架
責(zé)任編輯:彭凡 來源: cnblogs
相關(guān)推薦

2023-07-31 08:02:28

2020-10-12 09:46:34

漏洞

2011-04-19 13:10:11

MySQL儲(chǔ)存圖片

2011-05-16 13:40:13

MySQL儲(chǔ)存圖片

2009-08-20 10:12:59

Flex Alert組

2022-09-15 15:04:05

datamethods

2010-08-13 09:11:11

LabelFlex

2010-07-20 13:53:44

Perl引用

2010-08-05 10:58:55

Flex組件

2010-07-30 13:40:59

Flex開發(fā)

2010-08-04 14:44:33

Flex圖表

2010-04-19 08:51:30

2021-04-15 22:17:16

PythonExcel代碼

2009-07-15 11:04:02

MyEclipse F

2009-06-25 13:03:48

JSF的UI組件

2010-08-12 13:34:13

Flex驗(yàn)證組件

2010-08-13 09:21:12

FlexButton組件

2009-09-22 13:41:10

直接使用Hiberna

2010-07-28 12:58:24

Flex DateCh

2010-08-13 13:14:09

Flex圖表
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)