Показать сообщение отдельно
Старый 08.02.2012, 21:05
Grays вне форума Посмотреть профиль Отправить личное сообщение для Grays Найти все сообщения от Grays
  № 6  
Ответить с цитированием
Grays

Регистрация: Feb 2012
Сообщений: 5
Цитата:
Сообщение от toFL Посмотреть сообщение
2) Загрузка нескольких изображений (и другой информации) решается двумя способами:
а) Грузить одним загрузчиком картинки по очереди
б) Создавать для каждого запроса новый загрузчик
Можешь рассказать чуть поподробнее? Я в итоге пришел к такому коду:
(все переменные явным образом объявлены в классе)
Код AS3:
 
....
backPathsArray = calf(_named,_actio,"back");
....
public function calf(_named:String,_actio:String,_line:String):Array
	{
		var directionArray:Array = [];
		var loadedFileArray:Array = [];
// Это ассоциативный массив, в нём содержатся ссылки на файлы, которые необходимо загрузить.
		for (var i in SomebodyMonsters[_named][_actio][_line])
		{
			_loader = new Loader();
			_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
			_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
			_loader.addEventListener(IOErrorEvent.IO_ERROR, onErrorHandlerIOErrorEvent);
			_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onInfoIOErrorEvent);
			try {
			_loader.load(new URLRequest(SomebodyMonsters[_named][_actio][_line][i]));
			} catch (e:TypeError)
			{
				trace("Не могу загрузить файл");
				trace(e.message);
			}
Далее, если здесь, скажем, использовать конструкцию
Код:
directionArray.push(_loader);
addChild(directionArray[0]);
то на экране отображается оная картинка, а в конечном массиве образуется множество [object Loader], но они мне не нужны, я хочу поместить все картинки в массив, из которого затем буду их использовать, поэтому пробую применять следующий код - первые 3 строчки ключевые.
Код AS3:
			var image:Bitmap = _loader.content as Bitmap;
			var bitmap:BitmapData = image.bitmapData;
			directionArray.push(image);
		}
		loadedFileArray = directionArray;
 
		return loadedFileArray;
	}
Как результат, возвращаемый массив содержит сплошные null. Тоже самое происходит, если эти строчки заменить одной
Код:
directionArray.push(_loader.content);
Почему так происходит? В чём мои ошибки?
Мне в конечном итоге нужен какой-либо способ нормально взаимодействовать с загружаемыми картинками, как экземплярами Bitmap, но через массив.
Пожалуйста, помогите, не выходит разобраться.

P.S. Забыл добавить, что все события срабатывают нормально, (компилятор бывало ругался только на строчку var bitmap:BitmapData = image.bitmapData. По событию прогресса видно, что картинки загружены.


Последний раз редактировалось Grays; 08.02.2012 в 21:07.