Есть такой код:

Код:
var item:Array = new Array;// создаём массив для объектов
var zzz = aaa;
var sss = aaa;
var j:String= "item";// задаём основу для имени объектов
var i=0;// Создаём счётчик объектов
stage.addEventListener(MouseEvent.MOUSE_DOWN,addmc);// Добавляем прослушку мыши
function addmc(event:MouseEvent):void {
i=i+1;// Увеличиваем счётчик объектов
j=j+i;// Добавляем к имени объекта счётчик
var z:aaa = new aaa;// Создаём образец МувиКлипа
z.name =j;// Даём ему уникальное имя
z.addEventListener(MouseEvent.MOUSE_DOWN,addmc2);
z.addEventListener(MouseEvent.MOUSE_UP,addmc3);
z.index = i;
//trace(z.index);
z.az.text=z.name;
item[i] = z;// Помещаем новый образец в массив (контейнер)
addChild(z);// Помещаем образец на сцену
z.x = stage.mouseX;// Координата Х образца
z.y = stage.mouseY;// Координата У образца
j="item";//Обнуляем имя следующего образца чтобы потом добавить счётчик
}
function addmc2(event:MouseEvent):void { // Событие при зажатии кнопки мыши
zzz = event.target;
sss = item[zzz.index];
if (sss.name.substr(0,4) == "item") {
// При наведении курсора с нажатой кнопкой
sss.az.text =zzz.name;
//trace(sss.index);
sss.startDrag();
}
}
function addmc3(event:MouseEvent):void { // Событие при отпускании кнопки мыши
zzz = event.target;
if (zzz.name.substr(0,4) == "item") {
sss = item[zzz.index];
sss.stopDrag();
}
}
Когда я подписываю stage на событие MOUSE_DOWN, я пишу код, который при этом событии выполняется и который создаёт новый образец мувиклипа на экране.
И каждому созданному мувику я приписываю такой же слушатель, но свой, который отвечает за drag & drop.
НО. Когда я хочу сделать drag & drop и делаю MOUSE_DOWN на этом мувиклипе, событие попадает и на stage , из-за чего я создаю ещё один лишний мувиклип.
Пока всё на догадках, но я думаю, нужно как-то приостанавливать события на время drag & drop.
Что-то никак не пойму, что я делаю неправильно.