ActionScript 3.0 (Adobe Flash CS4)
Когда-то давно пробовал работать с переменными, решил оформить код для урока и выложить здесь. Может быть кому-нибудь пригодится.
Приложение записывает значение в переменную, получает значение из одной переменной, получает значения сразу нескольких переменных.
Для работы с методами ВКонтакте API используется библиотека VkApi. Находится в архиве с исходником.
Описание используемых методов
getVariable
Возвращает значение переменной, номер которой задан в параметре key (0-4095).
key - Ключ от 0 до 4095, идентификатор переменной.
getVariables
Возвращает список значений диапазона переменных, заданного с помощью входных параметров key (номер первой переменной) и count (число переменных). Данный метод позволяет получить за один запрос до 32 переменных.
key - Ключ от 0 до 4095, идентификатор первой переменной.
count - Значение от 1 до 32, количество переменных.
putVariable
Помещает в переменную, номер которой задан в параметре key (0-4095), значение, переданное в параметре value (строка в utf-8, не более 255 байтов).
key - Ключ от 0 до 4095, идентификатор переменной.
value - Значение, которое нужно записать в переменную. Строка в utf-8, не более 255 байтов
При обращении к переменным user_vars с ключами от 1280 до 1791, необходимо в параметрах передать user_id - id пользователя, переменные которого считываются.
Создание приложения
1. Добавляем на сцену:
Текстовые поля с именами:
- var_tf (поле ввода записываемого значения)
- result_tf (поле с результатами)
Кнопки с именами:
- put_btn
- get1_btn
- get2_btn
2. Создаём Main.as и пишем код:
Код: Выделить всё
/* http://flapps.ru/forum/ - форум о создании флеш приложений на основе ВКонтакте API */package { import flash.net.URLLoader; import flash.net.URLRequest; import flash.display.*; import flash.events.*; import vk.VkApiNode; public class Main extends Sprite { public var api_id:Number=1727522;// ID приложения public var api_secret:String="1gqE8m34rb";// секретный ключ public var api:VkApiNode; public var url_loader:URLLoader; public var url_request:URLRequest; public var query:String; public var viewer_id:Number; public var server_url:String; public function Main():void { var params:Object=LoaderInfo(root.loaderInfo).parameters; viewer_id=params['viewer_id']; // определяем адрес сервиса API (vkontakte.ru или vk.com) server_url=params['api_url']+'?'; api=new VkApiNode(viewer_id,api_id,api_secret,false,'XML','2.0',server_url); put_btn.addEventListener(MouseEvent.CLICK,putVariable); get1_btn.addEventListener(MouseEvent.CLICK,getVariable); get2_btn.addEventListener(MouseEvent.CLICK,getVariables); } public function putVariable(e:MouseEvent):void { // записываем значение из поля var_tf в переменую 1040 query=api.putVariable(1040,var_tf.text); url_request=new URLRequest(query); url_loader=new URLLoader ; url_loader.addEventListener(Event.COMPLETE,onLoaded1); url_loader.load(url_request); } public function getVariable(e:MouseEvent):void { // получаем значение из переменной 1040 query=api.getVariable(1040); url_request=new URLRequest(query); url_loader=new URLLoader ; url_loader.addEventListener(Event.COMPLETE,onLoaded2); url_loader.load(url_request); } public function getVariables(e:MouseEvent):void { // получаем значения из 10 переменных, начиная с переменной 1040 query=api.getVariables(1040,10); url_request=new URLRequest(query); url_loader=new URLLoader ; url_loader.addEventListener(Event.COMPLETE,onLoaded3); url_loader.load(url_request); } // добавлено private function onLoaded1(event:Event):void { var response=XML(url_loader.data); if (response.error_code<=0) {// если нет сообщения об ошибке result_tf.text='Добавлено'; } else { result_tf.text='Ошибка '+response..error_msg; } } // получено значение 1 переменной private function onLoaded2(event:Event):void { var response=XML(url_loader.data); result_tf.text=response.toString(); } // получено значение нескольких переменных private function onLoaded3(event:Event):void { var response=XML(url_loader.data); result_tf.text=''; for each (var item in response.var_info) { result_tf.appendText('key: ' + item.key + '\nvalue: ' +item.value + '\n\n'); } } }}
3. Подключаем Main.as к fla
Если не знаете как, то посмотрите как это было сделано в этом уроке http://flapps.ru/forum/topic3.html
4. Загружаем приложение в контакт
Редактирование -> Настройки -> Обновление SWF-приложения -> Обзор -> Начать загрузку.
- Если приложение выключено, то включаем
Редактирование -> Настройки -> Состояние -> Приложение включено и видно всем.
- Если включен контейнер, то выключаем
Редактирование -> Настройки -> Flash-контейнер -> Без использования контейнера.
5. Всё готово!
Исходник http://flapps.ru/example/variables.rar