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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Общие вопросы

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

Регистрация: May 2004
Адрес: Днепропетровск
Сообщений: 36
Cool Предзагрузка множества клипов. Или помогите разобраться в том что я написал.

Люди помогите разобраться в том что я написал(некоторые участки писал не я - мне помогли),
но смысл такой я загружаю в клипы контейнеры Jpeg-и(клип контейнер находится в
родительском клипе-кнопке(MovieClip как кнопка))
Так как Jpeg большого размера я хочу сделать для них прелоадер. Но почему-то все это не работает
функция Load_clips сразу выдает $jpeg_loaded == true и соответствующая функция открывает(_visible = true) "пустышки". Кстати, если есть идея как засандалить клипы-кнопки в отдельные _layerN - весь во внимании

Код:
//
//Функция проверяет загружены ли картинки,
//а после загрузки открывает их и задает величину изображения
function load_clips() {
interval = setInterval(this, 100);
	$b_total = _level0.getBytesTotal();
	$b_loaded = _level0.getBytesLoaded();
	$cent = Math.round($b_loaded*100/$b_total);
	if ($cent == 100) {
		_global.$jpeg_loaded = true;
		clearInterval(interval);
	} else {
		_global.$jpeg_loaded = false;
	}
}

//
//Функция устанавливает стандартные размеры картинок,
//а после загрузки открывает их и задает величину изображения
function set_clip_params($path_to_loader,$jpeg_loaded, $clip_selected, $img_width, $img_height) {
	interval = setInterval(this,1000,$path_to_load_screen,$jpeg_loaded,$clip_selected,$img_width,$img_height);
	if ($jpeg_loaded == true) {
			clearInterval(interval);
			$path_to_loader.removeMovieClip();
			for ($i=0; $i<$clip_selected.length; $i++) {
				_level0["clip"+$i]._visible = true;
				_level0["clip"+$i].clip_jpeg._width = $img_width;
				_level0["clip"+$i].clip_jpeg._height = $img_height;
				_level0["clip"+$i].onRollOver = function() {
					this.clip_jpeg._alpha = 30;
				};
				_level0["clip"+$i].onRollOut = function() {
					this.clip_jpeg._alpha = 100;
					this.clip_txt.gotoAndPlay("just created");
				};
				_level0["clip"+$i].onPress = function() {
					nam = numbFromString(this._name);
					getURL($xml_array[$clip_selected[nam]]["url"]);
				};
				function numbFromString(string) {
					var result = "";
					for (var i = 0; i<=string.length; i++) {
						if (Number(string.charAt(i)).toString() != "NaN") {
							result += string.charAt(i);
						}
					}
					return Number(result);
				}
			}
		}
}
А ВОТ ТАК Я ВЫЗВАЛ ЭТИ ФУНКЦИИ:

Код:
//Проверяем загрузились ли jpeg
load_clips();

//
//После загрузки клипов переменная _global.jpeg_loaded == true
//если да - открываем их  и задаем им все стандартные параметры
set_clip_params(_root.load_screen,_global.$jpeg_loaded,_global.$clip_selected,_global.$img_width,_global.$img_height)

Старый 21.08.2004, 15:30
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 2  
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
как минимум setInterval() в теле функции не сработает, у тебя ещё ф-ция не определена, а ты уже на таймер поставить пытаешься:
interval = setInterval(this , 100);
надо уже после определения ф-ции:
interval = setInterval(load_clips , 100);

Старый 22.08.2004, 18:29
AStrike вне форума Посмотреть профиль Отправить личное сообщение для AStrike Посетить домашнюю страницу AStrike Найти все сообщения от AStrike
  № 3  
AStrike

Регистрация: May 2004
Адрес: Днепропетровск
Сообщений: 36
По умолчанию В принципе я понял

Я понял.
А как выйти из такого положения, мне просто до зарезу нужно сделать предзагрузчик клипов, может покатит вариант
function some_func() {
setInterval(this.func_inside,500, $loaded);
function func_inside(){
if( loaded = true) {trace("OK");} else trace("shit");
}

}

Но никак не получается сделать прелоадер для тех клипов, которые подгружаются с помощью loadMovie

Старый 22.08.2004, 20:38
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 4  
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
По умолчанию Re: В принципе я понял

Цитата:
Оригинал написал(а) AStrike
никак не получается сделать прелоадер для тех клипов, которые подгружаются с помощью loadMovie
вобщем стал сейчас разбираться, выходит, что никак нормально предзагрузчик для клипов, подгружаемых при помощи loadMovie не сделать, там надо извращаться. Событие movieClip.onLoad работает долько для инстансов и т.д.

чтобы нормально процесс загрузки внешних клипов отслеживать надо пользовать класс MovieClipLoader.
я тут пример накидал - вроде моментокончания загрузки отслеживается, но когда пытаюсь загруженным клипам ширину или высоту поменять, они исчезают (остальные параметры вроде видимости и координат меняются нормально). В данный момент некогда с этой засадой разбираться - глянь сам, ок? Ну или пусть кто-нить другой глянет чего я там ступил.
исходник прилагается

зы. да, кстати там с таким же успехом можно жпеги грузить вместо swf-ок.
Вложения
Тип файла: zip loader.zip (16.2 Кб, 272 просмотров)


Последний раз редактировалось FreeLander; 22.08.2004 в 20:40.
Создать новую тему   Часовой пояс GMT +4, время: 09:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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