# Help cloning DisplayObject, trouble with Transform

**URL:** <https://forum.kirupa.com/t/help-cloning-displayobject-trouble-with-transform/239265>\
**Category:** flash\
**Created:** [September 20, 2007, 12:58am UTC](https://forum.kirupa.com/t/help-cloning-displayobject-trouble-with-transform/239265 "2007-09-20T00:58:45Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![justinswartsel](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/justinswartsel/32/4051_2.png) [@justinswartsel](https://forum.kirupa.com/u/justinswartsel)\
**Post date:** [September 20, 2007, 12:58am UTC](https://forum.kirupa.com/t/help-cloning-displayobject-trouble-with-transform/239265/1 "2007-09-20T00:58:45Z")

</div>

Hey guys, I’ve been working on this forever and can’t figure out exactly what i’m doing wrong. I’m trying to duplicate my custom class called “Picture” but the only cloning that is actually happening is on the DisplayObject property within the class. I am using the ByteArray method.

I kept adding the registerClassAlias because of coersion errors, and once I added the alias for Transform, I got this error:

```auto
ArgumentError: Error #1063: Argument count mismatch on flash.geom::Transform$iinit(). Expected 1, got 0.
    at flash.utils::ByteArray/readObject()
.
.
.

```

My actual class code is as follows:

```auto
package {
    
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.*;
    import flash.utils.*;
    import flash.display.DisplayObject;
    import flash.display.Loader;
    import flash.utils.ByteArray;
    import flash.net.registerClassAlias;
    import flash.geom.Transform;
    
    public class Picture extends MovieClip {

            
        public var pic:DisplayObject;
        private var desc:String;
        public var id:int;
        
    
        
        public function Picture(p:DisplayObject, t:String, i:int){
            pic = p;
            desc = t;
            id = i;
            this.addChild(pic);        
        }
        
        public function getDesc():String{
            return desc;
        }
                
        public function clone():Picture {

            registerClassAlias("a.a.a", DisplayObject);
            registerClassAlias("a.a.b", Loader);
            registerClassAlias("a.a.c", Transform);
            
            var t:ByteArray = new ByteArray();
            t.writeObject(pic);
            t.position = 0;
            return new Picture(DisplayObject(t.readObject()), desc, id);
        }
        
    }
    
    
    
}

```

Does anybody have ANY idea what this means or how I can fix it? Thanks a bunch, everyone.
