dngo
dngo

Reputation: 59

AS3 clone MovieClip

The below is my code for trying to clone the MovieClip and it doesn't work. We should see two cirles if the codes is working correctly.

/*The original MovieClip*/
var circle:MovieClip = new MovieClip();
circle.graphics.beginFill(0xAA0022);
circle.graphics.drawCircle(40, 40, 40);
circle.x=10
addChild(circle);

/*CLONE the MovieClip - IT DOES'T WORK FROM HERE DOWN*/
var cloneCirle:MovieClip = new MovieClip();
    cloneCirle=circle
    cloneCirle.x=60 
    addChild(cloneCirle);

Upvotes: 4

Views: 20102

Answers (3)

Mahir
Mahir

Reputation: 183

When you do cloneCircle=circle, it's not copying or cloning anything. It's just saying that the variable cloneCircle is another name for your original circle MovieClip. What you need to do is use the Graphics.copyFrom() method.

Try it:

var cloneCircle:MovieClip = new MovieClip();
cloneCircle.graphics.copyFrom(circle.graphics);
cloneCircle.x = 60;
addChild(cloneCircle);

Upvotes: 8

bobobobo
bobobobo

Reputation: 67224

Adapted from here:

function copyClip( clip:MovieClip )
{
    var sourceClass:Class = Object(clip).constructor;
    var duplicate:MovieClip = new sourceClass();
    return duplicate;
}

Upvotes: 4

DimaBaliakin
DimaBaliakin

Reputation: 39

This is for creating a duplicate of a stage object that exists in the FLA library at compile time

The object must have a 'Export for Actionscript ticked in it's properties panel and a valid class name in the 'Class' box

If the symbol only has a single frame just add another so it registers as MovieClip() rather than Sprite()

private function cloneObject(source:DisplayObject):void
{
    var objectClass:Class = Object(source).constructor;
    var instance:MovieClip = new objectClass() as MovieClip;
    instance.transform = source.transform;
    instance.filters = source.filters;
    instance.cacheAsBitmap = source.cacheAsBitmap;
    instance.opaqueBackground = source.opaqueBackground;
    source.parent.addChild(instance);
    instance.x += 20; // just to show the duplicate exists!
}

http://snipplr.com/view/44734/

Upvotes: 4

Related Questions