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

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

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

Регистрация: Feb 2008
Сообщений: 7
По умолчанию не работает функция removeMovieClip

Добрый день! уже второй день пытаюсь "заставить" флеш удалить мувики,созданные при помощи attachMovie, но они по-прежнему на своих местах...
Здесь они создаются:
Код:
main_mc=_root.createEmptyMovieClip("menu_mc", 0);
 
function create_menu(menu_xml) {	
	var mc;
	var i = 0;
	var nod = menu_xml[i];	
	while (nod) {
		i++;
		nod = menu_xml[i];
		mc = main_mc.attachMovie(nod.attributes.klass, "m"+i+"_mc", i);
		nod.attributes.mc = mc;
		mc.i = i; 
	}
};
а здесь я пытаюсь их удалить-чтобы их не было на экране:
Код:
function clear_window (my_xml){	
	var node=my_xml.firstChild;
	while(node){
	for (l=0;node.childNodes[l];l++){
		  removeMovieClip(node.childNodes[l].attributes.mc);
	}
		 node=node.nextNode();
	}
}
трейсом проверяю ссылки на клипы-вроде бы все они прописаны в соответствующем атрибуте узла xml, но тем не менее они не удаляются, в чем может быть ошибка?

Старый 28.03.2008, 12:16
Obi вне форума Посмотреть профиль Отправить личное сообщение для Obi Найти все сообщения от Obi
  № 2  
Ответить с цитированием
Obi
 
Аватар для Obi

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
Код:
main_mc=_root.createEmptyMovieClip("menu_mc", 0);
var mcArray:Array = new Array(); 
function create_menu(menu_xml):Void {	
	var mc;
	var i = 0;
	var nod = menu_xml[i];	
	while (nod) {
		i++;
		nod = menu_xml[i];
		mc = main_mc.attachMovie(nod.attributes.klass, "m"+i+"_mc", i);
                mcArray.push(mc);
		mc.i = i; 
	}
};


function clear_window ():Void{	
	for(var i:Number = 0; i < mcArray.length; i++) {
             removeMovieClip(mcArray[i]);
             mcArray.splice(i, 1)
        }
}


Последний раз редактировалось Obi; 28.03.2008 в 12:22.
Старый 28.03.2008, 12:19
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 3  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
node.childNodes[l].attributes.mc - это строковое значение, а не ссылка на клип.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 28.03.2008, 23:42
GalyaK вне форума Посмотреть профиль Отправить личное сообщение для GalyaK Найти все сообщения от GalyaK
  № 4  
Ответить с цитированием
GalyaK
 
Аватар для GalyaK

Регистрация: Feb 2008
Сообщений: 7
Цитата:
Сообщение от iNils
node.childNodes[l].attributes.mc - это строковое значение, а не ссылка на клип.
а как же в таком случае получить или сохранить ссылку на клип? ведь свойства _target и name тоже не катят

2 Obi: спасибо, но вариант с массивом тоже не работает

Старый 28.03.2008, 23:48
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 5  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
mc - у Вас и была ссылка, всё правильно, но Вы же объвили её в пределах функции, т.е. она Локальная. Маша не видит Сашу, бо они в разных городах.
Так надо удалять:
Код:
removeMovieClip(mc);
Obi предложил удалять с помощью массива, который набит ссылками на мувики. Массив виден из любой функции, так что - тут нет проблем.
__________________
john

Старый 29.03.2008, 00:08
GalyaK вне форума Посмотреть профиль Отправить личное сообщение для GalyaK Найти все сообщения от GalyaK
  № 6  
Ответить с цитированием
GalyaK
 
Аватар для GalyaK

Регистрация: Feb 2008
Сообщений: 7
да-да,спасибо, Molecula, я уже поняла, что массив набит ссылками, вот только мой flash mx этого не догнал: в массиве удаляет сами элементы функцией split как-то криво: перескакивает через некоторые и идут они там не по порядку. а клипы как висели, так и висят-они почему-то не хотят удаляться. ладно, буду тестить снова и снова, спасибо за помощь

Старый 29.03.2008, 00:14
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 7  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Причем тут split ?.. эти вещи касаются массивов, а не мувиклипов.
Код:
removeMovieClip(mcArray[i])
Удалит тот мувиклип, на который ссылается элемент массива.
__________________
john

Старый 02.04.2008, 12:51
GalyaK вне форума Посмотреть профиль Отправить личное сообщение для GalyaK Найти все сообщения от GalyaK
  № 8  
Ответить с цитированием
GalyaK
 
Аватар для GalyaK

Регистрация: Feb 2008
Сообщений: 7
и действительно,причем тут split, когда это вовсе даже и splice) но в коде у меня правильно написано. я про то что ссылки на мувиклипы из массива не удаляются.
и
Код:
removeMovieClip(mcArray[i])
не удаляет нужный мувиклип

Старый 02.04.2008, 13:18
crc вне форума Посмотреть профиль Отправить личное сообщение для crc Найти все сообщения от crc
  № 9  
Ответить с цитированием
crc
[+4 08.04.08]
 
Аватар для crc

Регистрация: Jan 2008
Адрес: Вильнюс
Сообщений: 91
Отправить сообщение для crc с помощью ICQ
Код:
removeMovieClip(main_mc["m"+ i +"_mc"]);

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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