Страница 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 выводится имя-фамилия друга
только фотография выводится у самого нижнего друга в списке
подскажите, плиз, что поправить
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 - как запрос можно поделить на части?