Страница 7 из 12

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Добавлено: 02 июл 2010, 20:29
agni
 
agni писал(а):хочу выполнить отладку
на сайте приложение отключил, в коде поменял следующее

Код: Выделить всё

package {   import flash.net.*;   import flash.display.*;   import flash.events.*;   import flash.text.*;   import vk.VkApiNode;    public class Main extends Sprite {      private var api_id:Number=xxxxxxxx;// id моего приложения      private var api_secret:String="xxxxxxxx";// секретный ключ      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;         // определяем адрес сервиса API (vkontakte.ru или vk.com)         server_url = LoaderInfo(root.loaderInfo).parameters.api_url + '?';         viewer_id=11466146;         trace('server_url='+server_url);//строка почему то  ничего не выдаёт, должно показать что-то вроде этого: server_url=[object Object]         // создаем и выполняем запрос         api=new VkApiNode(viewer_id,api_id,api_secret,true,'XML','2.0',server_url);//здесь ставлю true чтобы в запрос ушло test_mode=1         query=api.getFriends();         url_request=new URLRequest(query);         url_loader=new URLLoader  ;         url_loader.addEventListener(Event.COMPLETE,friendsLoaded);         url_loader.load(url_request);      }
в output пишет следующее:

Код: Выделить всё

server_url=undefined?Error #2044: Необработанный ioError:. text=Error #2032: Ошибка потока. URL: file:///C|/friend%5Flist/undefined?api_id=1898163&format=XML&method=getFriends&random=7327&test_mode=1&v=2.0&sig=96b69b00f4a8d0a5e3c724e9819628e1    at Main()[C:\friend_list\Main.as:28]
я так понимаю, ошибка из-за отсутствия результата в server_url?
что-то ещё надо изменить, чтобы включить отладку?
подставляю:

Код: Выделить всё

server_url='http://api.vkontakte.ru/api.php?';
отладка работает
как без этого обойтись? при отладке server_url может ли формироваться строкой:

Код: Выделить всё

 server_url = LoaderInfo(root.loaderInfo).parameters.api_url + '?';
?

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Добавлено: 02 июл 2010, 20:47
Александр
Danilka
Читай другие уроки на этом форуме и книги по ActionScript. У меня небыло необходимости делать то что ты хочешь, времени и желания сделать это за тебя у меня нет, поэтому готовый код я не могу дать.

agni

Код: Выделить всё

server_url = LoaderInfo(root.loaderInfo).parameters.api_url + '?';
Откуда у тебя приложение возьмет ссылку на сервер? Заменяй эту переменную на "http://api.vkontakte.ru/api.php?" как и viewer_id.
Или убери этот параметр, оставив его по умолчанию:

Код: Выделить всё

api=new VkApiNode(viewer_id,api_id,api_secret,true,'XML','2.0');

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Добавлено: 05 июл 2010, 09:23
Danilka
Спасибо Александр за это:)

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Добавлено: 26 июл 2010, 16:43
agni
надо вывести фотографию и имя-фамилию друзей в компоненте TileList
qwe_tl - компонент TileList
friend_list - мувиклип в библиотеке
title_txt - текстовое поле в friend_list
изменял только функцию profilesLoaded
с выведением имя-фамилия сложностей не возникло:

Код: Выделить всё

        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();                temp.width = 30;                temp.height = 30;                var stroka:String = user.first_name + ' ' + user.last_name;                temp.title_txt.text = stroka;                qwe_tl.addItem({source:temp});            }        }
при добавлении фотографии возникли проблемы:

Код: Выделить всё

public function profilesLoaded(event:Event):void        {            var responseFriendsProfiles:XML = new XML(url_loader.data);            for each (var user:XML in responseFriendsProfiles.*)            {                var photoLoader:Loader = new Loader();                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(e:Event):void            {                photoLoader.x = 0;                photoLoader.y = 0;                temp.addChild(photoLoader);            }         }
компилирует без замечаний
при отладке TileList наполняет правильно
в title_txt.text выводится имя-фамилия друга
только фотография выводится у самого нижнего друга в списке

подскажите, плиз, что поправить :geek:

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Добавлено: 27 июл 2010, 22:49
Александр
agni
Последняя фотография перекрывает другие.
В AS нельзя нормально загрузить фотографии в простом цикле. Нужно вызывать загрузку другой фотографии после события onLoaded. То есть цикл получиться через эту функцию.
Либо используй для загрузки фотографий UILoader.

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Добавлено: 12 авг 2010, 00:20
catamount5
Спасибо за урок!
То, что нужно - лаконично и понятно!

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Добавлено: 13 авг 2010, 22:39
Superman
А как сделать эти самые ссылки кликабельными?
А лучше, скажите пож-а, как передать id друга, на которого нажали в списке?

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Добавлено: 13 авг 2010, 23:22
Александр
Superman писал(а):А лучше, скажите пож-а, как передать id друга, на которого нажали в списке?

Код: Выделить всё

friends=friends+'<a href="event:'+user.uid+'">'+user.first_name+' '+user.last_name+'</a><br />';//-------------------- friends_tf.addEventListener(TextEvent.LINK, friendClick); function friendClick(event:TextEvent):void {    trace(event.text);}

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Добавлено: 14 авг 2010, 15:30
Superman
Александр, спасибо большое! Очень помогли:)

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Добавлено: 18 авг 2010, 21:24
agni
подскажите, если друзей более 1000 - как запрос можно поделить на части?