AS3 клон MovieClip - PullRequest
       1

AS3 клон MovieClip

3 голосов
/ 22 октября 2010

Ниже приведен мой код для попытки клонировать мувиклип, и он не работает.Мы должны увидеть два круга, если коды работают правильно.

/*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);

Ответы [ 3 ]

8 голосов
/ 22 октября 2010

Когда вы делаете cloneCircle=circle, это ничего не копирует и не клонирует. Это просто говорит о том, что переменная cloneCircle это другое имя для вашего оригинального circle MovieClip. Вам нужно использовать метод Graphics.copyFrom () .

Попробуйте:

var cloneCircle:MovieClip = new MovieClip();
cloneCircle.graphics.copyFrom(circle.graphics);
cloneCircle.x = 60;
addChild(cloneCircle);
3 голосов
/ 30 сентября 2014

Адаптировано с здесь :

function copyClip( clip:MovieClip )
{
    var sourceClass:Class = Object(clip).constructor;
    var duplicate:MovieClip = new sourceClass();
    return duplicate;
}
3 голосов
/ 26 сентября 2012

Это для создания дубликата объекта сцены, который существует в библиотеке FLA во время компиляции.

У объекта должен быть помечен «Экспорт для ActionScript» на его панели свойств и допустимое имя класса вПоле класса

Если у символа есть только один кадр, просто добавьте другой, чтобы он регистрировался как MovieClip(), а не 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...