Flash-JS-VK-API-Bridge - посредник для Flash приложений, встроенных в iFrame. Использование данного посредника дает возможность обращаться к методам API соц. сети Вконтакте из AS3.
Пример приложения, использующий этот посредник==> https://vk.com/app6213458
Плюсы работы через данного посредника:
Краткое описание: Принцип работы посредника построен на вызове функции JS из Flash'a и наоборот. Это достигается за счёт методов класса ExternalInterface. В свою очередь, JS взаимодействуют с JavaScript SDK, которую предоставляет социальная сеть. В html страницу объект-flash встраивается по средствам swfObject.
Подключите к вашему проекту необходимые классы:
//as code
import ExternalFlash.APIConnection;
import ExternalFlash.events.CustomEvent;Если Вам так же необходимо создания кнопок, со стилем социальной сети, не забудьте подключить данный класс:
//as code
import ExternalFlash.ui.VKButtonСоздайте экземпляр класса APIConnection, проверьте готов ли посредник к работе. В случае если посредник еще не готов, подпишитесь на событие CustomEvent.ON_EI_INIT_END. Начинайте работать с посредником только после того, как он будет готов к работе. В противном случае, он может работать не корректно.
Пример создания экземпляра, с проверкой на инициализацию:
//as code
//Создаем экземпляр класса APIConnection
_VK = new APIConnection();
//Перед тем, как делать запросы, добавлять слушатели и т.д. Необходимо обязательно убедится, что посредник уже инициализировался.
//Иначе, посредник будет работать некорректно. Информация о инициализации может быть трех типов:
if(_VK.eiConnectStatus == "WORKING"){
//Посредник инциализировался, все работает. Только теперь можем работать с API
//Тут можно вызывать функцию, которая начнет работать с методами API
} else if(_VK.eiConnectStatus == "NOT_WORK"){
//Посредник не работает по какой либо причине.Это окончательный статус, он не изменится. Причина непоказывается, но если вы захотите сделать ее вывод, Вы можете посмотреть в классе ExtIntClass список причин, и выводить их оттуда
} else if(_VK.eiConnectStatus == "CONNECTION"){
//Посредник еще не загрузился. В этом случае надо поставить слушатель на экз. класса и слушать событие CustomEvent.ON_EI_INIT_END
//Событие приходит вместе с параметром connectState. Может быть WORKING - значить посредник инициализировался. NOT_WORK - посредник не будет работать.
_VK.addEventListener(CustomEvent.ON_EI_INIT_END, function (event:CustomEvent){
if(event.params.connectState == "WORKING"){
//Посредник инциализировался, все работает. Только теперь можем работать с API
//Тут можно вызывать функцию, которая начнет работать с методами API
}else{
//Посредник не работает
}
_VK.removeEventListener(CustomEvent.ON_EI_INIT_END, arguments.callee);
})
}Статус соединения _VK.eiConnectStatus может быть трех типов:
Параметры события CustomEvent.ON_EI_INIT_END:
Это событие может произойти только один раз - при инициализации. Поэтому слушать его, кроме как в этом случае, не надо.
Данные, полученные при запуске приложения, передаются во flash через flashVars. Получить их можно также, как при использовании Flash SDK.
//as code
var _flashVars: Object = stage.loaderInfo.parameters as Object;Эти параметры будут доступны сразу после запуска приложения. Чтобы ими воспользоваться, необязательно дожидаться инициалии посредника.
Все названия методов, которые использовались в предоставляемом соц. сетью Flash SDK, такие же, как используются в данном посреднике.
Таким образом, при переходе с Flash SDK, работы с экземпляром класса данного посредника, будет происходить так же.
Что необходимо учесть при переходе:
//js code
}, '5.68'); //string 9Вероятно, это решит проблему не корректной работы приложения, и не будет необходимости, изменять в нем названия/аргументы методов API.
В коде достаточно много комментариев - это на случай, если кто-то захочет понять, как работает этот посредник, как происходит инициализация и другое.
В любом случае, понимать как он работает изнутри, необязательно, Вы можете скачать исходники и использовать их своем проекте, без изучения устройства посредника.