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

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

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

Регистрация: Oct 2005
Сообщений: 28
По умолчанию MovieClipLoader - проблема

у меня проблема
есть karta.swf = 200 Кб
чтобы сделать к нему предзагрузчик я использую MovieClipLoader

Код:
// Создаем объект MovieClipLoader
var mcl:MovieClipLoader = new MovieClipLoader();
// Создаем объект-приемник
var mclListener:Object = new Object();
// Регистрируем mclListener на получение сообщений от mcl
mcl.addListener(mclListener);
// Начальный масштаб полосы состояния загрузки
preloader.statusBar._xscale = 1;
// инициируем загрузку документа в клип holder
mcl.loadClip("karta.swf", 1);
mclListener.onLoadStart = function(target) {
	target.onEnterFrame = function() {
		// Локальный объект с информацией о состоянии загрузки
		var progress:Object = mcl.getProgress(this);
		var loadStatus:Number = Math.round(progress.bytesLoaded / progress.bytesTotal * 100);
		// Если информация о загруженном объеме поступила...
		if (progress.bytesLoaded) {
			// Изменяем ширину полосы состояния
			this._parent.preloader.statusBar._xscale = loadStatus;
			// Выводим процент загрузки
			this._parent.preloader.statusTxt.text = loadStatus + "%";
			// Выводим данные о загрузке
			this._parent.preloader.infoTxt.text = "Загружено " + Math.round(progress.bytesLoaded / 1024) + "Кб из " + Math.round(progress.bytesTotal / 1024);
		}
		// Если загрузка окончена...
		if (loadStatus == 100) {
			// Выгружаем содержимое предзагрузчика и заканчиваем его работу
			mcl.unloadClip(preloader);
			delete this.onEnterFrame;
		}
	};
};
проценты не идут, а карта подгружается

наверно ошибка в этой строчке:
mcl.loadClip("karta.swf", 1);

Старый 19.12.2005, 20:08
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 2  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
используй событие onProgress класса MovieClipLoader
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 19.12.2005, 20:56
alikjan вне форума Посмотреть профиль Отправить личное сообщение для alikjan Найти все сообщения от alikjan
  № 3  
Ответить с цитированием
alikjan

Регистрация: Oct 2005
Сообщений: 28
Цитата:
Сообщение от Nirth
используй событие onProgress класса MovieClipLoader
СПАСИБО!!!

только ты описался: onProgress --> onLoadProgress

Если кому интересно, то вот исходник:

Код:
// Создаем объект MovieClipLoader
var mcl:MovieClipLoader = new MovieClipLoader();
// Создаем объект-приемник
var mclListener:Object = new Object();
// Регистрируем mclListener на получение сообщений от mcl
mcl.addListener(mclListener);
// Начальный масштаб полосы состояния загрузки
preloader.statusBar._xscale = 1;
// инициируем загрузку документа в клип holder
mcl.loadClip("karta75.swf", 1);
mclListener.onLoadProgress = function(target, loadedBytes, totalBytes) {

	var loadStatus:Number = Math.round(loadedBytes / totalBytes * 100);
	preloader.statusBar._xscale = loadStatus;
	preloader.statusTxt.text = loadStatus + "%";
	preloader.infoTxt.text = "Загружено " + Math.round(loadedBytes / 1024) + "Кб из " + Math.round(totalBytes / 1024);

	// Если загрузка окончена...
	if (loadStatus == 100) {
		// Выгружаем содержимое предзагрузчика и заканчиваем его работу
		mcl.unloadClip(preloader);
		delete this.onEnterFrame;
	}
};
Странно, но у меня мувик загружаемый весит 210 Кб а написано 400 ??

Старый 19.12.2005, 22:08
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 4  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Извиняй, забыл, а насчет размера, это потому что ты используешь сжатие
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 20.12.2005, 02:08
MOHCTEP вне форума Посмотреть профиль Отправить личное сообщение для MOHCTEP Найти все сообщения от MOHCTEP
  № 5  
Ответить с цитированием
MOHCTEP

Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
Опсь! Nirth в догонку ответь пожалуйста. Почему у меня эта штука не пашет?
Код:

var my_mcl:MovieClipLoader=new MovieClipLoader();
var mcl_list=new Object();
my_mcl.addListener(mcl_list);
//Сорри. Забыл вставить сюда это для полноты. Но в исходнике то эти объявления имеются.
mcl_list.onLoadStart=function(mc){
	loader.txt="Загрузка "+imgCurrent+" кадра";
	loader.bar._xscale=0;
	loader.procent='0 %';
	var lp=my_mcl.getProgress(mc);
	trace('LoadStart\t'+mc+'\n*********');
	trace('Bytes Total='+lp.bytesTotal+'\tBytes Loaded='+lp.bytesLoaded);
	mcl_timer=setInterval(mcl_tracer,50,mc);// Приходится извращаться с тимером
}
//"onLoadStart" Трейсится, но все по 0. Хотя в доках вроде сказано, что уже отсюда можно получить размер файла и первой порции загрузки

mcl_list.onLoadProgress=function(mc, loadedBytes, totalBytes){//Do not working!
	var lp=my_mcl.getProgress(mc);
	trace('LoadProgress\nTotal='+totalBytes+'\tLoaded='+loadedBytes);
}
//А вот этого трейса у меня нету! :(  ПОЧЕМУ????

mcl_list.onLoadInit=function(mc){
	var lp=my_mcl.getProgress(mc);
	loader.bar._xscale=150;
	loader.procent='100 %';
	//trace('LoadInit'+mc+'\nTotal='+lp.bytesTotal+'\tLoaded='+lp.bytesLoaded);
	clearInterval(mcl_timer);
	//create();
}
//onLoadInit трейсится нормально

function mcl_tracer(mc,lp){
	var lp=my_mcl.getProgress(mc);
	//trace('\t\tBytes\nTotal='+lp.bytesTotal+'\tLoaded='+lp.bytesLoaded);
	loader.bar._xscale=(lp.bytesLoaded/lp.bytesTotal)*150;
	loader.procent=Math.floor((lp.bytesLoaded/lp.bytesTotal)*100)+' %';
	updateAfterEvent();
}
Не пойму: чего не так сделал? Почему не отрабатывает "onLoadProgress"?


Последний раз редактировалось MOHCTEP; 21.12.2005 в 02:16.
Старый 20.12.2005, 16:45
Stone вне форума Посмотреть профиль Отправить личное сообщение для Stone Найти все сообщения от Stone
  № 6  
Ответить с цитированием
Stone
 
Аватар для Stone

Регистрация: May 2001
Адрес: Москва
Сообщений: 670
onLoadProgress в 7-ке вроде не работает.

Старый 20.12.2005, 19:38
MOHCTEP вне форума Посмотреть профиль Отправить личное сообщение для MOHCTEP Найти все сообщения от MOHCTEP
  № 7  
Ответить с цитированием
MOHCTEP

Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
Цитата:
Сообщение от Stone
onLoadProgress в 7-ке вроде не работает.
Ну! И че это за класс такой? Половина работает, половина нет?

Старый 20.12.2005, 22:07
KUZEN вне форума Посмотреть профиль Отправить личное сообщение для KUZEN Посетить домашнюю страницу KUZEN Найти все сообщения от KUZEN
  № 8  
Ответить с цитированием
KUZEN
Ветеран форума
 
Аватар для KUZEN

Регистрация: Jun 2005
Адрес: MOSCOW
Сообщений: 6,852
Отправить сообщение для KUZEN с помощью ICQ Отправить сообщение для KUZEN с помощью Yahoo Отправить сообщение для KUZEN с помощью Skype™
Цитата:
Сообщение от MOHCTEP
Ну! И че это за класс такой? Половина работает, половина нет?
Классами нужно ещё и пользоваться уметь ...
__________________
BestMasterиZация

Старый 20.12.2005, 23:00
ffffff вне форума Посмотреть профиль Отправить личное сообщение для ffffff Посетить домашнюю страницу ffffff Найти все сообщения от ffffff
  № 9  
Ответить с цитированием
ffffff
 
Аватар для ffffff

Регистрация: Aug 2005
Адрес: Москва
Сообщений: 825
Отправить сообщение для ffffff с помощью ICQ
этот класс был добавлен в 7 и полностью работоспособен.

Старый 21.12.2005, 00:48
MOHCTEP вне форума Посмотреть профиль Отправить личное сообщение для MOHCTEP Найти все сообщения от MOHCTEP
  № 10  
Ответить с цитированием
MOHCTEP

Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
Цитата:
Сообщение от KUZEN
Классами нужно ещё и пользоваться уметь ...
Согласен! Информации маловато. Объясни пожалуйста, в чем тут проблема? Код то, по сути, из хелпа взят. Таймер нормально работает, а "родной" метод даж не трейсится, стало быть - не вызывается?

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

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

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


 


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


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