隨筆 - 8  文章 - 55  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          朋友的Blog

          最新評論

          閱讀排行榜

          評論排行榜

          在Flex1.5中,如果我們要實時創(chuàng)建一個組件實例的話,可以使用createChild()方法。
          例如,假定以下代碼在MyApp.mxml中:
          <mx:Script>
          import mx.controls.Button;
          var stopButton:Button;

          function someEventHandler():Void
          {
          stopButton = Button(form1.createChild(Button, undefined, { label: "Stop!" }));
          }
          </mx:Script>
          以上唯一的方法同時完成下面四件事情:
          創(chuàng)建特定類(Button)的一個實例(stopButton)。
          使用“initObj({ label: "Stop!" })”設(shè)置該新實例的屬性(label)。
          將新創(chuàng)建的實例附加到一個父容器(form1)中。
          為了與其他兄弟實例區(qū)分開,將該實例的_name屬性設(shè)置為唯一類似__Button17的字符串值。
          實際上,在內(nèi)部,createChild()調(diào)用的是MovieClip類的attachMovie()方法來完成實例的創(chuàng)建。

          而在Flex2中,類似createChild()這樣的方法將不再必須也不是恰當(dāng)?shù)姆椒?,因為在Flash Player 8.5中,可以像創(chuàng)建其他對象一樣使用new操作來創(chuàng)建可視對象,并且,當(dāng)一個可視對象實例創(chuàng)建后,其是沒有父組件的,我們可以將其添加到父容器中,也可以在隨后將其移除并添加到其他的父容器中(是的,F(xiàn)lash終于支持re-parenting),或者,我們可以將其移除以讓其被垃圾回收器回收。
          新的動態(tài)實時創(chuàng)建實例的方法如下:
          import mx.controls.Button;
          var stopButton:Button;
          function someEventHandler():Void
          {
          stopButton = new Button();
          stopButton.label = "Stop!";
          stopButton.setStyle("color", 0xFF0000);
          form1.addChild(stopButton);
          }
          以上使用了更多行的代碼,但是他更加的清晰而易于理解:
          使用new操作符創(chuàng)建一個新的實例。
          使用普通的賦值語句和setStyle()方法設(shè)置該新實例的屬性和樣式。
          顯式調(diào)用addChild()方法將該新的實例添加到父組件中。
          注意:其他的API,如:destroyChild()、destroyChildAt()及destroyAllChildren()方法以及被移除,替代他們的是:removeChild()、 removeChildAt()和removeAllChildren()方法。
          最后,請記住以下Flex2中組件創(chuàng)建的周期:
          創(chuàng)建(new) - add添加(add) - 移除(remove) - ( 添加 - 移除 - ... ) - 被垃圾收集
          原文地址:Creating Component Instances at Runtime
          另外,今天才知道,原來Flash Player 8.5的開發(fā)代號叫:Zaphod
          PS:Firefox的查看選中部分源代碼的功能真是方便,IE有的學(xué)哦...:)
          posted on 2006-04-29 13:41 blog搬家了--[www.ialway.com/blog] 閱讀(285) 評論(0)  編輯  收藏 所屬分類: Flex
          主站蜘蛛池模板: 宜兰县| 涿鹿县| 旺苍县| 山东省| 双辽市| 灯塔市| 班戈县| 扎鲁特旗| 巴楚县| 濮阳县| 祁阳县| 阿合奇县| 蛟河市| 鄂州市| 资源县| 唐河县| 蓬安县| 勐海县| 龙山县| 内黄县| 滨海县| 大洼县| 泾源县| 当雄县| 赣州市| 墨脱县| 定南县| 贵德县| 德安县| 玛多县| 苏尼特左旗| 扶余县| 邵阳市| 杭锦后旗| 安丘市| 兴业县| 新蔡县| 大新县| 禄丰县| 巫溪县| 云南省|