Показать сообщение отдельно
Старый 02.12.2010, 17:44
AVS вне форума Посмотреть профиль Отправить личное сообщение для AVS Найти все сообщения от AVS
  № 7  
Ответить с цитированием
AVS

Регистрация: Nov 2010
Сообщений: 22
Спасибо всем, кто откликнулся

Привожу начальный вариант метода:
Код AS1/AS2:
private function _showImages(con:IVisualElementContainer, path:String): void {
             // преднастроенная корневая папка
	var appDir:File = pref.getFolder();
             // path - относительный путь от корневой папки
	var photoDir:File = appDir.resolvePath(path);
	var arr:Array;
	arr = photoDir.getDirectoryListing();
	for (var i:int=0; i < arr.length; i++) {
	            var img:Image = new Image();
		img.load( File(arr[i]).url );
		img.width=100;
		img.height=100;
		img.scaleX = 1;
		img.scaleY = 1;
		con.addElement(img);
	}
}
Данный метод вызывается несколько раз в зависимости от количества локальных папок (~5), предназначенных для чтения (настраивается в приложении).
Как я уже говорил грузится долго на компе с 2гб ОЗУ.

Переделал метод по другому:
Код AS1/AS2:
private function _showImages(con:IVisualElementContainer, path:String): void {
	var appDir:File = pref.getFolder();
	var photoDir:File = appDir.resolvePath(path);
	var arr:Array;
	arr = photoDir.getDirectoryListing();
	for (var i:int=0; i < arr.length; i++) {
 
	            var imgLoader: Loader = new Loader();
		imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
		imgLoader.load(new URLRequest(File(arr[i]).url));
	}
 
	function onComplete(e:Event):void {
		var bmp: Bitmap;
		var img: Bitmap;
		var spr: SpriteVisualElement = new SpriteVisualElement();
		img = e.target.content as Bitmap ;
		img.width=100;
		img.height=100;
		spr.width = 100;
		spr.height = 100;
		spr.addChild( img );
 
		con.addElement(spr);
	}				
 
}
Второй вариант почему-то грузит не все картинки из папки (из 88 грузит 30). Это только
то, что визуально бросилось в глаза сразу.

Второй момент, можно ли как-то использовать только один объект Loader, вынеся его создание за тело цикла. Попробовал сам, но опять наткнулся на грабли - выводится только одна картинка из папки.

Буду рад любым комментариям или советам,
Заранее спасибо