开发者

As3 Copy object

sometimes we need clone a object.but if a displayObject has some children and use the funct开发者_如何学JAVAion like this:

function clone(source:*):*
{
    var b:ByteArray = new ByteArray();
    b.writeObject(source);
    b.position = 0;
    return(b.readObject());
}

but the result has no children.. .. . so what should I do ?


Unfortunately automatic cloning of objects in actionscript is a waste of time in the majority of cases.

Your snippet is right, but serialization/deserialization via ByteArray cannot perform real deep copy, i.e. copying of all references and containers. ByteArray technique will work only with non-reference data types (Number, int, String, etc.)

So there is no silver bullet and only one adequate solution - to write the clone() method for your class manually.


I didn't have to program a clone-method myself yet, but i found a way that might do the trick. By iterating through all your variables (in an xml-representation), you can copy them in a new instance of your class.

you can find the method i am talking about on this link: http://www.learnosity.com/techblog/index.cfm/2008/2/6/AS3--Looping-over-properties-of-a-class

Let me know if it works, i'm kind of curious myself :)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜