Страница 1 из 1

Вывод друзей в Вконтакте

Добавлено: 02 дек 2012, 14:40
artsgtu
Всем Здравия!!!
У меня такая проблемка, на Flash(e) мне надо вывести друзей, те кто установили приложение и те кто не установил.

На сцене есть три текстовых поля: кол-во друзей, кол-во установивших и кол-во не установивших - это я сделал.
Два list(a) -в первом выводится кол-во не установивших, а во втором кол-во друзей установивших.

в первом у меня выводится весь список друзей, а мне надо те кто не установил.
во втором выводится id друзей, не знаю как сделать чтоб выводились имя и фамилия.

код Main.as

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

     package    {import flash.display.Sprite;    import flash.text.*;    import flash.events.*;    import vk.APIConnection;    import vk.events.*;    import vk.ui.VKButton;     import fl.data.DataProvider;import fl.controls.List;          public class Main extends Sprite        {        public var api_id:Number;        public var viewer_id:Number;        public var sid:String;        public var secret:String;        public var frCount;// количество друзей        public var AppfrCount;        public var friendsOnApp = new Array();;        public var dpApp:DataProvider = new DataProvider();                                                public function Main()            {                // получаем flashVars                var flashVars:Object = stage.loaderInfo.parameters as Object;                // присваиваем переменным значения из flashVars                api_id = flashVars['api_id'];                viewer_id = flashVars['viewer_id'];                sid = flashVars['sid'];                secret = flashVars['secret'];                    // инициализация                var VK:APIConnection = new APIConnection(flashVars);                                  VK.api('friends.get', {fields:'first_name,last_name, uid'}, friendsLoaded, onError);                 VK.api('friends.getAppUsers',{}, getAppfriendsLoaded, onError);                             }                        private function getAppfriendsLoaded(data: Object):void            {                 AppfrCount = data.length;  // узнаем количество друзей установших приложение                 resultyesApp_tf.text = 'Друзья установившие данное приложение: ' + AppfrCount + "\n";                 listnoApp_mc.dataProvider = dpApp;                                              for (var i=0; i<AppfrCount; i++)            {                friendsOnApp.push(data[i]);            }             // выводим список ID друзей в listnoApp_mc           for (i=0; i<AppfrCount; i++)            {                dpApp.addItem({label:friendsOnApp[i]} );            }        }               // данные получены        private function friendsLoaded(data: Object):void        {            // обрабатываем полученный ответ            frCount = data.length;// узнаем количество друзей            // выводим количество друзей в поле resultresultvsego_tf            resultresultvsego_tf.text = 'Всего у Вас друзей: ' + frCount + "\n";            var noApp = data.length;                        noApp = frCount - AppfrCount; //кол-во не установивших приложение            // выводим количество друзей в поле resultresultvsego_tf которые не установили приложение             resultnoApp_tf.text = 'Друзья не установившие данное приложение: ' + noApp + "\n";                                                var dp:DataProvider = new DataProvider();            list_mc.dataProvider = dp;                // выводим список друзей в поле list_mc             for (var i=0; i<frCount; i++)            {                                dp.addItem({label:data[i].first_name+ ' ' + data[i].last_name} );            }                                                    }        // если произошла ошибка        private function onError(data: Object):void        {            resultresultvsego_tf.text = data.error_msg;                    }                     } }                                                                                                   

Re: Вывод друзей в Вконтакте

Добавлено: 02 дек 2012, 17:09
Casperovskii
Нужно из всех друзей убрать сначала тех, кто установил, а потом уже выводить неустановивших.
Потом нужно запросить инфу о юзверях у контакта, передав ему массив пользлвателей и соотнеся ответ с вашим массивом. Не могу дать код, пишу с телефона. Если не разберетесь, позже смогу помочь.

Re: Вывод друзей в Вконтакте

Добавлено: 02 дек 2012, 17:17
artsgtu
Casperovskii писал(а):Нужно из всех друзей убрать сначала тех, кто установил, а потом уже выводить неустановивших.
Потом нужно запросить инфу о юзверях у контакта, передав ему массив пользлвателей и соотнеся ответ с вашим массивом. Не могу дать код, пишу с телефона. Если не разберетесь, позже смогу помочь.
Буду признателен за код, а то уже голова пухнет :D

Re: Вывод друзей в Вконтакте

Добавлено: 02 дек 2012, 23:35
Casperovskii
Итак примерный код (ужасная версия, можно оптимизировать наверное):

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

 var friends:Array = new Array(); //массив айди друзейvar friendWithoutApp:Array = new Array(); //друзья без приложенияvar friendWithApp:Array = new Array(); // друзья с приложениемvar appInstaled:Boolean = false;//код, когда мы получаем всех друзей и друзей, установивших пропущен, всех друзей записываем айдишники в массив "друзья"for (var i:int=0;i<friendWithoutApp.length;i++) { appInstaled = false; for (var j:int=0;j<friendWithApp.length;j++) {  if (friends[i]==friendWithApp[j]) { //если совпадают айди из всех друзей и друга с приложением, тогда ставим флажок что его не нужно добавлять в другую категорию  appInstaled=true;  } if (!appInstaled) { friendWithoutApp.push(friends[i]); //если не установил, тогда добавляем в нужный массив } }}