![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
Мувкилипы циклом загружаются из библиотеки. Цикл формируется узлами XML. Количество узлов = количеству мувиклипов. На каждом мувиклипе есть кнопка удалающая узел из XML, и перегружающая цикл. Трейс говорит что количество узлов после операции уменьшилось, но количество мувиклипов остается прежним. Скажем, если у меня 10 узлов, то и 10 мувиклипов с содержимым узлов сформируется. Если нажать на кнопку удалить в 7 мувиклипах, то трейс myXml.firstChild.childNodes.length покажет 3, но количество мувиклипов не уменьшится. Цикл запускается заново каждый раз после нажатия кнопки "удалить. "Причем судя по всему цикл действительно обновляется, ибо инфа на мувиклипах меняется в соответствии с уделением. Как мне кажется все дело в том, что старый цикл остается. Есть ли какой нить способ очистить цикл? Причем хоть я и удаляю узел из dataXML, но если трейсить оригинальный XMLfile, то все равно количество узлов покажет уменьшенное, что странно
var XMLfile:XML = new XML(); XMLfile.load("videos.xml"); XMLfile.ignoreWhite = true; XMLfile.onLoad = zagr; var dataXML:XML = XMLfile; function zagr() { trace(dataXML.firstChild.childNodes.length);//показывает дейсствительное количество узлов vsego = dataXML.firstChild.childNodes.length; for (var i:Number = 0; i < vsego; i++) {//цикл формирует кнопку "Удалить" full[i] = dataXML.firstChild.childNodes[i].childNodes[3].firstChild.nodeValue; var delite_btn:MovieClip = Scrol_mc.vidthumbs_mc2.attachMovie("delite_btn", "Scrol_mc" + i, i); delite_btn.ID = i; delite_btn._x = 235; delite_btn._y = i * 65 + 5; delite_btn.onRelease = function() {//функция удаляет узел с тем же ID что и кнопка dataXML.firstChild.childNodes[this.ID].removeNode(); zagr();//обновляем цикл }; //цикл формирует Мувиклип на котором расположена кнопка "Удалить" var Mediablock:MovieClip = Scrol_mc.vidthumbs_mc.attachMovie("Mediablock", "Scrol_mc" + i, i); Mediablock.ID = i; Mediablock.full_txt.text = full[i]; Mediablock.playicon_mc._visible = false; Mediablock._y = i * 65; }; } Scrol_mc.scrollInfo(); И вдогонку еще один вопрос. Измененный таким образом XML? я отправляю php скрипту, который его перезаписывает. но проблема вся в том, что флаг XMLfile.ignoreWhite = true отправляет файл без табуляции, сплошной строкой, что криво и не удобно. Но если убрать флаг, то разумеется xml не распарсивается. Вот и что теперь делать? Пробывал создавать переменную которой присваивал копию этого xml и этой переменной ставил флаг XMLfile.ignoreWhite = false, не спасало, в таком случае не распарсивало XML/ Последний раз редактировалось Mulin; 21.01.2011 в 23:24. |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Попробуйте не привязываться к хмл. То есть загрузили, распарсили и создали объект data с нужными полями, как в хмл-е было. Потом с этим объектом и работайте, у него удаляйте/меняйте поля и т.п., не трогая хмл, который загрузили.
А когда вам нужно будет сохранить — просто в цикле формируйте текстовые данные, перебирая поля у этого объекта и получая строки, как в хмл-е, со всеми табуляциями и т.п. Вот примерно так:
__________________
hauts.ru |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|