Тема: [Вконтакте] Вывод фотографий друзей
Показать сообщение отдельно
Старый 27.07.2010, 19:42
Agni вне форума Посмотреть профиль Отправить личное сообщение для Agni Найти все сообщения от Agni
  № 1  
Ответить с цитированием
Agni

Регистрация: Apr 2009
Сообщений: 141
По умолчанию Вывод фотографий друзей

надо вывести список друзей, просматривающего приложение
вывожу в qwe_tl - компонент TileList
наполняю его экземплярами мувиклипа friend_list из библиотеки
Код AS3:
package vk
{
	import flash.net.*;
	import flash.display.*;
	import flash.events.*;
	import flash.text.*;
	import vk.VkApiNode;
 
	public class Main extends MovieClip
	{
		private var api_id:Number = 11111111;
		private var api_secret:String = "sdfsdsdfsd";
		private var api:VkApiNode;
		private var viewer_id;
		private var server_url;
		private var url_loader:URLLoader;
		private var url_request:URLRequest;
		private var query:String;
 
		public function Main():void
		{
			viewer_id = LoaderInfo(root.loaderInfo).parameters.viewer_id;
			server_url = 'http://api.vkontakte.ru/api.php?';
			api = new VkApiNode(viewer_id,api_id,api_secret,true,'XML','2.0',server_url);
			query = api.getFriends();
			url_request = new URLRequest(query);
			url_loader = new URLLoader  ;
			url_loader.addEventListener(Event.COMPLETE,friendsLoaded);
			url_loader.load(url_request);
		}
		public function friendsLoaded(event:Event):void
		{
			var responseFriends:XML = new XML(url_loader.data);
			if (responseFriends.error_code != 7)
			{
				var all_friends:Array = new Array  ;
				for each (var fid:XML in responseFriends.*)
				{
					all_friends.push(fid);
				}
				// получаем профили друзей, используя метод getProfiles
				var fields:Array = new Array  ;
				fields = ['first_name,last_name,photo_medium'];
				getProfiles(all_friends,fields);
			}
			else
			{
				friends_tf.text = 'Нет доступа к списку друзей';
			}
		}
		public function getProfiles(uids:Array,fields:Array):void
		{// функция получения профилей
			query = api.getProfiles(uids,fields);
			url_request = new URLRequest(query);
			url_loader = new URLLoader  ;
			url_loader.addEventListener(Event.COMPLETE,profilesLoaded);
			url_loader.load(url_request);
		}
		public function profilesLoaded(event:Event):void
		{
			var photoLoader:Loader = new Loader  ;
			var responseFriendsProfiles:XML = new XML(url_loader.data);
			for each (var user:XML in responseFriendsProfiles.*)
			{
				var temp:friend_list = new friend_list  ;
				var stroka:String = user.first_name + ' ' + user.last_name;
				temp.title_txt.text = stroka;
				var photo = user.photo_medium;
				var request2:URLRequest = new URLRequest(photo);
				photoLoader.load(request2);
				photoLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaded);
				qwe_tl.addItem({source:temp});
			}
			function onLoaded():void
			{
				photoLoader.width = 150;
				photoLoader.height = 150;
				temp.addChild(photoLoader);
			}
		}
	}
}
фотография выводится только у самого нижнего элемента TileList
подскажите, пожалуйста, как исправить