IFlash - IFrame-посредник для Flash-приложений.
Зачем нужен IFlash:
- если приложение написано на ActionScript 2.0 и нет желания адаптировать Flash-посредник под него;
- если не хватает возможностей Flash-посредника;
- если хотите добавить HTML-контент к Flash-приложению;
- если хотите использовать виджеты в приложении.
-
Подключите к Вашему проекту класс
vk.APIConnection
(илиAPIConnection
для AS2 версии) -
Создайте экземпляр этого класса:
// var VK:APIConnection = new APIConnection(domain:String = '*', onConnectionInit:Function = null); // где: // domain - домен приложения, на котором будет размещена IFrame-обертка, // onConnectionInit - функция, вызываемая в момент, когда IFlash готов к работе, в ней задаются обработчики событий. // ActionScript 2.0 var VK:APIConnection = new APIConnection('vk.asmico.ru', function(VK) { VK.onLocationChanged = function(l:String) { VK.debug(l); }; }); // ActionScript 3.0 var VK:APIConnection = new APIConnection('vk.asmico.ru', initListeners); ... function initListeners(e:IFlashEvent): void { var VK = e.VK; VK.addEventListener('onLocationChanged', function(e:CustomEvent):void { VK.debug(e.params[0]); }); }
-
Если Вы не хотите добавлять HTML-контент и/или виджеты к приложению, то переходите к пункту 7
-
Создайте файл
index.htm
с необходимым HTML-контентом (пример такого файла -html/index_as2.htm
) -
В тело страницы добавьте
DIV
элемент с уникальным id в месте, где будет расположено Flash-приложение:<div id="flash_container"></div>
-
В тег
HEAD
добавьте следующий код:<script type="text/javascript" src="http://vkontakte.ru/js/api/xd_connection.js"></script> <script type="text/javascript" src="api_connection.min.js"></script> <script type="text/javascript"> IFlash.init('flash_container', 607, 500); </script>
-
Разместите на своем сервере файлы
index.htm
иapi_connection.min.js
из каталога/html
-
Загрузите приложение на сервер ВКонтакте, используя дополнительные SWF-файлы
-
Выберите тип приложения IFrame. В поле "Адрес IFrame" пропишите адрес файла
index.htm
, по которому он доступен из сети Интернет, в параметреflash_url
укажите ссылку на загруженное приложение (безhttp://
):http://vk.asmico.ru/iflash/index.htm?flash_url=cs5937.vkontakte.ru/u1661530/6c91ee72244c9e.zip
-
Если Вы используете IFlash без HTML-контента, то в поле "Размер IFrame" обязательно укажите размер приложения
После подключения файла api_connection.min.js
становится доступным глобальный объект IFlash
, который имеет следующие свойства и методы:
-
IFlash.flashvars
- объектflashvars
-
IFlash.init([options])
- подготавливает IFlash к работе без HTML-контента.options
может содержать следующие поля:url
- адрес Flash-приложения (если не используетсяflash_url
)wmode
- Flash-параметр wmode (по умолчаниюopaque
)
-
IFlash.init(container[, width, height][, options])
- подготавливает IFlash к работе, позволяя добавлять к приложению HTML-контент. Параметрcontainer
должен содержать id элемента, в который будет вставлен Flash-ролик. Параметрыwidth
иheight
обязательны, их можно передать непосредственно в параметрах или в объектеoptions
.<script type="text/javascript"> // Варианты инициализации IFlash без HTML-контента IFlash.init(); IFlash.init({wmode: 'window'}); // Варианты инициализации IFlash с HTML-контентом IFlash.init('flash_container', {width: 607, height: 500}); IFlash.init('flash_container', 607, 500, {wmode: 'window'}); </script>
-
IFlash.resizeFlash(width, height)
- изменяет размеры Flash-приложения. При этом в приложении сработает событиеonWindowResized
. Обратите внимание, что размеры IFrame-приложения изменены не будут, при необходимости это нужно сделать вручную
Примеры приложений, использующих IFlash: на ActionScript 2.0, на ActionScript 3.0.
Исходные коды к ним в папках /as2
и /as3
соответственно, IFrame-обертка в папке /html
(index_as2.htm
, index_as3.htm
соответственно).
Более подробную документацию можно найти здесь.