• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開心的工作
            簡(jiǎn)單、開放、平等的公司文化;尊重個(gè)性、自由與個(gè)人價(jià)值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            今天同事問我有as3中對(duì)象深度拷貝的問題

            原來還真是沒用過,今天google后自己總結(jié)下,便于大家參考

            as3中通過ByteArray可以進(jìn)行對(duì)象的深度拷貝

            import flash.utils.ByteArray;
            import flash.utils.getQualifiedClassName;
            import flash.net.*;
            import src.*;
            function cloneObject(source:Object) :* {
            var typeName:String = getQualifiedClassName(source);//獲取全名
            trace(”輸出類的結(jié) 構(gòu)”+typeName);
            //return;
            var packageName:String = typeName.split(”::”)[0];//切出包名
            trace(”類的名稱”+packageName);
            var type:Class = getDefinitionByName(typeName) as Class;//獲取Class
            trace(type);
            registerClassAlias(packageName, type);//注冊(cè)Class

            //復(fù)制對(duì)象
            var copier:ByteArray = new ByteArray();
            copier.writeObject(source);
            copier.position = 0;
            return copier.readObject();
            }

            有的人說用復(fù)制對(duì)象那一段不就可以了嗎,但是實(shí)際上行不通
            對(duì)于數(shù)組深度復(fù)制來說, 復(fù)制對(duì)象的后面4句代碼就足夠了

            var a1:Array=[1,2,3];

            var a2:Array =cloneObject(a1);

            var a3:Array = a1;
            a1.push(”youmila”);
            trace(”a1:”+a1+”a2:”+a2+”a3″+a3);

            但是對(duì)于對(duì)象來說肯定不行

            用列子測(cè)試下
            src.youmila.as 代碼:

            package src{
            public class youmila{
            private var $_name:String =”youmila”;
            private var $_num:Number =0;
            public function youmila():void{
            trace($_name);

            }

            public function secondFunc():void{
            $_num++;
            trace(”this a called function $_num::”+$_num);

            }
            }

            }

            yapollo.as 代碼:

            package {
            public class yapollo{
            private var $_name:String =”yapollo”;
            public var $_num:Number =0;
            public function yapollo():void{
            trace($_name);

            }
            public function secondFunc():void{

            $_num++;
            trace(”this a called function $_num::”+$_num);

            }

            }
            }

            測(cè)試實(shí)例

            var uml1:youmila = new youmila();
            var uml2 = cloneObject(uml1);
            trace(” 類型”+getQualifiedClassName(uml2));
            輸出結(jié)果:

            youmila
            類型Object
            原來的對(duì)象類型丟失了,所以對(duì)于對(duì)象而言,四行不夠,必須
            用 registerClassAlias來保存類的別名,以用于丟失后恢復(fù)類的類型
            測(cè)試實(shí)例

            var uml1:youmila = new youmila();

            var uml2 = cloneObject(uml1);
            trace(”類 型”+getQualifiedClassName(uml2));

            var apollo:yapollo = new yapollo();

            apollo.secondFunc();
            var apollo2 = cloneObject(apollo);
            trace(” 第一次輸出復(fù)制對(duì)象的$_num值”+apollo2.$_num);
            trace(”類 型”+getQualifiedClassName(apollo2));

            apollo2.secondFunc();
            trace(”第二次輸出復(fù)制對(duì)象的$_num值”+apollo2.$_num);

            輸出結(jié)果:

            youmila
            輸出類的結(jié)構(gòu)src::youmila
            類的名稱src
            [class youmila]
            youmila
            類 型src::youmila
            yapollo
            this a called function $_num::1
            輸出類的結(jié)構(gòu) yapollo
            類的名稱yapollo
            [class yapollo]
            yapollo
            第一次輸出復(fù)制對(duì)象的$_num值 1
            類型yapollo
            this a called function $_num::2
            第二次輸出復(fù)制對(duì)象的$_num值2
            国产AV影片久久久久久| 日韩av无码久久精品免费| 欧美激情精品久久久久| 人人狠狠综合久久亚洲88| 国产亚州精品女人久久久久久 | 2021国内久久精品| 久久久久亚洲av成人无码电影| 久久精品成人免费观看97| 伊人久久综合精品无码AV专区| 狠狠干狠狠久久| 久久伊人中文无码| 91精品国产综合久久婷婷| 人妻少妇精品久久| 久久99毛片免费观看不卡| 久久精品免费一区二区| 国产精品午夜久久| 久久久久成人精品无码中文字幕 | 亚洲中文字幕伊人久久无码| 久久久久高潮毛片免费全部播放 | 亚洲国产成人乱码精品女人久久久不卡 | 精品久久久久久综合日本| 人妻精品久久久久中文字幕| 青青青国产成人久久111网站| 午夜精品久久久久久99热| 日本亚洲色大成网站WWW久久 | 亚洲美日韩Av中文字幕无码久久久妻妇| 久久精品中文字幕无码绿巨人| 欧美午夜A∨大片久久| 久久e热在这里只有国产中文精品99| 久久国产免费观看精品3| 久久天天躁夜夜躁狠狠| 日批日出水久久亚洲精品tv| 久久天天躁狠狠躁夜夜2020| 国产日产久久高清欧美一区| 久久91精品国产91久久户| 久久美女人爽女人爽| 久久久青草久久久青草| 国产日韩久久久精品影院首页| 精品久久久久久久久中文字幕| 久久精品国产秦先生| 91久久精品电影|