Не работают методы friends

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

Не работают методы friends

Сообщение Exact »

Не работают методы. Проверяю friends.getAppUsers, но и другие дают молчание. Права на работу со списком друзей - получены. Более того, класс, который грузится первым (после прелоадера) нормально получает список. А если нужно получить список в других классах - фиг. Постинг на стену работает, а получить список не могу. Метод вызывается, а потом ни ответа ни ошибки... Ах, да, flashVars данными заполняется, во всяком случае viewer_id - норм выводится. Вот код:

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

package com.table.friends {    import com.button.comment.ButSearch;    import com.CreateElement;    import com.vk.APIConnection;    import fl.data.DataProvider;    import fl.controls.ComboBox;    import fl.controls.TextInput;    import flash.display.MovieClip;    import flash.display.Sprite;    import flash.events.*;    import flash.text.*;        public class FriendsShell extends MovieClip    {                public var VK:APIConnection;        public var flashVars:Object;        public var myFriendsText:TextField = create.newText("Текст:", 13, 0, 0);                        public function FriendsShell()         {            super();            addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);        }                private function onAddedToStage(event : Event):void        {            removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);            flashVars = stage.loaderInfo.parameters as Object;            VK = new APIConnection(flashVars);                        //VK.api('wall.post', { message: "Текст сообщения"});            myFriendsText.text = flashVars["viewer_id"];            VK.api('friends.getAppUsers', { }, onFrienddd,onError);            function onFrienddd(frApp: Object):void            {                myFriendsText.text = "работает";            }            function onError(data: Object):void            {                myFriendsText.text = data.error_msg;            }            addChild(myFriendsText);                }    } }
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Не работают методы friends

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

Exact писал(а):Метод вызывается, а потом ни ответа ни ошибки...
Вызывается в коде или ты видишь что идёт обращение к серверу? Смотри с помощью Charles.
Exact
Сообщения: 14
Зарегистрирован: 02 сен 2011, 15:14

Re: Не работают методы friends

Сообщение Exact »

Используя программу выяснил, что запрос идёт не к тому файлу. Точнее, в запросах на вконтакте al_search.php прописан.. и запрос другой: get_top_friends и get_pages... Вместо нужных.. А первый после лоадера класс - создаёт нормальные запросы. К файлу api.php. В чём может быть проблема и как это исправитЬ?
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: Не работают методы friends

Сообщение sanych_dv »

Зачем вы здесь обращаетесь к суперклассу: super() ?
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: Не работают методы friends

Сообщение sanych_dv »

Также не совсем понимаю, зачем вы в новом классе создаете новый экземпляр APIConnection, когда можно обратиться к уже созданному ранее?
Exact
Сообщения: 14
Зарегистрирован: 02 сен 2011, 15:14

Re: Не работают методы friends

Сообщение Exact »

Зачем вы здесь обращаетесь к суперклассу: super() ?
Я до as3 в java работал, а там объявление конструктора суперкласса в конструкторе подкласса - норма. И если можно, правило хорошего тона.
Также не совсем понимаю, зачем вы в новом классе создаете новый экземпляр APIConnection, когда можно обратиться к уже созданному ранее?
Просвятите, как? Я не в курсе, ребят...
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: Не работают методы friends

Сообщение sanych_dv »

В AS3 нет особой необходимости обращаться к конструктору суперкласса, если вы не собираетесь изменять его методы. В данном случае класс MovieClip - не более чем контейнер и такой необходимости нет.

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

  public function FriendsShell()        {            if (stage)                onAddedToStage();            else                addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);        }               private function onAddedToStage(event : Event = null):void        {      removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);...} 
Что касается вызова APIConnection из базового класса - это азы, изучайте взаимодействие классов, без этого двигаться дальше бесполезно. Нет смысла писать здесь готовый рецепт.
Exact
Сообщения: 14
Зарегистрирован: 02 сен 2011, 15:14

Re: Не работают методы friends

Сообщение Exact »

Что касается вызова APIConnection из базового класса - это азы, изучайте взаимодействие классов, без этого двигаться дальше бесполезно. Нет смысла писать здесь готовый рецепт.
Почему же нет смысла? Если это азы, значит это элементарно... Или дайте хотя бы ссылку где прочитать о подобном взаимодействии.. Через parent? так он имеет свойство только лишь экранного объекта..
Exact
Сообщения: 14
Зарегистрирован: 02 сен 2011, 15:14

Re: Не работают методы friends

Сообщение Exact »

sanych_dv Спасибо огромное за неоценимую помощь!
Ответить