FAPI

Fundux Application Programming Interface (FAPI) - это совокупность инструментов, позволяющих интегрировать ваших флеш-приложения с флеш-порталом fundux.ru. Оффициальная документация по FAPI располагается здесь.

На данный момент FAPI передаёт во флеш-приложения через flashvars несколько переменных:

- идентификатор самого приложения (pid);

- идентификатор пользователя, который в данный момент работает с флеш-приложением (uid);

- логин текущего пользователя (ulogin);

- ссылки на аватарки пользователя (uphoto и uphotobig) и некоторые другие переменные.

Далее рассмотрим работу с этими переменными на конкретном примере. Сперва небольшое наглядное приложение на ActionScript 3.0.

Код ActionScript 3.0:

/* загружаем из flashvars id (идентификатор) проекта */ var pid:String; if (stage.loaderInfo.parameters.pid != undefined) { pid = String(stage.loaderInfo.parameters.pid); } else { pid = "unknown"; } /* загружаем из flashvars id пользователя */ var uid:String; if (stage.loaderInfo.parameters.uid != undefined) { uid = String(stage.loaderInfo.parameters.uid); if (uid=='0') { uid = "неавторизированный пользователь"; } } else { uid = "unknown"; } /* загружаем из flashvars логин пользователя */ var ulogin:String; if (stage.loaderInfo.parameters.ulogin != undefined) { ulogin = String(stage.loaderInfo.parameters.ulogin); } else { ulogin = "unknown"; } /* загружаем из flashvars ссылку на маленькую аватарку пользователя */ var uphoto:String; if (stage.loaderInfo.parameters.uphoto != undefined) { uphoto = String(stage.loaderInfo.parameters.uphoto); } else { uphoto = "unknown"; } /* загружаем из flashvars ссылку на большую аватарку пользователя */ var uphotobig:String; if (stage.loaderInfo.parameters.uphotobig != undefined) { uphotobig = String(stage.loaderInfo.parameters.uphotobig); } else { uphotobig = "unknown"; } /* собираем переменные в строку для последующего вывода на экран */ var str:String = '<b>Переменные FAPI</b><br><br>id проекта: <u><a href="http://fundux.ru/project' + pid + '" target="_blank">' + pid + '</a></u>\nid текущего пользователя: <u><a href="http://fundux.ru/user' + uid + '" target="_blank">' + uid + '</a></u>\nлогин текущего пользователя: ' + ulogin + '\nссылка на маленькую аватарку: <u><a href="' + uphoto + '" target="_blank">' + uphoto + '</a></u>\nссылка на большую аватарку: <u><a href="' + uphotobig + '" target="_blank">' + uphotobig + '</a></u><br><br>Подчёркиванием выделены ссылки.'; /* настройки форматирования текста */ var fTxt:TextFormat = new TextFormat(); fTxt.size = 12; fTxt.color = 0x333333; fTxt.font = "Verdana"; /* создаём текстовое поле и помещаем в это поле полученные ранее данные */ var myTxt:TextField = new TextField(); myTxt.width = 500; myTxt.height = 350; myTxt.multiline = true; myTxt.wordWrap = true; myTxt.htmlText = str; myTxt.setTextFormat(fTxt); addChild(myTxt); myTxt.x = 25; myTxt.y = 25;

Результат:

Для проверки работы скрипта ActionScript я воспользовался html-кодом, который имитирует работу FAPI при передаче данных через flashvars. Вот этот HTML-код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>FAPI</title> </head> <body> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400"> <param name="movie" value="fapi.swf" /> <param name="flashvars" value="pid=2882&w=550&h=400&path=/content/project/swf/swf2882.zip&uid=2909&ulogin=edapskov&uphoto=http://fundux.ru/content/user/ava/user2909_tiny.jpg&uphotobig=http://fundux.ru/content/user/ava/user2909.jpg&sig=c1bc24b559b7f661f82267b3f8956e2a&appid=swf76601"/> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="fapi.swf" width="550" height="400"> <param name="movie" value="fapi.swf" /> <param name="flashvars" value="pid=2882&w=550&h=400&path=/content/project/swf/swf2882.zip&uid=2909&ulogin=edapskov&uphoto=http://fundux.ru/content/user/ava/user2909_tiny.jpg&uphotobig=http://fundux.ru/content/user/ava/user2909.jpg&sig=c1bc24b559b7f661f82267b3f8956e2a&appid=swf76601"/> <!--<![endif]--> <a href="http://www.adobe.com/go/getflash"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Загрузить Adobe Flash Player" /></a> <!--[if !IE]>--> </object> <!--<![endif]--> </object> </body> </html>

На ActionScript 2.0 всё примерно также, но только ещё проще :-)

Код ActionScript 2.0:

/* загружаем из flashvars id проекта */ var pidVar:String; if (_root.pid != undefined) { pidVar = String(_root.pid); } else { pidVar = "unknown"; } /* загружаем из flashvars id пользователя */ var uidVar:String; if (_root.uid != undefined) { uidVar = String(_root.uid); if (uidVar == '0') { uidVar = "неавторизированный пользователь"; } } else { uidVar = "unknown"; } /* загружаем из flashvars логин пользователя */ var uloginVar:String; if (_root.ulogin != undefined) { uloginVar = String(_root.ulogin); } else { uloginVar = "unknown"; } /* загружаем из flashvars ссылку на маленькую аватарку пользователя */ var uphotoVar:String; if (_root.uphoto != undefined) { uphotoVar = String(_root.uphoto); } else { uphotoVar = "unknown"; } /* загружаем из flashvars ссылку на большую аватарку пользователя */ var uphotobigVar:String; if (_root.uphotobig != undefined) { uphotobigVar = String(_root.uphotobig); } else { uphotobigVar = "unknown"; } /* собираем переменные в строку для последующего вывода на экран */ var str:String = '<b>Переменные FAPI</b><br><br>id проекта: <u><a href="http://fundux.ru/project' + pidVar + '" target="_blank">' + pidVar + '</a></u>\nid текущего пользователя: <u><a href="http://fundux.ru/user' + uidVar + '" target="_blank">' + uidVar + '</a></u>\nлогин текущего пользователя: ' + uloginVar + '\nссылка на маленькую аватарку: <u><a href="' + uphotoVar + '" target="_blank">' + uphotoVar + '</a></u>\nссылка на большую аватарку: <u><a href="' + uphotobigVar + '" target="_blank">' + uphotobigVar + '</a></u><br><br>Подчёркиванием выделены ссылки.'; /* настройки форматирования текста */ var fTxt:TextFormat = new TextFormat(); fTxt.size = 12; fTxt.color = 0x333333; fTxt.font = "Verdana"; /* создаём текстовое поле и помещаем в это поле полученные ранее данные */ _root.createTextField("myTxt",0,25,25,500,350); myTxt.multiline = true; myTxt.wordWrap = true; myTxt.setNewTextFormat(fTxt); myTxt.html = true; myTxt.htmlText = str;

Исходники на ActionScript 2.0 (Macromedia Flash 8) и ActionScript 3.0 (Adobe Flash CS4) можно скачать здесь.

Пример, конечно, грубоватый, но работающий. Проверялся непосредственно на fundux.ru.

Дополнение

Для тестирования работы флеш-приложения с FAPI можно использовать get-запросы (спасибо за напоминание Back_UP-у). То есть обращаемся к нашему тестируемому флеш-ролику примерно так:

fapi.swf?pid=2882&w=550&h=400&path=/content/project/swf/swf2882.zip&uid=2909&ulogin=edapskov&uphoto=http://fundux.ru/content/user/ava/user2909_tiny.jpg&uphotobig=http://fundux.ru/content/user/ava/user2909.jpg&sig=c1bc24b559b7f661f82267b3f8956e2a&appid=swf76601

где fapi.swf - это наше приложение, а после вопросительного знака идут данные в виде пар имя=значение, разделённые знаком амперсанд («&»).

Пример прилагается.

Автор: admin

Дата добавления: 2011-08-31

Просмотров: 2639

Рейтинг поста: +6-

Правила перепечатки

Социальные закладки:
Комментарии:
К данной заметке комментариев пока нет. Ваш комментарий может стать первым.
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика