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

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 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
подскажите, пожалуйста, как исправить

Старый 27.07.2010, 19:55
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код 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 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);
				var photoLoader:Loader = new Loader();
				photoLoader.load(request2);
				photoLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaded);
				temp.addChild(photoLoader);
				qwe_tl.addItem({source:temp});
			}
 
		}
		private function onLoaded(event:Event):void
		{
			event.target.width = 150;
			event.target.height = 150;
		}
	}
}

Старый 27.07.2010, 21:48
Agni вне форума Посмотреть профиль Отправить личное сообщение для Agni Найти все сообщения от Agni
  № 3  
Ответить с цитированием
Agni

Регистрация: Apr 2009
Сообщений: 141
спасибо

забыл что photoLoader должен для каждого мс создаваться

только не понятно, как temp.addChild(photoLoader) работает вне функции-приемника onLoaded

ps event.target.width = 150; - так не дает изменять - свойство только для чтения

Старый 27.07.2010, 21:57
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Ошибся.
Код AS3:
var loader:Loader = Loader(event.target.loader);
loader.width = 150;
loader.height = 150;

Старый 27.07.2010, 23:44
Agni вне форума Посмотреть профиль Отправить личное сообщение для Agni Найти все сообщения от Agni
  № 5  
Ответить с цитированием
Agni

Регистрация: Apr 2009
Сообщений: 141

Старый 29.07.2010, 02:32
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 6  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
http://vkontakte.ru/developers.php?o=-1&p=friends.get

Можете использовать один запрос ;о)
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:50.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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