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

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

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
У тебя тест не правильный) Флеш плеер одну и ту же битмап дату не будет много раз грузить. В общем, ты загрузил всего одну картинку, а для остальных хэш проверился и фактической загрузки не было.
Вот тебе реальный тест с разными картинками
Код AS3:
package {
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.filesystem.File;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.utils.getTimer;
 
 
	public class MultiloadTest extends Sprite {
 
		private var _loader:	Loader 	= null;
		private var _curIndex:	int		= 0; 
		private var _numImages:	int		= 0;
		private var _paths:		Array	= [];
		private var _imageFiles:Array	= null;
		private var _isAsync:	Boolean	= false;
		private var _startTime:	int		= 0; 
 
		public function MultiloadTest() {
 
			var imagesDirectory:	File 	= File.applicationDirectory.resolvePath("images");
			_imageFiles 	= imagesDirectory.getDirectoryListing();
			_numImages 						= _imageFiles.length;
 
			//loadQueue();
			loadAsync();
			trace("num images", _numImages, _isAsync);
		}
 
		private function loadAsync():void {
			_isAsync = true;
			_startTime = getTimer();
			for (var i:int = 0; i < _numImages; i++) {
				var file:File = _imageFiles[i];
				var loader:Loader = new Loader();
				loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
				loader.load(new URLRequest(file.nativePath));
			}
		}
 
		private function loadQueue():void {
			_isAsync	= false;
			_loader 	= new Loader();
			_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
			for (var i:int = 0; i < _numImages; i++) {
				var file:File = _imageFiles[i];
				_paths.push(file.nativePath);
			}
			_startTime = getTimer();
			_loader.load(new URLRequest(_paths[_curIndex]));
		}
 
		private function onComplete(e:Event):void {
			_curIndex++;
			if (_curIndex >= _numImages) {
				trace("compelte in:", getTimer() - _startTime, "ms");
			} else if (!_isAsync) {
				_loader.load(new URLRequest(_paths[_curIndex]));
			}
		}
 
	}
 
}
В первой сборке вызываем loadQueue(), при этом loadAsync() откомментирована. Во втором случае наоборот.
Вот результаты тестов

num images 210 false
compelte in: 7461 ms

num images 210 true
compelte in: 828 ms

Разница в 9 раз. Более чем существенная. А ведь это всего 210 маленьких картинок, общим весом чуть больше 11 мегабайт.

Вообще, странно, я знаю, что ты далеко не глупый человек, и я честно не понимаю, почему до тебя сразу не дошло то, что в твоем случае ты грузишь картинку, и ждешь ее полной загрузки прежде чем начать загрузку новой, а со множеством загрузчиков ты сразу грузишь столько картинок, сколько вообще возможно. Во много потоков. Естественно они загрузятся нанмого быстрее, чем поочереди
__________________
Ко мне можно и нужно обращаться на ты)


Последний раз редактировалось caseyryan; 06.12.2016 в 21:08.
Создать новую тему   Часовой пояс GMT +4, время: 12:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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