Köszi!
Ha kell a clone, és fontos a sebesség, akkor ilyeneket fogok írni. Ha nem fontos, akkor meg felhívom a román kolléga UtilFunctions.clone-ját.
http://blog.another-d-mention.ro/programming/how-to-clone-duplicate-an-object-in-actionscript-3/
Köszi!
Ha kell a clone, és fontos a sebesség, akkor ilyeneket fogok írni. Ha nem fontos, akkor meg felhívom a román kolléga UtilFunctions.clone-ját.
http://blog.another-d-mention.ro/programming/how-to-clone-duplicate-an-object-in-actionscript-3/
Object.prototype.clone=function(){ var o={} for(var i in this){ o[i]=this[i] } return o } var golden = {szin:"arany",minSuly:0.03,maxSuly:0.07} var jonatan = golden.clone() jonatan.szin="piros" trace(golden.szin,jonatan.szin)
Ilyesmire gondoltál?
Az as3-ban is lehet prototype-ot használni.
Nézd meg a propertyIsEnumerable() és a setPropertyIsEnumerable() is.
Viszont csak propertyIsEnumerable() -> true tulajdonságokat viszi át.
Például egy mc x,y tulajdonsága nem Enumerable, és első blikkre a setPropertyIsEnumerable() se segített ezen.
AS2-ben egy időben sokat használtam ezt a megoldást, de a kód egy kicsit átláthatatlan lesz tőle.
Praktikusabb ha az adott osztályra te írod meg a clone funkciót.
Hali!
Egy objektumot (object-et) szeretnék klónozni/duplikálni. Tehát nem referenciát másolni, hanem egy új ugyanolyan objektet csinálni.
Itt találtam már egy megoldást, de nehezen hiszem el, hogy ne lenne egyszerűbb megfejtés.
http://blog.another-d-mention.ro/programming/how-to-clone-duplicate-an-object-in-actionscript-3/
Némi kód, aminek nem "golden: piros starking: piros" at kéne mutatnia, hanem "golden: sarga starking: piros"-at:
package { public class TestCloneClass { public function TestCloneClass() { var golden:alma; var starking:alma; golden = new alma(); golden.szin = "sarga"; starking = golden; starking.szin = "piros"; trace( "golden:", golden.szin, "starking:", starking.szin); } } } class alma { public var szin:String; }
A beküldéshez be kell jelentkezni.