Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 21.01.2011, 23:16
Mulin вне форума Посмотреть профиль Отправить личное сообщение для Mulin Найти все сообщения от Mulin
  № 1  
Ответить с цитированием
Mulin
 
Аватар для Mulin

Регистрация: Aug 2010
Сообщений: 107
По умолчанию Перезагрузка цикла XML

Мувкилипы циклом загружаются из библиотеки. Цикл формируется узлами XML. Количество узлов = количеству мувиклипов. На каждом мувиклипе есть кнопка удалающая узел из XML, и перегружающая цикл. Трейс говорит что количество узлов после операции уменьшилось, но количество мувиклипов остается прежним. Скажем, если у меня 10 узлов, то и 10 мувиклипов с содержимым узлов сформируется. Если нажать на кнопку удалить в 7 мувиклипах, то трейс myXml.firstChild.childNodes.length покажет 3, но количество мувиклипов не уменьшится. Цикл запускается заново каждый раз после нажатия кнопки "удалить. "Причем судя по всему цикл действительно обновляется, ибо инфа на мувиклипах меняется в соответствии с уделением. Как мне кажется все дело в том, что старый цикл остается. Есть ли какой нить способ очистить цикл? Причем хоть я и удаляю узел из dataXML, но если трейсить оригинальный XMLfile, то все равно количество узлов покажет уменьшенное, что странно

Код AS1/AS2:
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();
Добавлено через 55 минут
И вдогонку еще один вопрос. Измененный таким образом XML? я отправляю php скрипту, который его перезаписывает. но проблема вся в том, что флаг XMLfile.ignoreWhite = true отправляет файл без табуляции, сплошной строкой, что криво и не удобно. Но если убрать флаг, то разумеется xml не распарсивается. Вот и что теперь делать? Пробывал создавать переменную которой присваивал копию этого xml и этой переменной ставил флаг XMLfile.ignoreWhite = false, не спасало, в таком случае не распарсивало XML/


Последний раз редактировалось Mulin; 21.01.2011 в 23:24.
Создать новую тему   Часовой пояс GMT +4, время: 18:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:53.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.