![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
есть 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);
__________________
+++ |
|
|||||
|
а еще читать мануал, ага =)
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
|
4AM Games
|
вообще не так давно писал класс, не тестил толком, было сделанно с расчетом на 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 и я стану писателем ^_^ |
|
|||||
|
ну а используя только один MovieClipLoader, такое возможно? чета не могу допетрать.
Цитата:
__________________
+++ |
|
|||||
|
4AM Games
|
Слушай...MovieClipLoader в любой отрезок времени, грузит максимум один мувик, это значит что он не может посчитать два мувика.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Nirth, класс AS2 для Flash Player 6? Абсурд =)
|
|
|||||
|
Цитата:
во вторых можно типа надругаться над MovieClipLoader все мувики которые грузишь складываеш в массив, а потом на на сетИнтервал (а по мне лучше на онЕнтерФрейм) повесить обработчик который будет носиться по этому массиву и считать сумму всех загруженых и полных байт, а потом возвращать их отношение...%) |
|
|||||
|
Цитата:
Цитата:
Цитата:
//****************************************************************************
//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. |
|
|
« Предыдущая тема | Следующая тема » |
|
|