Подстановка ссылки для баннера из HTML-кода

Заказчик задал мне задачку — как считать статистику по кликам на флеш баннеры, если все клиенты присылают баннеры с внедренной кнопкой и жестко вписаной в коде ссылкой. Приходится либо забивать на подсчет кликов, либо просить клиентов переделывать баннер и вставлять ссылку с переходом на скрипт подсчета. А если попался редкий толковый клиент — просить переделать баннер чтобы он брал ссылку из flashvars (т. е. из параметров, значения которых можно указать в HTML-коде).


Пытливый ум не мог оставить это без ответа. А ответ на поверхности — сделать флешку, которая бы загружала в себя баннер, а на него клала кнопку со ссылкой. И урл к баннеру, и ссылку передавать в тех же flashvars. Я не мог поверить что никто ничего подобного еще не сделал. Однако, погуглив на досуге, ничего похожего найти не удалось. Удивлен был настолько, что до сих пор думаю что плохо искал и где-то лежит нужная флешечка…
Итак, вспоминаю что когда-то давно писал на флеше приложения для видеочатов. Тогда это писалось еще в Macromedia Flash. Поискав, в чем же я могу сделать флешку и желательно под Ubuntu нашел Flex. Заодно расстроился что Flex Builder’а под линукс делать уже не будут. Если кто-то поделится каким-нибудь инструментом для флеша под линуксом — буду рад. Тем не менее, Flex SDK работает и на линуксе, так что, потратив полдня на воспоминания и изучение найденных примеров, получил как раз то, что мне было нужно.
В итоге получился достаточно короткий ActionScript-файлик, удачно компилирующийся в не менее мелкую флешку (1 378 байт). Все выложено на code.google.com — code.google.com/p/b-loader/. Там же можно посмотреть примеры использования. Вариант с применением swfobject.js покажу прямо здесь:

<div id="id-of-container">Alternative content</div>
<script type="text/javascript">
swfobject.embedSWF("/path/to/bloader.swf", "id-of-container", "width-of-banner", "height-of-banner", "required-version-of-flash-player", "expressInstall.swf", {src: "/path/to/banner.sfw", href: "http://www.onclick.url"});
</script>

* This source code was highlighted with Source Code Highlighter.

На этом все. Надеюсь, это кому-нибудь пригодится, а опытных Flash/Flex-девелоперов попрошу оценить и указать на недочеты.

http://habrahabr.ru/sandbox/24014/

Share