Вывод друзей в приложении (getFriends и getProfiles)

Темы только для ознакомления. Уроки по использованию старой версии ВКонтакте API и устаревших методов.
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

Вывод друзей в приложении (getFriends и getProfiles)

Сообщение Влад »

УРОК СКОПИРОВАЛ С EASYFLASH.ORG
1. Открываем adobe Flash и создаем новый Файл Flash(ActionScript3).
2. Нажимаем Ctrl+F7 и из появившегося окна на сцену тащим: List и UILoader.
3. Создаем MovieClip, на котором, к примеру, написанно "подождите" и называем его mc_press и ставим галочку на Экспорт для AS3
Жмём F9 и в появившемся окне пишем:

1)переменные и импорт

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

import vk.*;//импорт библиотеки(в исходнике) //переменные для VkApivar wrapper:Object;var api:VkApiNode;var api_id:Number=111111;//ID вашего приложенияvar api_secret:String="2222222";//секрет вашего приложенияvar server_url:String;var viewer_id:Number;var query:String;var api_XML:XML = new XML();var api_loader:URLLoader = new URLLoader();var api_request:URLRequest; //мувикиvar Loading:MovieClip = new mc_press(); //массив друзейvar FriensList:Array = new Array();
2)главная часть

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

this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);function onAddedToStage(e:Event):void { wrapper = Object(this.parent.parent); Security.allowDomain("*"); stage.dispatchEvent(new Event(Event.DEACTIVATE)); stage.dispatchEvent(new Event(Event.ACTIVATE)); server_url = wrapper.application.parameters.api_url + '?';//определяем адресс сервера viewer_id = wrapper.application.parameters.viewer_id;//узнаем id просматривающего приложение api = new VkApiNode(viewer_id,api_id,api_secret, false, "XML", "2.0", server_url);//делаем копию библиотеки if (wrapper.application.parameters.is_app_user == 1) {//если пользователь установил приложение if(!Boolean(wrapper.application.parameters.api_settings & 2))//если есть нет доступа к друзьям { AppSettings();//вызывам окно с настройкими }else{ PUSK();//продолжаем запуск приложения } }else{ AppInstal();//вызывам окно с добавлнием на страницу }} function AppSettings():void{ wrapper.external.showSettingsBox(+2);//автоматически вызываем окно настроек приложения}function onApplicationAdded(e:Object):void{ if(!Boolean(wrapper.application.parameters.api_settings & 2)) { AppSettings();//автоматически вызываем окно с добавлнием на страницу }else{ PUSK();//продолжаем запуск приложения }} function onSettingsChanged(e:Object):void{ if(!Boolean(e.settings & 2)) { PUSK();//продолжаем запуск приложения wrapper.removeEventListener("onSettingsChanged", onSettingsChanged );//удаляем слушатель }} function AppInstal():void{ wrapper.external.showInstallBox();//автоматически вызываем окно добавления приложения на страницу} function PUSK():void{ Loading.x = wrapper.application.stageWidth /2;//выравниваем Loading.y = wrapper.application.stageHeight /2; addChild(Loading);//добавляем на сцену окошко с зугрузкой query = api.getFriends();//создаем ссылку с помошью библиотеки api_request=new URLRequest(query);//загружаем данные с ссылки api_loader.addEventListener(Event.COMPLETE, onloadedPUSK);//что произойдет при завершении загрузки api_loader.load(api_request);//загружаем FriendsPanel.addEventListener(Event.CHANGE, onFrendAva);//добавляем к списку друзей слушатель, который сработает когда пользователь изменит положение бегунка на нем}function onloadedPUSK(e:Event):void{ api_loader.removeEventListener(Event.COMPLETE, onloadedPUSK);//удаляем старый слушатель api_XML = XML(api_loader.data);//сохраняем данные в переменную if(api_XML.children().length() > 100)//если друзей более 100 { cutListFriend();//вызваем функцию для загрузки больших списков друзей }else{ removeChild(Loading);//удаляем окно загрузки for (var i:int=0; i<api_XML.children().length();i++)//запускаем цикл { FriensList[i] = api_XML.children()[i].toString();//пихаем id друзей в массив } query = api.getProfiles(FriensList, ['first_name,last_name']);//создаем ссылку с помошью библиотеки api_request=new URLRequest(query);//загружаем данные с ссылки api_loader.addEventListener(Event.COMPLETE, onloadedFriens);//что произойдет при завершении загрузки api_loader.load(api_request);//загружаем }}function cutListFriend():void{ var FriendsN:Number = 0;//обьявляем перемнную "счетчик" for(var i:int=0; i<api_XML.children().length();i++)//запускаем цикл { FriendsN += 1;//ставим счетчик FriensList[i] = api_XML.children()[i].toString();//пихаем друга в массив if(FriendsN == 100)//когда счетчик дощел до 100 { FriendsN = 0;//обнуляем его query = api.getProfiles(FriensList, ['first_name,last_name']);//создаем ссылку с помошью библиотеки api_request=new URLRequest(query);//загружаем данные с ссылки api_loader.addEventListener(Event.COMPLETE, onloadedFriens);//что произойдет при завершении загрузки api_loader.load(api_request);//загружаем FriensList = new Array();//чистим массив }else if((api_XML.children().length() - i) == 1)//если счетчик не дошел до 100, но друзей осталось меньше 100 { FriendsN = 0;//обнуляем счетчик query = api.getProfiles(FriensList, ['first_name,last_name']);//создаем ссылку с помошью библиотеки api_request=new URLRequest(query);//загружаем данные с ссылки api_loader.addEventListener(Event.COMPLETE, onloadedFriens);//что произойдет при завершении загрузки api_loader.load(api_request);//загружаем } } removeChild(Loading);//удаляем окно загрузки}function onloadedFriens(e:Event):void{ api_loader.removeEventListener(Event.COMPLETE, onloadedFriens);//удаляем старый слушатель api_XML = XML(api_loader.data); for (var i:int=0; i<api_XML.children().length();i++)//запускаем цикл { FriendsPanel.addItem({label:api_XML.children()[i].first_name + " " + api_XML.children()[i].last_name, data:api_XML.children()[i].uid});//добавляем в лист на сцене пункт }}function onFrendAva(e:Event):void{//загружаем аватар друга, которого выбрали из списка query = api.getProfiles([e.target.selectedItem.data], ['photo_big']); api_request=new URLRequest(query); api_loader.addEventListener(Event.COMPLETE, onloadedFriendAva); api_loader.load(api_request);}function onloadedFriendAva(e:Event):void{ api_XML = XML(api_loader.data); FriendAva.source = api_XML..photo_big.toString();//показываем аватар }
Нажимаем Ctrl+Enter и загружаем приложение в контакт.

Приложение включено и видно всем


С использованием контейнера(Можно и Без отступов и элементов управления)

Можно добавлять на страницу

Исходник: тут
Последний раз редактировалось Влад 06 июл 2010, 15:14, всего редактировалось 6 раз.
Marik
FL Team
FL Team
Сообщения: 27
Зарегистрирован: 18 янв 2010, 21:41

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

Сообщение Marik »

Спасибо огромное! ;)
Аватара пользователя
paduchin
FL Team
FL Team
Сообщения: 318
Зарегистрирован: 01 мар 2010, 14:20

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

Сообщение paduchin »

Выдаёт ошибку 1084:Syntax error
Вот в этой строке

FriendsPanel.addItem({label:api_XML.children().first_name + " " + api_XML.children().last_name, data:api_XML.children().uid});
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

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

Сообщение Влад »

Качай исходник там всё работает
Аватара пользователя
paduchin
FL Team
FL Team
Сообщения: 318
Зарегистрирован: 01 мар 2010, 14:20

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

Сообщение paduchin »

У меня CS 3, так что у меня не прёт твой исходник.
Да и тем более ты должен разобраться почему не работает, ведь это всё таки твой урок !
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

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

Сообщение Влад »

paduchin
Во первых я ничего никому не должен и не обязан
Во вторых я не отвечаю за CS3 CS2 Flash8 и прочую фигню

От куда ошибка? Добавил ли ты все компоненты? Назвал ли ты все компоненты? Привязал ли ты папку VK? Как ты это делал?


________________________

FriendsPanel назвал?
Danilka
Сообщения: 12
Зарегистрирован: 17 июн 2010, 08:24

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

Сообщение Danilka »

Влад а что значит 1)переменные и импорт- этот код к мовие клипу? и 2)главная часть
- это к кадру?
или все к кадру
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

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

Сообщение Влад »

Danilka
1)- первый слой
2) - второй слой

там весь код писать именно в кадре!
Danilka
Сообщения: 12
Зарегистрирован: 17 июн 2010, 08:24

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

Сообщение Danilka »

спасибо буду побывать
ксати хорошее приложение кисс :)
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

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

Сообщение Влад »

Danilka спасибо, оно не полностью ещё написано!
Ответить