Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.02.2012, 14:20
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 1  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
По умолчанию Работа с ВКонтактовским APIConnection через метод api

Всем доброго дня!

Скачал APIConnection с ВКонтакта. Решил получить список друзей пользователя, у которых установлена игра:

Код AS3:
vkAPI.api("friends.getAppUsers",null,OnSuccess,OnError);
 
// ...
 
public function OnSuccess(_object:Object):void
{
	var array:Array=_object as Array;
	var friends:Vector.<uint>=new Vector.<uint>();
	var length=array.length;
 
	for(var i:uint=0;i<length;i++) friends.push(uint(array[i]));
}
 
public function OnError(_object:Object):void
{
	funSend(new GetFriendsAppError());
}
Это работает. А вот решил получить информацию о пользователях:

Код AS3:
var object:Object=new Object();
var ids:String=_users[0].toString();
 
for(var i:uint=1;i<_users.length;i++) ids+=","+_users[i].toString();
 
object["uids"]=ids;
object["fields"]="photo_rec";
 
vkAPI.api("users.get",object,OnSuccess,OnError);
Срабатывает OnSuccess. Но я не понимаю как из Object получить параметры друзей. Не понимаю как они там хранятся, как извлекать. Сейчас сделал вот так:

Код AS3:
public function OnSuccess(_object:Object):void
{
	var array:Array=_object as Array;
	var users:Vector.<UserDesc>=new Vector.<UserDesc>();
	var length=array.length;
 
	for(var i:uint=0;i<length;i++)
	{
		var object:Object=array[i];
		users.push(new UserDesc(uint(object["uid"]),null,String(object["photo_rec"])));
	}
}
Но данный код стопорит проигрыватель. Как правильно извлекать? Раньше я работал с сервером ВКонтакте через XML (то есть сам делал запрос и получал XML в ответ). А тут ведь всё лежит в Object. И не понимаю как там это лежит и как докопаться до каждого пользователя и каждого элемента.

И ещё, а можно ли как-то локально тестировать игру? То есть вот мне приходится каждый раз компилировать и заливать на сервер чтобы запускать из ВКонтакта. А это очень не удобно, так как нет отладки. А если запускать локально, то я не могу взаимодействовать с API ВКонтакте. Можно ли как-то это настроить? Процесс разработки ускорился бы.

Старый 22.02.2012, 19:13
olexandr вне форума Посмотреть профиль Отправить личное сообщение для olexandr Посетить домашнюю страницу olexandr Найти все сообщения от olexandr
  № 2  
Ответить с цитированием
olexandr
 
Аватар для olexandr

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
разве, в доках нету примеров этого объекта?
что мешает пропарсить весь объект и посмотреть самому?

Код AS3:
                for (var i:String in _obj)
                    trace(i + ": " + _obj[i]);
или вот такой код используется в моем логгере:

Код AS3:
        public static function logObject(obj:Object, withType:Boolean = false):void {
            recoursiveTrace(obj, withType, 0);
        }
 
 
        private static function recoursiveTrace(obj:Object, withType:Boolean, level:int):void {
            var _indent:String = '';
            for (var i:int = 0; i < level; i++)
                _indent += '  ';
 
            var _type:String = obj is Array ? 'arr' : 'obj';
            var _constructor:String = '';
 
            for (var _name:Object in obj) {
                if (withType) {
                    _constructor = obj[_name].constructor;
                    _constructor = ' [' + _constructor.split(' ')[1]
                }
 
                log(_type + ':' + level, _indent + _name + ': ' + obj[_name] + _constructor);
 
                if ((typeof obj[_name]) === 'object')
                    recoursiveTrace(obj[_name], withType, level + 1);
            }
        }
__________________
сайт, vk

Старый 22.02.2012, 19:46
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 3  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
olexandr
С первым вопросом я разобрался. А вот локально как работать? У меня не получилось.

Старый 22.02.2012, 21:49
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 4  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
открываешь страничку с игрой, копируешь из приложения flashVars, подсовываешь их APIConnection

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:07.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.