vinny

          使用as3中的getDefinitionByName函數(shù)實現(xiàn)拼寫類并動態(tài)創(chuàng)建類的實例

          使用as3中的getDefinitionByName函數(shù)實現(xiàn)動態(tài)拼寫類并動態(tài)創(chuàng)建類的實例

          public function getDefinitionByName(name:String):Object
          返回參數(shù) name 中指定的類引用

          參數(shù)  name:String - 類名稱
          返回  Object - 返回參數(shù) name 中指定的類引用
          錯誤  ReferenceError - 找不到參數(shù) name 對應的公共定義

          as3中的getDefinitionByName函數(shù)是 返回 name 參數(shù)指定的類的類對象引用。

          這樣就可以使用這個方法根據(jù)已知類的路徑的字符串來獲取類的類對象引用。這樣就可以利用這個特性讓flash動態(tài)創(chuàng)建類的實例...

          但問題是:

          1. 使用getDefinitionByName方法獲得的類必須是在發(fā)布的時候被編譯到swf文中的,否則就會報錯:"ReferenceError: Error #1065: 變量 <類的名字> 未定義。"

          2. 由于使用import導入的類(只是作為查找類的路徑)并不會在發(fā)布swf的時候被編譯進去(當然flash.*包里面的類本身就是player中的),只用在代碼中使用到的類才會被編譯進去...

           

          那么,要使用這個方法來實現(xiàn)動態(tài)執(zhí)行怎么辦? 只有把可能需要的所有類包含在代碼中(比如在定義變量的類型聲名時使用 *),并且在開始聲名此類,聲名時可以隨便使用個名字,這樣才能使用getDefinitionByName方法...
          實際上getDefinitionByName所獲得的類名就是前面你所做的聲名的名字引用//-------------------------------------------------
          import com.ooph.parser.*;
          //包內有ParserWeb類
          var ss:ParserWeb;
          //在此處聲名ParserWeb類,名為ss(名字不用與下面實例名的相同)
          var sortStr:String="Web";
          var P:Class = getDefinitionByName("com.ooph.parser.Parser"+sortStr) as Class;
          //注意這里要寫完整的類路徑 "com.ooph.parser.Parser"+sortStr
          var newParser:* = new P();

          posted on 2008-08-07 20:26 vinny 閱讀(1527) 評論(0)  編輯  收藏 所屬分類: Flex

          導航

          <2008年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 临夏市| 忻城县| 化州市| 白朗县| 九龙坡区| 孝昌县| 汤原县| 嘉兴市| 那坡县| 久治县| 叶城县| 永寿县| 女性| 洛浦县| SHOW| 莎车县| 昭通市| 长寿区| 绍兴县| 饶阳县| 西安市| 邹平县| 西青区| 璧山县| 凤台县| 沙湾县| 武平县| 甘孜县| 磐石市| 遂宁市| 盖州市| 青川县| 财经| 株洲市| 兴义市| 古浪县| 包头市| 临汾市| 社会| 南开区| 西乌|