notes.get

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ruzofmo
Сообщения: 90
Зарегистрирован: 10 сен 2011, 20:02

notes.get

Сообщение Ruzofmo »

Код: Выделить всё

public function Main()        {            var flashVars:Object = stage.loaderInfo.parameters as Object;            // тут данные для локального тестирования            api_id = flashVars['api_id'];            viewer_id = flashVars['viewer_id'];            sid = flashVars['sid'];            secret = flashVars['secret'];            var VK:APIConnection = new APIConnection(flashVars);            VK.api('notes.get', {uid:viewer_id}, noteLoaded, onError);        }        private function noteLoaded(data: Object):void        {            frCount = data.length;            result_tf.text = 'Количество заметок: ' + frCount + "\n";            for (var i=0; i<frCount; i++)            {                result_tf.appendText(data[i].nid + "\n");            }        }        private function onError(data: Object):void        {            result_tf.text = data.error_msg;        }
Всегда выдаёт ошибку:
ReferenceError: Error #1069: Не удалось найти свойство nid в Number; отсутствует значение по умолчанию.
at Main/noteLoaded()
at Function/<anonymous>()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: notes.get

Сообщение Александр »

Ruzofmo

Код: Выделить всё

frCount = data.length;result_tf.text = 'Количество заметок: ' + frCount + "\n";
Это зачем?
Читай документацию по методу http://vkontakte.ru/developers.php?oid=-1&p=notes.get

Пример ответа в формате JSON

Код: Выделить всё

{"response": [3, {        "nid": "9623697",        "uid": "1",        "title": "Лучшее решение",        "text": "Лучшее решение из возможных - самое простое. И наоборот.",        "date": 1261454603,        "ncom": "12"    },    {        "nid": "9588560",        "uid": "1",        "title": "Самое главное",        "text": "Самое главное - уметь отличать самое главное от всего остального.",        "date": 1259030866,        "ncom": "9"    }]}
Видишь там передаётся количество = 3.

Почитай про работу с JSON здесь http://flapps.ru/forum/topic673.html и в книгах по ActionScript.

И приучивай себя давать переменным логичные имена. Хранить в frCount количество заметок, как-то нелогично. Потом сам будешь путаться.
Ruzofmo
Сообщения: 90
Зарегистрирован: 10 сен 2011, 20:02

Re: notes.get

Сообщение Ruzofmo »

А как записать в переменную ответ от сервера вконтакте?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: notes.get

Сообщение Александр »

Ruzofmo
Зачем ты постоянно цитируешь сообщения с кучей текста и кодом? Достаточно кликнуть на ник пользователя, чтобы он понял, что сообщение адресовано ему. Прокручивать текст предыдущего сообщения и искать в нём твой текст - очень неудобно, и отвечать не хочется.

В переменную как обычно:

Код: Выделить всё

var perem = data;
Ruzofmo
Сообщения: 90
Зарегистрирован: 10 сен 2011, 20:02

Re: notes.get

Сообщение Ruzofmo »

Александр,

Код: Выделить всё

var json_str = data;         var json_data:Array=JSON.decode(json_str);
Ошибка:
Error #1034: Ошибка типа Coercion: невозможно преобразовать 48 в Array.
48 - количество заметок.
Из-за чего может возникнуть эта ошибка?
Ruzofmo
Сообщения: 90
Зарегистрирован: 10 сен 2011, 20:02

Re: notes.get

Сообщение Ruzofmo »

Код: Выделить всё

var json_str = data[1]; 
Тоже не помогает.
Аватара пользователя
psix55
Модератор
Модератор
Сообщения: 1015
Зарегистрирован: 09 дек 2009, 17:16

Re: notes.get

Сообщение psix55 »

Ruzofmo писал(а):Александр,

Код: Выделить всё

var json_data:Array=JSON.decode(json_str);
Ошибка:
Error #1034: Ошибка типа Coercion: невозможно преобразовать 48 в Array.
48 - количество заметок.
Из-за чего может возникнуть эта ошибка?
Из-за того, что ты преобразуешь число в массив.
Надо как минимум так:

Код: Выделить всё

var json_data:Array=[JSON.decode(json_str)];
А вообще надо сначала обработать ответ, а потом уже пихать в массив.
Ruzofmo
Сообщения: 90
Зарегистрирован: 10 сен 2011, 20:02

Re: notes.get

Сообщение Ruzofmo »

Из-за того, что ты преобразуешь число в массив.
Надо как минимум так:

Код: Выделить всё

var json_data:Array=[JSON.decode(json_str)];
А вообще надо сначала обработать ответ, а потом уже пихать в массив.
Так оно выдает число 48.
А как сделать так что бы декодировалась 2 часть?(Сама информация о заметках).
Может есть какой-нибудь урок по обработке запроса перед декодированием?
Аватара пользователя
psix55
Модератор
Модератор
Сообщения: 1015
Зарегистрирован: 09 дек 2009, 17:16

Re: notes.get

Сообщение psix55 »

Я и написал, что сначала лучше обработать ответ.
Может есть какой-нибудь урок по обработке запроса перед декодированием?
Попробуй тут найти: http://flapps.ru/forum/topic673.html
Ruzofmo
Сообщения: 90
Зарегистрирован: 10 сен 2011, 20:02

Re: notes.get

Сообщение Ruzofmo »

psix55 писал(а):Я и написал, что сначала лучше обработать ответ.
Там уже готовая JSON строка. А вот так обработать так , что бы раскодировалось не 48 ,а остальные данные?
Ответить