osnova - объект на сцене, который содержит в себе еще объекты и передает их через event:MouseEvent (Принцип работы такой же, как и у интерактивной карты областей)
imglist - TileList, в который подгружаются картинки из XML файла после нажатия на один из объектов в osnova
Вот код (оставил комментарии в коде для того, что бы было понятней)
Код: Выделить всё
osnova.addEventListener(MouseEvent.CLICK, loadXML)function loadXML(event:MouseEvent):void { var XMLdata:XML = new XML(); var XMLLoader:URLLoader = new URLLoader(); XMLdata.ignoreWhite=true; var target:String = event.target.name + "2"; //Записывает одно имя с добавлением 2ки на конце (имя ---> имя2) XMLLoader.load(new URLRequest("ava.xml")); XMLLoader.addEventListener(Event.COMPLETE, xmlLoaded) function xmlLoaded(e:Event):void { XMLdata = new XML(e.target.data); imglist.dataProvider.removeAll(); //очищяем TileList от предыдущих картинок for (var i:int=0; i<XMLdata[event.target.name].length(); i++){ imglist.addItem({label:i, source:XMLdata[event.target.name][i].@url}); } imglist.addEventListener(Event.CHANGE, loadImgFromXml); // Добавляем слушатель к TileListfunction loadImgFromXml(event2:Event):void { // загружаем картинки из XML в TileList trace(target); // Выводит n-коллвичество имен из переменной target, если нажатий было n-раз osnova[target].x = XMLdata[event.target.name][event2.currentTarget.selectedItem.label].@x; // Тут то и возникает проблема с переменной target (грузит n-картинок)osnova[target].y = XMLdata[event.target.name][event2.currentTarget.selectedItem.label].@y; // Тут то и возникает проблема с переменной target (грузит n-картинок)osnova[target].load(new URLRequest(event2.currentTarget.selectedItem.source)); imglist.removeEventListener(Event.CHANGE, loadImgFromXml); }}
Проблема в том, что если я кликну на 1 из объектов, содержащихся в osnova, а затем выберу картинку в imglist (TileList), загрузится 1 картинка. Но в том случае, если я кликну сначала на 1 объект, а затем на 2ой и только потом выберу картинку в imglist, то загрузится 2 картинки. То есть через переменную target передается два имени вместо одного и загружается 1 картинка в два объекта.
Если не понятно, вот схема:
1.Так должно быть:
Клик на объект 1 -----> выбор картинки в imglist ----> загрузка одной картинки, которая соответствует имени объекта 1
Клик на объект 1 -----> Клик на объект 2----> выбор картинки в imglist ----> загрузка одной картинки, которая соответствует имени объекта 2 (то есть последнего объекта, на который я кликнул)
2. Как у меня сейчас (неправильно):
Клик на объект 1 -----> выбор картинки в imglist ----> загрузка одной картинки, которая соответствует имени объекта 1
Клик на объект 1 -----> Клик на объект 2----> выбор картинки в imglist ----> загрузка одной картинки ОДНОВРЕМЕННО В ДВА ОБЪЕКТА, которая соответствует имени объекта 2 (то есть последнего объекта, на который я кликнул)
Если по прежнему непонятно, скину .fla файл в ЛС. Пожалуйста помогите!
P.S. Особенно жду ответа от Alazaur, хороший он человек)