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

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

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

Регистрация: Jun 2006
Сообщений: 56
Question непослушный duplicateMovieClip

Ситуация такая:
Есть мувик CatalogPreview, а в нем smallbox. Есть функция загрузки каталога картинок, которая для выбранного списка файлов с картинками выполняет следующие действия:
  1. чистит CatalogPreview от предыдущей загрузки;
  2. первый элемент списка загружает в smallbox;
  3. для последующих элементов делает smallbox.duplicateMovieClip и загружает изображение в созданную копию smallbox.
Тестирую на трех каталогах: каталог№1-3 картинки,каталог№2-1 картинка,каталог№3-4 картинки.
Если начать с каталога№3, то все работает как надо: сначала появляются все 4 картинки, а затем количество smallbox'ов меняется в зависимости от выбранного каталога. Но если начать, например, с
каталога№2, то сначала появится одна картинка, а затем из выбранного каталога будет вместо этой загружаться только первый элемент, т.е. smallbox'ы не хотят дублироваться в большем количестве. В чем загвоздка?
Код:
//****   ф-ция загрузки нового каталога *****
function LoadCatalog(catName){
	ind=1;
	sumLoad = 0;
	sumTotal = 0;
	for (i=0;i<ImageList.length;i++){
		if (Imagelist[i].catalog==catName){
			LoadPreview(Imagelist[i].file);
		}
	}
	_root.CatalogPreview.onEnterFrame = function() {
		sumLoad = this.smallbox.getBytesLoaded();
		sumTotal = this.smallbox.getBytesTotal();
		for (j=2;j<ind;j++){
			sumLoad += this["smallbox"+j].getBytesLoaded();
			sumTotal += this["smallbox"+j].getBytesTotal();
		}
		if (sumTotal>0 && sumLoad>=sumTotal){
			delete this.onEnterFrame;
			ImageSmallGo(this.smallbox);
			for (j=2;j<ind;j++){
				ImageSmallGo(this["smallbox"+j]);
			}
		}
	};
}
//****   ф-ция загрузки Preview   ***************************
function LoadPreview(im){
	bx = -139.1;
	by = -30.7;
	trace("ind="+ind);
	if (ind>1){
_root.CatalogPreview.smallbox.duplicateMovieClip("smallbox"+ind,ind,{_x:bx+60*(ind-1)-25,_y:by-25});
		trace("create "+"smallbox"+ind+", x:"+_root.CatalogPreview["smallbox"+ind]._x);
		_root.CatalogPreview["smallbox"+ind].loadMovie(im);
	}
	else{
		with (_root.CatalogPreview.smallbox){
			_x = bx - 25;
			_y = by - 25;
			loadMovie(im);
		}
	}
	ind++;
}
//*****   ф-ция очистки Preview   ****************************
function ClearPreview(){
	delete _root.CatalogPreview.smallbox.onEnterFrame;
	_root.CatalogPreview.smallbox.unload();
	for (j=2;j<ind;j++){
		trace("remove "+"smallbox"+j);
		delete root.CatalogPreview["smallbox"+j].onEnterFrame;
		_root.CatalogPreview["smallbox"+j].unloadMovie();
	}
}

//*************************************************
function changecatalog(){
	if (first_click){
		first_click = false;
		_root.currentcatalog.removeItemAt(0);
	}
	else 
	ClearPreview();
	LoadCatalog(_root.currentcatalog.getSelectedItem().label);
	
}

Старый 07.06.2006, 18:48
Whim вне форума Посмотреть профиль Отправить личное сообщение для Whim Найти все сообщения от Whim
  № 2  
Ответить с цитированием
Whim

Регистрация: Jun 2006
Сообщений: 56
Отвечаю на свой вопрос сама: оказывается duplicateMovieClip не дружит с мувиками, к которым применялся loadMovie(), и unload() не помогает.
В моем случае, видно, придется сразу надублировать "заготовок" в количестве, равном количеству картинок в самом большом каталоге.
Может кто-нибудь все-таки знает лекарство против этого недостатка duplicateMovieClip???

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

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

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


 


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


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