您好,登錄后才能下訂單哦!
本篇內容介紹了“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中怎么直接獲取某個組件的對象”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。