關注技術,關注生活

          任何事情只要開始去做,永遠不會太遲。
          posts - 5, comments - 23, trackbacks - 0, articles - 18
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          [轉]AS3中的強制類型轉換

          Posted on 2009-05-20 15:18 errorfun 閱讀(1212) 評論(0)  編輯  收藏 所屬分類: Flex

          每一種編程語言都提供強制類型轉換,允許你將某一種數據類型轉換成另一種數據類型,AS3自然也不例外。但是雖然我編寫了不少Flex程序,對AS3中的強制類型轉換還是不太清楚,以前AS中是這樣進行強制類型轉換的:假設有一個類叫做Class1,我們聲明了一個它的對象 c1,如果想要將它轉換成Class2類型,只要這樣寫:

          Class2(c1);

          在AS3中你依然可以這樣寫,但是AS3 中提供了一個新的操作符: as ,并且推薦使用as 進行強制轉換,上述的例子用 as 操作符實現就是這樣:

          c1 as Class2;

          使用 as 操作符有幾個好處:

          1.它的效果和第一種方法是一樣的。
          2.如果類型不兼容無法轉換,就會返回null,而不是出錯。這樣你就可以自定義錯誤的時候該做什么。
          3.沒有運行時錯誤(Run Time Error)提示。

          不過有些時候我在使用 as 的時候并不能達到強制轉換的目的,而使用第一種方法則可以。為什么 as 操作符有時候會不好用呢?這個問題困擾了我很久,知道昨天在MXNA上發現了一篇日志,才恍然大悟:原來在AS3.0類庫中最高層類(Top Level classes,所有Top Level classes的列表請看這里)之間進行強制轉換時, as 操作符是不起作用的。比如,假如你想要將一個String 類型的字符串 str 轉換成 Number 類型的數字 num 時,可能想要這樣寫:

          num = str as Number;

          這樣寫是沒有用的,你只能通過第一種方法來達到強制轉換的目的:

          num = Number(str);

          特別感謝raghuonflex對此做了說明,也希望這些對學習Flex的人有些提示。

          注:以上技巧我只在Flex 中驗證過,本人對Flash一竅不通,不保證也適用于 Flash中的 AS3.0 。


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 星子县| 册亨县| 大连市| 许昌县| 新竹市| 无为县| 龙海市| 安陆市| 陆丰市| 肥城市| 贵溪市| 恩施市| 图们市| 灌云县| 阿尔山市| 甘德县| 乡城县| 禄劝| 平舆县| 曲水县| 东宁县| 墨竹工卡县| 肥西县| 祥云县| 吴桥县| 霍林郭勒市| 民乐县| 偏关县| 洪泽县| 日照市| 汉川市| 诸城市| 林甸县| 华安县| 广宗县| 宕昌县| 白玉县| 古田县| 嵊泗县| 高雄县| 雷山县|