![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Sep 2010
Адрес: Москва
Сообщений: 24
|
Здравствуйте.
Появилась задача: есть объект XML var outPutXML:XML = new XML( <root> <pathGrid> </pathGrid> <boards> </boards> <image path=""/> </root> ); function addPathPoint (e:MouseEvent):void { var point:CasaMovieClip = new CasaMovieClip(); outPutXML.pathGrid.appendChild (<pointGrid id={Main.pointsCounter} x={new int(pathGridPano.mouseX)} y={new int(pathGridPano.mouseY)} />); point.addEventListener (MouseEvent.MOUSE_DOWN,movePoint); point.addEventListener (MouseEvent.MOUSE_UP,editGridPoint); point.graphics.beginFill (0xff0000); point.graphics.drawCircle (0,0,5); point.graphics.endFill (); point.x = pathGridPano.mouseX; point.y = pathGridPano.mouseY; point.name = new String(Main.pointsCounter); pathGridPano.addChildAt (point,0); Main.pointsCounter++; } <pathGrid> <pointGrid id="0" x="262" y="169"/> <pointGrid id="1" x="304" y="171"/> <pointGrid id="2" x="379" y="159"/> <pointGrid id="3" x="294" y="107"/> </pathGrid> Если точнее, у меня есть метод который должен этим заниматься, даже 2. function movePoint (e:MouseEvent) { if (e.ctrlKey) { /* код удаляющий узел из объекта outPutXML - с ним как раз проблема */ e.target.destroy (); } else { e.target.startDrag (); } } function editGridPoint (e:MouseEvent) { e.target.stopDrag (); /* код изменяющий атрибуты x и y у редактируемого узла - с ним тоже проблемы */ } |
|
|||||
|
сколько элементов в pathGrid?
|
|
|||||
|
Регистрация: Sep 2010
Адрес: Москва
Сообщений: 24
|
насколько я знаю предикат возвращает объект XMLList, и если я правильно понимаю (но надеюсь что ошибаюсь) это не ссылка а новый объект XMLList.
Или я все же ошибаюсь? так как первое что я попробовал это Цитата:
то вернется верное значение атрибута id Добавлено через 32 секунды произвольное количество |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Sep 2010
Адрес: Москва
Сообщений: 24
|
Цитата:
правда почему то последний элемент она отказывается удалять. Ну то есть если сделать 4 элемента в узле pathGrid то удалить из них можно любые 3, один все равно останется, но это я уже покопаю у себя код, скорее всего где то что то закосячил. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
var xml:XML = <pathGrid> <pointGrid id="0" x="262" y="169"/> <pointGrid id="1" x="304" y="171"/> <pointGrid id="2" x="379" y="159"/> <pointGrid id="3" x="294" y="107"/> </pathGrid> delete xml.elements().(@id == "3")[0]; delete xml.elements().(@id == "2")[0]; delete xml.elements().(@id == "1")[0]; delete xml.elements().(@id == "0")[0]; trace(xml.toXMLString()); // <pathGrid/> Оператор delete удаляет узел. Он не может удалить список. Это и есть Error #1119. В свою очередь outPutXML.pathGrid.pointGrid.(@id == e.target.name) возвращает именно XMLList. XMLList это индексированный список узлов, который, подобно массиву, дает доступ к этим узлам по индексу. Если доподлинно известно, что id уникален (а иначе что это за id, да?)), то узел в этом списке всегда будет один, и иметь индекс [0]. И вот узел мы уже можем безболезненно удалить.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Sep 2010
Адрес: Москва
Сообщений: 24
|
Цитата:
Цитата:
но если сделать как надо в данном случае то есть то как раз и получаю то что мне и нужно - то что pathGrid у меня пустой. Так что все работает, просто я довольно невнимателен бываю ![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ага. И просто просьба на будущее - не надо цитировать предыдущее сообщение, оно итак перед глазами. Цитаты нужны для конкретизации фразы, которую Вы комментируете, или при ответе на старое сообщение, которое уже на другой странице.
Добро пожаловать на наш форум)) Удачи!
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Sep 2010
Адрес: Москва
Сообщений: 24
|
Цитата:
И чтобы никто не решил что у меня последняя стадия шизофрении , я процитировал ваше сообщение в этот раз. Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 09:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|