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

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          朋友的Blog

          最新評論

          閱讀排行榜

          評論排行榜

          在Flex1.5中,如果我們要實時創建一個組件實例的話,可以使用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>
          以上唯一的方法同時完成下面四件事情:
          創建特定類(Button)的一個實例(stopButton)。
          使用“initObj({ label: "Stop!" })”設置該新實例的屬性(label)。
          將新創建的實例附加到一個父容器(form1)中。
          為了與其他兄弟實例區分開,將該實例的_name屬性設置為唯一類似__Button17的字符串值。
          實際上,在內部,createChild()調用的是MovieClip類的attachMovie()方法來完成實例的創建。

          而在Flex2中,類似createChild()這樣的方法將不再必須也不是恰當的方法,因為在Flash Player 8.5中,可以像創建其他對象一樣使用new操作來創建可視對象,并且,當一個可視對象實例創建后,其是沒有父組件的,我們可以將其添加到父容器中,也可以在隨后將其移除并添加到其他的父容器中(是的,Flash終于支持re-parenting),或者,我們可以將其移除以讓其被垃圾回收器回收。
          新的動態實時創建實例的方法如下:
          import mx.controls.Button;
          var stopButton:Button;
          function someEventHandler():Void
          {
          stopButton = new Button();
          stopButton.label = "Stop!";
          stopButton.setStyle("color", 0xFF0000);
          form1.addChild(stopButton);
          }
          以上使用了更多行的代碼,但是他更加的清晰而易于理解:
          使用new操作符創建一個新的實例。
          使用普通的賦值語句和setStyle()方法設置該新實例的屬性和樣式。
          顯式調用addChild()方法將該新的實例添加到父組件中。
          注意:其他的API,如:destroyChild()、destroyChildAt()及destroyAllChildren()方法以及被移除,替代他們的是:removeChild()、 removeChildAt()和removeAllChildren()方法。
          最后,請記住以下Flex2中組件創建的周期:
          創建(new) - add添加(add) - 移除(remove) - ( 添加 - 移除 - ... ) - 被垃圾收集
          原文地址:Creating Component Instances at Runtime
          另外,今天才知道,原來Flash Player 8.5的開發代號叫:Zaphod
          PS:Firefox的查看選中部分源代碼的功能真是方便,IE有的學哦...:)
          posted on 2006-04-29 13:41 blog搬家了--[www.ialway.com/blog] 閱讀(285) 評論(0)  編輯  收藏 所屬分類: Flex
          主站蜘蛛池模板: 东至县| 百色市| 大宁县| 赫章县| 延津县| 柳州市| 清流县| 咸丰县| 海兴县| 桦甸市| 社旗县| 莫力| 江津市| 措勤县| 阿合奇县| 中西区| 综艺| 克拉玛依市| 临猗县| 星座| 汉中市| 大新县| 卢氏县| 宁德市| 贵德县| 平原县| 永吉县| 大渡口区| 沈丘县| 西和县| 山东省| 康马县| 方山县| 崇义县| 大足县| 商洛市| 贺兰县| 饶阳县| 宝坻区| 中阳县| 偏关县|