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

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

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

Регистрация: Sep 2002
Сообщений: 202
По умолчанию загрузчик при использовании loadClip

Приветствую

есть ролик который загружает внутри себя еще ролики

Код AS1/AS2:
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.loadClip("clip1.swf", mcPortfolio);
сделано это для того, чтобы меняя одну сцену не менять весь ролик (flash-сайт)


есть загрузчик, который показывает сколько сайта загрузилось:

Код AS1/AS2:
var nLoading:Number = Math.ceil(100 * getBytesLoaded() / getBytesTotal());
но он к сожалению не видит, что грузится clip1.swf
т.е. показывает 100% и только через какое-то время переходит на следующий кадр

Подскажите как сделать так, чтобы загрузчик корректно показывал загрузку сайта
Где надо модифицировать код?

Старый 23.08.2009, 22:08
Kuruki вне форума Посмотреть профиль Отправить личное сообщение для Kuruki Найти все сообщения от Kuruki
  № 2  
Ответить с цитированием
Kuruki

Регистрация: Jan 2008
Сообщений: 669
Покажите полный код загрузчика

Старый 23.08.2009, 22:26
Zhihar вне форума Посмотреть профиль Отправить личное сообщение для Zhihar Найти все сообщения от Zhihar
  № 3  
Ответить с цитированием
Zhihar

Регистрация: Sep 2002
Сообщений: 202
Код AS1/AS2:
var g_nStartTime:Number = getTimer();
var g_pElementsParameters:Array = Array(70);
 
var g_nLoading:Number = 0;
 
mcBranchMask1.m_nStartPos = mcBranchMask1._x;
mcBranchMask2.m_nStartPos = mcBranchMask2._x;
 
 
for (nIndex:Number = 1; nIndex < 69; ++ nIndex)
{
	g_pElementsParameters[nIndex] = 1;
	this["mcElement" + nIndex]._visible = false;
}
 
mcButterfly._visible = false;
 
this.onEnterFrame = function()
{	
	// вычислить максимальный номер видимого элемента
	var nMaxIndex:Number = Math.ceil(69 * g_nLoading / 100);
 
	// отрисовать видимые элементы
	for (nIndex:Number = 1; nIndex < nMaxIndex; ++ nIndex)
	{
		this["mcElement" + nIndex]._xscale = g_pElementsParameters[nIndex];
		this["mcElement" + nIndex]._yscale = g_pElementsParameters[nIndex];
 
		if (g_pElementsParameters[nIndex] < 100)
			g_pElementsParameters[nIndex] *= 1.2;
		else
			g_pElementsParameters[nIndex] = 100;
	}
 
	// вывести процент загрузки
	txtLoading = ((Math.ceil(g_nLoading) < 10) ? ("0") : ("")) + ((g_nLoading < 100) ? (Math.ceil(g_nLoading)) : ("100")) + "%";
 
	// вычислить текущею степень загрузки сайта
	var nTimeLoading:Number = (getTimer() - g_nStartTime) / 100;
	var nFramesLoading:Number = Math.ceil(100 * getBytesLoaded() / getBytesTotal());
 
	g_nLoading = nFramesLoading;//(nTimeLoading < nFramesLoading) ? (nTimeLoading) : (nFrameLoading);
 
	if (g_nLoading >= 100)
	{
		for (nIndex:Number = 1; nIndex < nMaxIndex; ++ nIndex)
		{
			if (g_pElementsParameters[nIndex] != 100)
				return;
		}
 
		mcButterfly._visible = true;
 
		delete onEnterFrame;	
		_root.gotoAndPlay(2);
	}
 
	// отрисовать ветки
	mcBranchMask1._x = mcBranchMask1.m_nStartPos + mcBranchMask1._width * g_nLoading / 100;
	mcBranchMask2._x = mcBranchMask2.m_nStartPos + mcBranchMask2._width * g_nLoading / 100;
 
	// отрисовать элементы веток
	for (nIndex:Number = 1; nIndex < nMaxIndex; ++ nIndex)
		this["mcElement" + nIndex]._visible = true;
}

Старый 24.08.2009, 17:56
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Включите в рассчет загружаемые клипы.

Код AS1/AS2:
var loadingPool:	Object = new Object();
 
var mcLoader:		MovieClipLoader = new MovieClipLoader();
 
mcLoader.loadClip("clip1.swf", mcPortfolio);
this.loadingPool[mcPortfolio._name] = mcPortfolio;
 
mcLoader.loadClip("clip2.swf", mcAbout);
this.loadingPool[mcAbout._name] = mcAbout;
 
function getBytes(funcName:String):Number {
	var result:	Number = 0;
	var mc:		MovieClip;
	var bytes:	Number;
 
	for (var i:String in this.loadingPool) {
		mc = this.loadingPool[i];
		bytes = mc[funcName].call(mc);
		if (bytes) result += bytes;
	}
 
	result += this[funcName].call(this);
	return result;
}
 
function onEnterFrame():Void {
	var nLoading:Number = this.getBytes('getBytesLoaded') / this.getBytes('getBytesTotal');
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


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

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

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


 


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


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