вывод списка друзей (vkontakte.ru)
Открываем adobe Flash и создаем новый Файл Flash(ActionScript3).
Нажимаем Ctrl+F7 и из появившегося окна на сцену тащим: List и UILoader.
Должно получиться примерно так:
Создаем MovieClip, на котором, к примеру, написанно "подождите" и называем его mc_press и ставим галочку на Экспорт для AS3
Жмём F9 и в появившемся окне пишем:
1) Переменные и импорт
import vk.*;//импорт библиотеки(в исходнике) //переменные для VkApi var 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 и загружаем приложение в контакт.
Приложение включено и видно всем
С использованием контейнера (Можно и Без отступов и элементов управления)
Можно добавлять на страницу
Тип приложения Flash
- 871 просмотр
Комментарии
Поправте пожалуйста архив
Исходник можно скачать отсюда: https://easyflash.ifolder.ru/18220652">https://easyflash.ifolder.ru/18220652
Спасиба мегоПолезный материал, всё работает, красота!
такого урока ещё нету нигде в рунете)
Зачем Евгения Блана выделил ????
Здраствуйте, ответьте мне пожалуйста на вопрос. Я создал рисовалку для Вконаткте
https://vkontakte.ru/app1841627_57289685
Как мне сделать что бы там был виден список моих друзей, что бы когда нажимаешь на друга то при отправление рисунка графити отправлялось ему? Как сделать что бы я мог отправлять уведомления со своего приложения? Мне вот сказали почитай это (ПРо уведомления) https://vkontakte.ru/pages.php?id=2371037
Но я не пойму, куда вставлять этот код??? Куда набирать текст для уведомлений?
Пожалуйста, админ, не удаляй это собщение!!!! Мне очень надо!!!! Ответьте в лс!!! Пожалуйста!!!
Programmer Action Script 3.0
этот метод должен отправляться с сервера. это уже PHP а не AS3.
почитай это https://flapps.ru/forum/topic255.html
у меня не работае пишет что ошибка в в строке FriendsPanel.addItem({label:api_XML.children()[i].first_name + " " + api_XML.children()[i].last_name, data:api_XML.children()[i].uid});//добавляем в лист на сцене пункт
Почему вроде все правиль но сделал
Здраствуйе, у меня работает, только интересуєт несколько вопросов:
1. Откуда брал библиотеку?
2. В Parameter.as какая то ошибка,
this.value = this.value.replace(/"/g, '\"');
this.value = this.value.replace(/'/g, '\'');
каким должно бить регулярное виражение?
Спасибо
Странно но у меня почему то не работает хотя я все и сделал как было сказано выше
Не смог открыть основной файл. Пишет - "Непредвиденный формат файла".
В какой версии сделан файл?
скорее всего в adobe flash cs4
народ что за лаги!!!
объяснитеhttps://www.photoshare.ru/photo6426532.html
У меня компилятор ругается на строчки:
var api:VkApiNode;
.
.
api = new VkApiNode(viewer_id,api_id,api_secret, false, "XML", "2.0", server_url);//делаем копию библиотеки
и т.д.
Что ето за КЛАСС(VkApiNode)???
sonick,
Вы что действительно хотите что то написать для вконтакте и не знаете что это за класс???
вам сюда www.vkontakte.ru/club1 скачайте архив с классами оттуда и как следует просмотрите документацию
А ещё лучше сюда: https://disk.easyflash.org/magazin/easyflash/vkapi
1) Админ всегда прав
2) Если админ не прав, смотри пункт 1
Мы в контакте - https://vkontakte.ru/club9573247
Не отвечаю на вопросы в личку касаемо Flash, у нас для этого есть форум
Уважаемый Lewka151! Я так понимаю что урок для тех у кого меньше 100 друзей. Потому что в массив после 100-го друга обнуляете. И все, а если друзей допустим 186 то первая сотня идет пустыми ячейками (запятыми). И естественно сервер не понимает и ругается.
Норм. Ещё не знал, спасибо!
Видимо что-то изменилось и уже не работает =(
palamarin, здесь неограниченное количество друзей. как видишь он отправляет запросы по 100друзей.