samtiger


          QQ:418148757
          Name:yangchuan
          數(shù)據(jù)加載中……
          flex 動(dòng)態(tài)創(chuàng)建組件之容器自適應(yīng)大小

          為了節(jié)約swf文件的大小,可以采取動(dòng)態(tài)創(chuàng)建組件的方式,那么動(dòng)態(tài)創(chuàng)建組件就要考慮到組件容器自適應(yīng)大小。
          比如:
          <s:BorderContainer x="5" y="5" width="100%"  right="5" left="5"
                  autoLayout="true" id="bc">
            <s:layout >
             <s:TileLayout />
            </s:layout>
           </s:BorderContainer>
          我要在上邊這個(gè)容器里動(dòng)態(tài)裝入一些組件,很有可能容器的高度不夠裝下多個(gè)組件,這個(gè)時(shí)候,就要讓程序動(dòng)態(tài)的改變?nèi)萜鞯拇笮 ?br /> 改變?nèi)萜鞯拇笮】梢愿鶕?jù)添加的最后一個(gè)組件的top和height來(lái)決定,那么我們什么時(shí)候才能獲取得最后一個(gè)組件的大小呢?看下邊的代碼:

          public function init():void{
              
          var user:TblBsUserType = new TblBsUserType();
              
          function initFormItem(label:String,porp:String):FormItem{
               
          var fi:FormItem  =ElementFactory.createFormItem(label,user,porp);
               fi.setStyle(
          "paddingTop",10);
               fi.setStyle(
          "paddingLeft",20);
               bc.addElement(fi);
               
          return fi;
              }

              initFormItem(
          "用戶(hù)編碼:","butyId");
              initFormItem(
          "用 戶(hù) 名:","butyName");
              initFormItem(
          "用戶(hù)密碼:","butyPassword");
              
          var fi:FormItem=initFormItem("用戶(hù)角色:","butySate");
            
          //注意下邊這種方式可以設(shè)置bc的高度嗎???
               bc.height =fi.top+ fi.height+10;
          }
          如果動(dòng)態(tài)創(chuàng)建組件,那么直接獲取組件的高度是不行的。像上邊這種情況,fi.height的值多數(shù)情況是0.
          其實(shí)根據(jù)flex組件的生命周期,我們知道只有在creationComplete事件的時(shí)候,組件才完成了它所有的初始化工作,包括組件的位置,樣式,大小等信息。所以,要想獲得組件的高寬,我們應(yīng)該在creationComplete事件中來(lái)完成這個(gè)任務(wù)。所以上邊
          bc.height=fi.top+fi.height+10;
          應(yīng)該修改為:
          fi.addEventListener("creationComplete",function(){
               bc.height =fi.top+ fi.height+10;
              });
          這樣才可以正確設(shè)置父容器的高度。


          posted on 2010-04-10 15:59 sam.chuan.yang 閱讀(5876) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): flex基礎(chǔ)

          主站蜘蛛池模板: 潮安县| 晋中市| 天台县| 兴仁县| 屏东县| 常州市| 土默特左旗| 道真| 揭东县| 类乌齐县| 赤水市| 富宁县| 尼玛县| 含山县| 牙克石市| 明星| 宝应县| 若羌县| 如皋市| 湛江市| 银川市| 苏州市| 纳雍县| 同心县| 睢宁县| 泰宁县| 乳山市| 化州市| 怀集县| 澄迈县| 汨罗市| 克拉玛依市| 靖宇县| 离岛区| 鄂托克旗| 新营市| 嘉禾县| 无棣县| 饶阳县| 金堂县| 东乡|