Есть двухмерный массив Personag1Veshi ["kartinkaVeshi"] ["nameVeshi"]
["kartinkaVeshi"] - содержит картинки вещей
["nameVeshi"] - содержит соответствующие имена вещей
По ходу программы массив Personag1Veshi изменяется. Некоторые вещи удаляются, некоторые добавляются.
Обновление Массива вещей на Экране происходит в единственном месте программы
(при условии что в него были внесены изменения) с помощью цикла.
ЗАДАЧА:
Каждая выведенная на экран картинка вещи должна уметь перетаскиваться мышкой.
И мы должны знать какое имя (["nameVeshi"]) у вещи которая у нас перетаскивается в данный момент.
Я для этого попытался циклом навесить по слушателю на каждую картинку
Но это не работает и вообще как то "подозрительно" выглядит.))
Может для решения этой задачи пользуются какой то особенной фишкой?
Код AS3:
for (var i4:int = 1; i4 <=(KolichestvoVeshei); i4++) {
//выводим картинки вещей с интервалом по 50 пикселей по оси X
Personag1Veshi["kartinkaVeshi"][i4].x=i4*50;
//выводим картинки на уровне 500 пикселей по оси Y
Personag1Veshi["kartinkaVeshi"][i4].y=500;
//Добавляем вещь в список отображения
addChild(Personag1Veshi["kartinkaVeshi"][i4]);
//Каждая выведенная на экран картинка вещи может быть перетащена мышкой
//Для этого на каждую вещь персонажа вешаем слушатель
Personag1Veshi["kartinkaVeshi"][i4].addEventListener(MouseEvent.MOUSE_DOWN, PeretaskivaemVeshStart);
Personag1Veshi["kartinkaVeshi"][i4].addEventListener(MouseEvent.MOUSE_UP, PeretaskivaemVeshStop);
//Функции слушателей Вещей так НЕ РАБОТАЮТ
//TypeError: Error #1006: value не является функцией.
function PeretaskivaemVeshStart(event:MouseEvent):void {
trace("вещь тащим");
Personag1Veshi["kartinkaVeshi"][i4].startDrag();
}
function PeretaskivaemVeshStop(event:MouseEvent):void {
trace("вещь отпустили");
Personag1Veshi["kartinkaVeshi"][i4].stopDrag();
}
}