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();
Код: Выделить всё
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();//показываем аватар }
Приложение включено и видно всем
С использованием контейнера(Можно и Без отступов и элементов управления)
Можно добавлять на страницу
Исходник: тут