flex 動態創建組件之容器自適應大小
為了節約swf文件的大小,可以采取動態創建組件的方式,那么動態創建組件就要考慮到組件容器自適應大小。
比如:
<s:BorderContainer x="5" y="5" width="100%" right="5" left="5"
autoLayout="true" id="bc">
<s:layout >
<s:TileLayout />
</s:layout>
</s:BorderContainer>
我要在上邊這個容器里動態裝入一些組件,很有可能容器的高度不夠裝下多個組件,這個時候,就要讓程序動態的改變容器的大小。
改變容器的大小可以根據添加的最后一個組件的top和height來決定,那么我們什么時候才能獲取得最后一個組件的大小呢?看下邊的代碼:
















其實根據flex組件的生命周期,我們知道只有在creationComplete事件的時候,組件才完成了它所有的初始化工作,包括組件的位置,樣式,大小等信息。所以,要想獲得組件的高寬,我們應該在creationComplete事件中來完成這個任務。所以上邊
bc.height=fi.top+fi.height+10;
應該修改為:
fi.addEventListener("creationComplete",function(){
bc.height =fi.top+ fi.height+10;
});
這樣才可以正確設置父容器的高度。
posted on 2010-04-10 15:59 sam.chuan.yang 閱讀(5882) 評論(0) 編輯 收藏 所屬分類: flex基礎