ActionScript 3.0 (Adobe Flash CS4)
Приложение показывает текущий статус пользователя, устанавливает статус, показывает историю статусов, удаляет статус, показывает обновления статусов друзей.
Для работы с методами Вконтакте API используется изменённая мною библиотека VkApi. Находится в архиве с исходником.
1. Добавляем на сцену:
Текстовые поля с именами:
- uid_tf (поле ввода id того, чей статус будем узнавать)
- text_tf (поле ввода текста статуса, который будем устанавливать)
- uid_h_tf (поле ввода id того, чью историю статусов будем просматривать)
- aid_tf (поле ввода id статуса, который будем удалять)
- result_tf (поле с результатами)
Кнопки с именами:
- get_btn
- set_btn
- getHistory_btn
- deleteHistoryItem_btn
- getNews_btn
2. Создаём Main.as и пишем код:
Код: Выделить всё
/* http://flapps.ru/forum/ - форум о создании флеш приложений на основе ВКонтакте API */package { import flash.net.*; import flash.display.*; import flash.events.*; import flash.text.*; import vk.VkApiNode; import flash.ui.*; public class Main extends Sprite { private var api_id:Number=1727522;// ID приложения private var api_secret:String="1gqE8m34rb";// секретный ключ private var api:VkApiNode; private var server_url; private var viewer_id; private var url_loader:URLLoader; private var url_request:URLRequest; private var query:String; private var wrapper:Object; public function Main():void { this.addEventListener( Event.ADDED_TO_STAGE, onAddedToStage ); } public function onAddedToStage(e: Event):void { wrapper=Object(parent.parent); // вызываем окно с настройками приложения (доступ к статусам пользователя) wrapper.external.showSettingsBox(1024); // добавляем действия кнопкам get_btn.addEventListener(MouseEvent.CLICK, get_btnClick); set_btn.addEventListener(MouseEvent.CLICK, set_btnClick); getHistory_btn.addEventListener(MouseEvent.CLICK, getHistory_btnClick); deleteHistoryItem_btn.addEventListener(MouseEvent.CLICK, deleteHistoryItem_btnClick); getNews_btn.addEventListener(MouseEvent.CLICK, getNews_btnClick); // определяем адрес сервиса API (vkontakte.ru или vk.com) server_url = wrapper.application.parameters.api_url + '?'; // заполняем текстовые поля viewer_id=wrapper.application.parameters.viewer_id; uid_tf.text=viewer_id; uid_h_tf.text=viewer_id; text_tf.text='Я скачал исходник приложения на сайте http://flapps.ru'; } public function get_btnClick(e: MouseEvent):void { // создаем и выполняем запрос api=new VkApiNode(viewer_id,api_id,api_secret,false,'XML','2.0',server_url); var uid=int(uid_tf.text); // id пользователя query=api.getActivity(uid); url_request=new URLRequest(query); url_loader=new URLLoader ; url_loader.addEventListener(Event.COMPLETE,activityGiven); url_loader.load(url_request); } public function activityGiven(event:Event):void { var response:XML=new XML(url_loader.data); result_tf.text='Время: ' + response.time + '\nСтатус: ' + response.activity + '\nid: ' + response.id; } public function set_btnClick(e: MouseEvent):void { // создаем и выполняем запрос api=new VkApiNode(viewer_id,api_id,api_secret,false,'XML','2.0',server_url); var activity_text=text_tf.text; // текст статуса query=api.setActivity(activity_text); url_request=new URLRequest(query); url_loader=new URLLoader ; url_loader.addEventListener(Event.COMPLETE,activityBeSet); url_loader.load(url_request); } public function activityBeSet(event:Event):void { var response:XML=new XML(url_loader.data); result_tf.text='Ответ: ' + response[0]; } public function getHistory_btnClick(e: MouseEvent):void { // создаем и выполняем запрос api=new VkApiNode(viewer_id,api_id,api_secret,false,'XML','2.0',server_url); var uid=int(uid_tf.text); // id пользователя query=api.getActivityHistory(uid); url_request=new URLRequest(query); url_loader=new URLLoader ; url_loader.addEventListener(Event.COMPLETE,activityHistoryGiven); url_loader.load(url_request); } public function activityHistoryGiven(event:Event):void { var response:XML=new XML(url_loader.data); var result_text = ''; for each (var item in response.activity) { result_text = result_text + 'id: ' + item.id + '\nТекст: ' +item.text + '\n\n'; } result_tf.text=result_text; } public function deleteHistoryItem_btnClick(e: MouseEvent):void { // создаем и выполняем запрос api=new VkApiNode(viewer_id,api_id,api_secret,false,'XML','2.0',server_url); var aid=aid_tf.text; // id статуса query=api.deleteActivityHistoryItem(aid); url_request=new URLRequest(query); url_loader=new URLLoader ; url_loader.addEventListener(Event.COMPLETE,historyItemDeleted); url_loader.load(url_request); } public function historyItemDeleted(event:Event):void { var response:XML=new XML(url_loader.data); result_tf.text='Ответ: ' + response[0]; } public function getNews_btnClick(e: MouseEvent):void { // создаем и выполняем запрос api=new VkApiNode(viewer_id,api_id,api_secret,false,'XML','2.0',server_url); query=api.getActivityNews(); url_request=new URLRequest(query); url_loader=new URLLoader ; url_loader.addEventListener(Event.COMPLETE,newsGiven); url_loader.load(url_request); } public function newsGiven(event:Event):void { var response:XML=new XML(url_loader.data); var result_text = ''; for each (var item in response.text) { result_text = result_text + item + '\n\n'; } result_tf.text=result_text; } }}
3. Подключаем Main.as к fla
Если не знаете как, то посмотрите как это было сделано в этом уроке http://flapps.ru/forum/topic3.html
4. Загружаем приложение в контакт
Редактирование -> Настройки -> Обновление SWF-приложения -> Обзор -> Начать загрузку.
- Если приложение выключено, то включаем
Редактирование -> Настройки -> Состояние -> Приложение включено и видно всем.
- Если выключен контейнер, то включаем
Редактирование -> Настройки -> Flash-контейнер -> Без отступов и элементов управления.
5. Всё готово!
Исходник http://flapps.ru/example/activity.rar