![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2008
Сообщений: 40
|
Есть такой код:
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();
}
}
И каждому созданному мувику я приписываю такой же слушатель, но свой, который отвечает за drag & drop. НО. Когда я хочу сделать drag & drop и делаю MOUSE_DOWN на этом мувиклипе, событие попадает и на stage , из-за чего я создаю ещё один лишний мувиклип. Пока всё на догадках, но я думаю, нужно как-то приостанавливать события на время drag & drop. Что-то никак не пойму, что я делаю неправильно. |
|
|||||
|
Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
|
|
|
|||||
|
Регистрация: Aug 2008
Сообщений: 40
|
это из-за того что Click - не генерит MOUSE_DOWN ?
а не подскажете ещё, как правильно написать в конце, там где у меня получение ссылки на мувиклип. Дело в чём: событие-то возникает, но пока я начинаю получать ссылку, событие возникает ещё несколько раз (по-моему), поэтому у меня там проверка, содержит ли имя объекта нужный текст. Но вот в чём сложность: на объекте есть также текст, который иногда "хватает" событие и тогда, конечно же вылетает ошибка. Спасибо за ответ UPD Оказалось, MOUSE_UP генерит CLICK ![]() Последний раз редактировалось mad_god; 17.11.2008 в 15:03. |
|
|||||
|
Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
|
|
|
|||||
|
Регистрация: Aug 2008
Сообщений: 40
|
Да, так лучше. Но всё равно, при отпускании кнопки мыши, stege получает CLICK и создаёт лишний мувик.
Может, связать как-то событие и флаг "начат драг енд дроп" ? |
|
|||||
|
Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
|
|
|
|||||
|
Регистрация: Aug 2008
Сообщений: 40
|
Огромное спасибо.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 09:58. |
|
|
« Предыдущая тема | Следующая тема » |
|
|