Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Ошибка при компиляции, при вызове метода api() (http://www.flasher.ru/forum/showthread.php?t=147190)

goodguy 28.11.2010 19:06

Ошибка при компиляции, при вызове метода api()
 
Пытаюсь сделать поключение приложения к контакту (первый раз), пишу такой код:
Код AS3:

package 
{
        import flash.display.MovieClip;
        import flash.events.Event;
        import vk.APIConnection;
 
        public class VKDataProvider extends MovieClip
        {
                private var vk:APIConnection;
 
                public function VKDataProvider()
                {
                        if (stage) initialize();
                        else this.addEventListener(Event.ADDED_TO_STAGE, initialize);
 
                }       
 
                private function initialize(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, initialize);
                        testMode = true;
                        var flashVars:Object = stage.loaderInfo.parameters as Object;
                        vk = new APIConnection(flashVars);
                        txt.text = String(flashVars.viewer_id);
                        vk.api( "isAppUser", {uid: stage.loaderInfo.parameters.user_id}, onComplete, onError );
                }
 
                private function onError():void {}
                private function onComplete():void{}
        }
}

Компилирую, выдает такую ошибку:

Цитата:

ReferenceError: Error #1065: Переменная vk::api не определена.
at VKDataProvider/initialize()
at VKDataProvider()
В чем тут может быть проблема? :confused:
Почему он метод считает переменной?

LOS2008 01.12.2010 02:05

пример от самих ВК смотрели?

вот кусок рабочий
Код AS3:

import vk.APIConnection;
import vk.events.*;
 
...
 
var VK:APIConnection = new APIConnection(flashVars);
 
// Example of API request
VK.api('getProfiles', { uids: flashVars['viewer_id'] }, fetchUserInfo, onApiRequestFail);


wolhw 01.12.2010 11:37

будет определена когда залить приложение в контакт

goodguy 01.12.2010 11:53

Блин, туплю :D . С этим понял, спасибо.

Но теперь выдает такую ошибку:

Цитата:

Error opening URL 'http://api.vkontakte.ru/api.php'
т.е. все время выполняется вторая функция

При загрузке вконтакте, ничего не меняется

Цитата:

будет определена когда залить приложение в контакт
Нет, не будет.

Добавлено через 3 часа 43 минуты
Может кто-нибудь дать пример класса, в котором этот метод (VK.api) работает нормально?

Что-то я нифига не пойму в этой убогой документации контакта. Уже целый день сижу с этой хренью, так и не получилось избавиться от ошибки :(

LOS2008 01.12.2010 21:12

1. Работающий пример лежит в описании к APIConnection.

2. По поводу 'http://api.vkontakte.ru/api.php' у самого вопрос.

Взял пример приложения, использующего Flash-посредник. В Flashdevelop-е работает, но тот же самый код в FlashIDE на VK.api(...) вызывает ошибку:

Attempting to launch and connect to Player using URL F:\Projects\...\develop_ide.swf

Ошибка: Запрос ресурса на http://api.vkontakte.ru/api.php источника запроса из file:///F|/Projects/.../develop%5Fide.swf отклонен из-за отсутствия разрешений в файле политики.

*** Нарушение безопасности изолированной среды ***
Подключение к http://api.vkontakte.ru/api.php прервано - нет разрешения от file:///F|/Projects/.../develop%5Fide.swf

VK.api возвращает "Security error occured"

goodguy 01.12.2010 21:39

Цитата:

Ошибка: Запрос ресурса на http://api.vkontakte.ru/api.php источника запроса из file:///F|/Projects/.../develop%5Fide.swf отклонен из-за отсутствия разрешений в файле политики.
Я заливаю файл в контакт, и не работает он уже из контакта, так что никаких нарушений изолированной среды тут нет. При этом запрос все равно не происходит.

Цитата:

1. Работающий пример лежит в описании к APIConnection.
Если эту дрянь можно назвать примером. В нем нет ровным счетом ничего из того, что меня интересует. А интересует вызов функций, таких как isAppUser, getProfiles и т.д.

Я бы не спрашивал, если бы этот пример был нормальным.

Bgg 01.12.2010 22:25

Цитата:

Сообщение от goodguy (Сообщение 954079)
Если эту дрянь можно назвать примером. В нем нет ровным счетом ничего из того, что меня интересует. А интересует вызов функций, таких как isAppUser, getProfiles и т.д.

Я бы не спрашивал, если бы этот пример был нормальным.

Там должен быть метод, который принимает параметры запроса и callback результата запроса.
И все отлично работает примерно следующим образом:
Код AS3:

apiConnection.api("photos.getAlbums", { uid:uid, format:"JSON", test_mode:_test_mode}, parseGetAlbumsRequest);


goodguy 01.12.2010 23:07

ну так это у меня есть.

а как должен обрабатываться запрос? К примеру, что нужно написать в этом медоде?
Код AS3:

parseGetAlbumsRequest

Как я понимаю, реультатом запроса должен быть объект, но если я, скажем, пишу эту функцию так:
Код AS3:

private function parseGetAlbumsRequest(param:Object):void 
{
      tf.text = String(param);
}

Она не вызывается. Вместо этого срабатывает другая, обрабатывающая сообщение об ошибке подключения

Bgg 01.12.2010 23:23

Цитата:

Сообщение от goodguy (Сообщение 954106)
ну так это у меня есть.

а как должен обрабатываться запрос? К примеру, что нужно написать в этом медоде?

Смотря что вам нужно, у меня примерно так:
Код AS3:

private function parseGetAlbumsRequest(albums:Object):void 
{
        var newAlbums:Vector.<Album> = new Vector.<Album>();//Album - мой класс для работы с альбомами
 
        for each (var item:Object in albums)
        {
                newAlbums.push(new Album(item.aid, item.thumb_id, item.owner_id, item.title));
        }
        //альбом получен
}

Цитата:

Сообщение от goodguy (Сообщение 954106)
Она не вызывается. Вместо этого срабатывает другая, обрабатывающая сообщение об ошибке подключения

Что за ошибка подключения?

LOS2008 02.12.2010 03:07

Цитата:

Сообщение от goodguy (Сообщение 954079)
Я заливаю файл в контакт, и не работает он уже из контакта, так что никаких нарушений изолированной среды тут нет. При этом запрос все равно не происходит.

Так залейте тот что 100% работает - из архива примера. Косяк может быть в настройках.


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

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