<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    云自無心水自閑

    天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
    posts - 288, comments - 524, trackbacks - 0, articles - 6
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    ActionScript3.0/Flex2中的反射

    Posted on 2007-02-10 14:32 云自無心水自閑 閱讀(1253) 評(píng)論(4)  編輯  收藏 所屬分類: FlexFlex2

    ?

    在ActionScript 3中,你會(huì)發(fā)現(xiàn)在flash.utils包中有一系列函數(shù)提供了反射的功能。主要包含以下功能:

    ??? * 確定對(duì)象的類
    ??? * 獲取類的成員、方法、構(gòu)造函數(shù)、父類的信息
    ??? * 確定接口聲明的常數(shù)和方法
    ??? * 在運(yùn)行時(shí)根據(jù)類名創(chuàng)建類的實(shí)例
    ??? * 在運(yùn)行時(shí)根據(jù)成員名稱獲取或者設(shè)置對(duì)象成員的值
    ??? * 在運(yùn)行時(shí)根據(jù)方法名稱,調(diào)用對(duì)象的方法

    你可以使用類似于"describeType"之類的功能,它返回一個(gè)Xml對(duì)象。舉一個(gè)例子:

    package {
    ??? import flash.display.Sprite;
    ??? import flash.utils.describeType;
    ??
    ??? public class DescribeTypeExample extends Sprite {
    ??????? public function DescribeTypeExample() {
    ??????????? var child:Sprite = new Sprite();
    ??????????? var description:XML = describeType(child);
    ??????????? trace(description..accessor.@name.toXMLString());
    ??????? }
    ??? }
    }

    如果你想進(jìn)一步,根據(jù)類名創(chuàng)建對(duì)象的實(shí)例,我們可以使用"getDefinitionByName()"

    package {
    ??? import flash.display.DisplayObject;
    ??? import flash.display.Sprite;
    ??? import flash.utils.getDefinitionByName;

    ??? public class GetDefinitionByNameExample extends Sprite {
    ??????? private var bgColor:uint = 0xFFCC00;
    ??????? private var size:uint = 80;

    ??????? public function GetDefinitionByNameExample() {
    ??????????? var ClassReference:Class = getDefinitionByName(“flash.display.Sprite”) as Class;
    ??????????? var instance:Object = new ClassReference();
    ??????????? instance.graphics.beginFill(bgColor);
    ??????????? instance.graphics.drawRect(0, 0, size, size);
    ??????????? instance.graphics.endFill();
    ??????????? addChild(DisplayObject(instance));
    ??????? }
    ??? }
    }

    盡管這是一些非常方便的方法,但是在FlashPlayer中使用反射還是會(huì)有許多的限制,因?yàn)槿狈\(yùn)行時(shí)的動(dòng)態(tài)源碼編譯。上面的功能對(duì)于那些在內(nèi)建的類,比如:Sprite類來說無疑是有用的,但是對(duì)于自定義類來說,我們會(huì)遇到很多麻煩。比如:

    package {
    ??? import com.customtypes.string; // Custom String Implementation Class
    ??? import flash.utils.getDefinitionByName;

    ??? public class GetDefinitionByNameExample {
    ??????? public function GetDefinitionByNameExample() {
    ??????????? var ClassReference:Class = getDefinitionByName(“com.customtypes.string”) as Class;
    ??????????? var instance:Object = new ClassReference();
    ??????????? instance.customParameter = “my parameter”;
    ??????? }
    ??? }
    }

    盡管我們使用了import語句,但是"getDefinitionByName()"還是會(huì)失敗。原因上面已經(jīng)說過了,在運(yùn)行時(shí)編譯源代碼是不允許的。也許以后可以。在目前情況下,要實(shí)現(xiàn)上述功能,至少要在代碼中初始化一個(gè)類的實(shí)例。也就是聲明一個(gè)類的實(shí)例:

    var customType : com.customtypes.string;

    ?




    評(píng)論

    # re: ActionScript3.0/Flex2中的反射  回復(fù)  更多評(píng)論   

    2007-04-05 18:02 by slim
    翻譯的吧
    注明出處
    http://weblogs.thekeunster.com/?p=10

    # re: ActionScript3.0/Flex2中的反射  回復(fù)  更多評(píng)論   

    2007-09-09 14:39 by bona shen
    而且getDefinitionByName方法不能獲取自定義的類。

    # re: ActionScript3.0/Flex2中的反射[未登錄]  回復(fù)  更多評(píng)論   

    2007-09-10 14:20 by 云自無心水自閑
    @slim
    Yes, It's a translated article. But not from the URL you pointed out.

    # re: ActionScript3.0/Flex2中的反射[未登錄]  回復(fù)  更多評(píng)論   

    2007-09-10 14:22 by 云自無心水自閑
    @slim
    I forgot the URL now, but it should be a blog of the Flex team member.
    主站蜘蛛池模板: 国产成人精品久久亚洲高清不卡 | 最近最新MV在线观看免费高清| 国产av无码专区亚洲av果冻传媒| 亚洲精品无码成人| 免费的涩涩视频在线播放| 伊人久久五月丁香综合中文亚洲| 全免费毛片在线播放| 亚洲人成影院在线高清| 84pao强力永久免费高清| 亚洲精品视频免费在线观看| 51精品视频免费国产专区| 亚洲最大中文字幕| 69堂人成无码免费视频果冻传媒| 亚洲人成在久久综合网站| 日本高清免费网站| 黄色a三级免费看| 久久久久国产成人精品亚洲午夜| 精品一区二区三区高清免费观看| 国产AV无码专区亚洲AV漫画| 美女内射无套日韩免费播放 | 亚洲国产成a人v在线观看| 免费黄色网址入口| 污污视频免费观看网站| 亚洲综合无码AV一区二区 | 日韩高清免费观看| 春意影院午夜爽爽爽免费| 亚洲精品夜夜夜妓女网| 中文字幕无码播放免费| 亚洲a∨无码精品色午夜| 亚洲午夜日韩高清一区 | 成年人免费视频观看| 日日摸日日碰夜夜爽亚洲| 自拍偷自拍亚洲精品情侣| 91频在线观看免费大全| 牛牛在线精品观看免费正| 亚洲精品福利视频| 日韩a在线观看免费观看| 国内精品一级毛片免费看| 国产亚洲精品成人AA片| 亚洲日韩精品一区二区三区无码 | 美女视频黄频a免费|