Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   getFriends как правильно вывести!? (http://www.flasher.ru/forum/showthread.php?t=169027)

Drac0Sha 26.09.2011 22:07

getFriends как правильно вывести!?
 
Здравствуйте, хотел спросить как мне парсирить правильно
смотрел, сервер выводит
примерно в таком виде
{""response":[{"uid":345345,"first_name":"NAME","last_name":"SURNAME"},{"uid":344545,"first_name":"NAME2","last_name":"SURNAME2"},...]

Код:

private function getFriends(): void
                {
                        var offsetFriends:uint = 0;
                        var friendsJ:uint = 0;
                        var TimeOut:Timer = new Timer( 5000, 1 );
                        TimeOut.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete); /
                        // параметры которые будем передавать в запросе и которые нужны для формирования сигнатуры
                        // параметры для формирования сигнатуры
                        var request_params: Object = new Object();
                        request_params.api_id = api_id;
                        request_params.method = 'friends.get';
                        request_params.format = 'XML';
                        request_params.v = '3.0';
                        request_params.fields = 'uid,first_name,last_name,photo_big,sex,bdate,city,country,education,sex';
                        request_params.uids = viewer_id;
                       
                        // параметры для отправки запроса
                        var variables:URLVariables = new URLVariables();
                        // часть параметров берем из request_params
                        for (var j:String in request_params)
                        {
                                variables[j] = request_params[j];
                        }
                        variables['sid'] = sid;// параметр sid нужно передавать в запросе, но он не используются при создании сигнатуры
                        variables['sig'] = generate_signature(request_params);// генерируем сигнатуру. Функция generate_signature описана ниже.

                        // подготавливаем запрос
                        url_request = new URLRequest(api_url);
                        // данные будем отправлять POST запросом
                        url_request.method = URLRequestMethod.POST;
                        // добавляем параметры в запрос
                        url_request.data = variables;
                        // отправляем запрос
                        url_loader = new URLLoader  ;
                        url_loader.addEventListener(Event.COMPLETE,getFriendsAPI);
                        url_loader.load(url_request);
                }
               
                function getFriendsAPI( ):void
                {
                        if( TimeOut.running )
                        {
                                TimeOut.reset();
                        }
                        TimeOut.start();
                        VK.api("friends.get",  { uid:flashVars.viewer_id, fields:"uid,first_name,last_name", count:1000, offset:offsetFriends }, get1000Friends, onError );
                                offsetFriends += 1000;
                }
 
                function get1000Friends ( data:Array ):void
                {
                        for( var i:uint = 0; i<data.length; i++ )
                        {
                        friends[friendsJ] = data[i];
                        friendsJ++;
                        }
                        if( offsetFriends <= 9000 )
                        {
                        getFriendsAPI( );
                        }
                }
 
                function onTimerComplete( e:TimerEvent ):void
                {
                getFriendsAPI();
                }


понимаю, что скорее всего спросил какую-то лёгкую тему, но надеюсь на помощь )

Inet_PC 26.09.2011 22:09

любая JSON библиотека. Например вот эта.
Хотя вы вроде указали xml, странно...

GBee 26.09.2011 22:12

JSON это

Inet_PC 26.09.2011 22:19

Да никто и не спорит, что это JSON, просто
Цитата:

request_params.format = 'XML';
а возвращается JSON, вот это странно ...

Drac0Sha 26.09.2011 23:28

согласен ) что странно )
но с getProfiles работает )

а можно пожалуйста по конкретней )
если допустим, не получится так как я сделал )
что с json библиотекой мне делать ) !?

Добавлено через 13 минут
на форуме посмотрел
Код:

                private function getFriends2():Array {
                    var fr:Array = new Array();
                            var item:Object;
                    for( var i:int = 0; i< 10000; i++ ){
                        item = new Object();
                        item["uid"] = "uind"+i;
                        item["first_name"] =  "firstname"+i;
                        item["last_name"] =  "lastname"+i;
                        fr[i] = item;
                    }
                            return fr;
                }

это не решит проблему!? )

Добавлено через 20 минут
суть в том, что при нажатии на кнопку в приложении
выдаётся список всех друзей...и он может выбрать кому из них будет видна та или иная информация )

Inet_PC 27.09.2011 00:32

Примерно так:
Код AS3:

var data: Object = JSON.decode(url_loader.data);
var friends: Array = data ? data.response as Array : null;
if (friends)
{
        for(var i:int=0;i<friends.length;++i)
        {
                trace(friends[i].first_name);
        }
}


Drac0Sha 27.09.2011 18:31

извините, но я не силён во Флэше )
а куда именно!?
в getFriands2!?
результата никакого
и вообще честно говоря, мне не понятно, всё что здесь написано хватит для того чтобы он на экране выводил их или нет!?

GBee 27.09.2011 19:37

По умолчанию и так ХМЛ


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

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