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

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

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

Регистрация: Apr 2002
Адрес: Ukraine, Kiev
Сообщений: 504
Отправить сообщение для JeeP с помощью ICQ
По умолчанию Предзагрузка нескольких картинок с пом. MovieClipLoader ?

есть 1 объект MovieClipLoader
с помощью которого я загружаю картинки.

есть, к примеру, 2 мувиклипа(в реале это динамическое число) в которые я гружу картинки с помощью имеющегося MovieClipLoader`а(использую только один).

в MovieClipLoader я использую listener.onLoadProgress(и только его) для отображения количества загруженых байт для каждой картинки.


вопрос - как мне показать суммарное количество загруженных байт для двух картинок?

пример кода следующий:
Код:
var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
var image:MovieClip = container.createEmptyMovieClip("image", container.getNextHighestDepth());
var image2:MovieClip = container.createEmptyMovieClip("image2", container.getNextHighestDepth());

var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number, num:Number):Void {
	trace(target + ".onLoadProgress with " + bytesLoaded + " bytes of " + bytesTotal); 
}
mcLoader.addListener(listener);

mcLoader.loadClip("http://www.site.kiev.ua/img1.jpg", image);
mcLoader.loadClip("http://www.site.kiev.ua/img2.jpg", image2);
но в примере показывается кол-во загруженных байт отдельно для каждой картинки, а необходимо показывать суммарное значение.
__________________
+++

Старый 19.05.2006, 20:53
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™
использовать на каждую загрузку по MovieClipLoader'у
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 19.05.2006, 21:01
Usnul вне форума Посмотреть профиль Отправить личное сообщение для Usnul Посетить домашнюю страницу Usnul Найти все сообщения от Usnul
  № 3  
Ответить с цитированием
Usnul
 
Аватар для Usnul

Регистрация: Mar 2001
Адрес: во сне
Сообщений: 2,701
Отправить сообщение для Usnul с помощью ICQ
а еще читать мануал, ага =)
__________________
I'm only happy when it rains.
Waka Laka

Старый 19.05.2006, 21:07
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™
вообще не так давно писал класс, не тестил толком, было сделанно с расчетом на Flash Player 6 так что там нету MovieClipLoader

но грузит много всякой дряни.

Код:
import mx.events.EventDispatcher;
import mx.utils.Delegate;
/**
 * Enter description here
 * 
 * @author  Nirth
 * @version 1.0
 * @since   
 */
 
 //Event dispatches with interval while loading in progress
 [Event("progress")]
 //Event dispatches when data is loaded
 [Event("complete")]
class com.onorange.lib.utils.MultiLoader {
	//initialize event dispatcher
	private static var __initED = EventDispatcher.initialize(MultiLoader.prototype);
	public var dispatchEvent:Function;
	public var addEventListener:Function;
	public var removeEventListener:Function;
	//
	private var __objectsToLoad:Array;
	private var __pathes:Array;
	private var __intervalID:Number;
	private var __interval:Number;
	//
	/**
	 * Constructor, creates instance of MultiLoader 
	 * @usage   				import com.onorange.lib.utils.MultiLoader
	 * 							var loader:MultiLoader = new MultiLoader(50,[_root.mc1,_root.mc1.mc2,_root.mc3],["mc1.swf","mc2.swf","mc3.swf"]);
	 * 							function progress(evt:Object):Void {
									trace(evt.loaded+"/"+evt.total);
								}
								loader.addEventListener("progress",onProgress);
								
	 * @param   interval  		Number, interval in which <code>progress</code> event will be dispatched
	 * @param   loadArray 		Array, of objects, in which you want to load media
	 * @param   path      		Array, of pathes to media
	 * @return  				Nothing
	 */
	public function MultiLoader(interval:Number, loadArray:Array, path:Array) {
		//assign variables values
		__interval = interval;
		__objectsToLoad = loadArray;
		__pathes = path;
		//start loading
		__initLoading(loadArray, path);
		//start interval
		__intervalID = setInterval(Delegate.create(this, __update), __interval);
	}
	
	//private methods
	private function __update():Void {
		var t:Number = 0;
		var l:Number = 0;
		for (var i:Number = 0; i<__objectsToLoad.length; i++) {
			t += __objectsToLoad[i].getBytesTotal();
			l += __objectsToLoad[i].getBytesLoaded();
		}
		var p:Number = Math.round(l/t*100);
		dispatchEvent({type:'progress',loaded:l,total:t,percent:p});
		if (p == 100) {
			dispatchEvent({type:'complete',loaded:l});
			clearInterval(__intervalID);
		}
	}
	private function __initLoading(objects:Array, path:Array):Void {
		for (var i:Number = 0; i<objects.length; i++) {
			var method:String = (objects[i] instanceof MovieClip) ? "loadMovie" : "loadSound";
			objects[i][method](path[i]);
		}
	}
}
о найденых багах писать сюды
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 19.05.2006, 21:08
JeeP вне форума Посмотреть профиль Отправить личное сообщение для JeeP Посетить домашнюю страницу JeeP Найти все сообщения от JeeP
  № 5  
Ответить с цитированием
JeeP
 
Аватар для JeeP

Регистрация: Apr 2002
Адрес: Ukraine, Kiev
Сообщений: 504
Отправить сообщение для JeeP с помощью ICQ
ну а используя только один MovieClipLoader, такое возможно? чета не могу допетрать.

Цитата:
Сообщение от Usnul
а еще читать мануал, ага =)
ткни меня носом, будь добр.
__________________
+++

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

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

Старый 19.05.2006, 21:28
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Nirth, класс AS2 для Flash Player 6? Абсурд =)

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

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
Цитата:
Сообщение от Nirth
Слушай...MovieClipLoader в любой отрезок времени, грузит максимум один мувик, это значит что он не может посчитать два мувика.
Кхм, а потестить слабо? как показала практика не 1, а 2 %))), эт раз,

во вторых можно типа надругаться над MovieClipLoader все мувики которые грузишь складываеш в массив, а потом на
на сетИнтервал (а по мне лучше на онЕнтерФрейм) повесить обработчик который будет носиться по этому массиву и считать сумму всех загруженых и полных байт, а потом возвращать их отношение...%)

Старый 19.05.2006, 22:06
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Цитата:
Сообщение от __etc
Nirth, класс AS2 для Flash Player 6? Абсурд =)
Ни когда не замечал, что выбирая для публикации версию 6, есть возможность указать AS2? А для 5-ки нет.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 19.05.2006, 22:07
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 10  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
Цитата:
Сообщение от __etc
Nirth, класс AS2 для Flash Player 6? Абсурд =)
а в чем абсурд? %)

Цитата:
Сообщение от help
MovieClipLoader class
Availability
Flash Player 7.
Цитата:
Сообщение от help
class
Availability
Flash Player 6.
Код:
//****************************************************************************
//Copyright (C) 2003-2004 Macromedia, Inc. All Rights Reserved.
//The following is Sample Code and is subject to all restrictions on
//such code as contained in the End User License Agreement accompanying
//this product.
//****************************************************************************
class mx.utils.Delegate extends Object
{..................................

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

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

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


 


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


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