Сбоственно и весь вопрос. есть некий мувиклип, и необходимо сделать программными средствами его копию.
Если быть точнее:
То предположим, что у меня есть пример.
private function onTabEvent(){
//Здесь создается графический объект, которые уже нарисован в библиотеке
var obj = new Sword_mc;
obj.x = 400;
obj.y = 400;
addChild(obj);
obj.addEventListener(MouseEvent.MouseDown,onMouseD);
}
private function onMouseD(e:MouseEvent){
var newObj = e.currentTarget; //Это ссылка на обект obj, чтобы его в дальнейшем использовать.
/*
А вот в этом месте мне нужно сделать точную копию newObj;
*/
}
Как это сделать я вообще без понятия. Помогите, пожалуйста.
Я так понимаю вы хотите, чтобы так же получить все изменения, что произошли с мувиком. Ну есть вариант универсальный, через конструктор созать экземпляр класса, а дальше присвоить все необходимые значения оригинала к его экземпляру. Ну ещё может прокатить по быстрому (надобно пробовать) добавляем мувик в массив, а потом просто делаем копию этого массива. Ниже отрывок из моего кода, в котором при необходимости я создаю массив из небходимого мувика, там используется конструктор
package classesGame.pool
{
import flash.display.MovieClip;
public class Pool
{
private var vectorPool:Vector. = new Vector.;
private var classView:Object;
public function Pool(_class:Object)
{
for (var i:uint = 0; i < _class.getLength; i++)
vectorPool.push(new (_class).constructor);
}
public function get getPool():Vector.
{
return vectorPool
}
}
}
intTosha: ну можете создать один массив и в него всё кидать, только наверно потребуется второй массив с индексацией того, что лежит в первом. Я бы о ресурсах не сильно бы думал, если у вас не в каждом кадре по 100 штук их создают. Операция аналогична "new", но жрёт больше процессорного времени, на потребление памяти сильно не влияет, рекомендую объявлять массив внутри метода, тогда после удаления мувика и остальных ссылок на него, его прибьёт GC