<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Чудо{вищные} заметки &#187; flash</title>
	<atom:link href="http://miracle.rpz.name/tag/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://miracle.rpz.name</link>
	<description>Sorry for my terrible english. My native language is PHP.</description>
	<lastBuildDate>Thu, 12 Jan 2012 20:42:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19719</generator>
		<item>
		<title>Встаньте в очередь!</title>
		<link>http://miracle.rpz.name/2011/04/23/sound-card-index/</link>
		<comments>http://miracle.rpz.name/2011/04/23/sound-card-index/#comments</comments>
		<pubDate>Sat, 23 Apr 2011 13:27:57 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=466</guid>
		<description><![CDATA[Встроенная камера ноутбука уже давненько определялась &#34;через раз&#34;, был выработан целый шаманский обряд для её включения, но видимо я чем-то прогневил Великого Байта и последние месяцы камера совсем, что называется &#34;отвалилась&#34;. Поэтому &#34;случайно&#34; посетив большой магазин с кучей техники, &#34;случайно&#34; же приобрёл usb-вебкамеру. Вопреки опасениям камера определилась и заработала (в skype) сразу же, без каких-либо [...]]]></description>
			<content:encoded><![CDATA[<p>Встроенная камера ноутбука уже давненько определялась &quot;через раз&quot;, был выработан целый шаманский обряд для её включения, но видимо я чем-то прогневил Великого Байта и последние месяцы камера совсем, что называется &quot;отвалилась&quot;. Поэтому &quot;случайно&quot; посетив большой магазин с кучей техники, &quot;случайно&quot; же приобрёл usb-вебкамеру. Вопреки опасениям камера определилась и заработала (в skype) сразу же, без каких-либо танцев с драйверами, настройками, поиском anus-ware решений и т.п. дребеденью непременно сопровождающей подключение &laquo;любого&raquo; периферийного устройства в linux. Это не может не радовать!</p>
<p>После перезагрузки вдруг перестал работать звук в flash. Недлительное гугление рассказало о какой-то <em>libflashsupport</em>, которая немедленно поможет справиться с недугом, но внутренний голос пробасил что-то вроде &laquo;ты же не менял никаких настроек уже несколько недель&raquo;. Что характерно &#8211; звук в amarok, vlc и skype работал исправно, но было замечено что в kmix первой закладкой было устройство под названием &quot;<strong>USB Device 0x46d:0&#215;825</strong>&quot; вместо  обычной &quot;<strong>HDA Intel</strong>&quot;, которая стала второй. Запустил <strong>alsamixer</strong> &#8211; и точно, устройством по-умолчанию стала новоявленная карта, у которой даже и playback-а-то нет. Но видимых настроек у flash-player-а нет, поэтому надо было исправлять ситуацию &quot;системно&quot;.</p>
<p>Поскольку уже <span title="попытка воспроизвести звук pcmcia-ного tv-тюнера без вспомогательных программ вроде sox">имелся негативный опыт ковыряния с asound.conf(.asoundrc)</span>, то сразу стал искать способ либо переименовать устройства (вроде того, как переименовывают eth* правилами в udev) или определить порядок загрузки драйверов &#8211; лишь бы не трогать asound.</p>
<p>И способ нашёлся &#8211; в <strong>/etc/modprobe.d/sound.conf</strong> добавлены следующие правила:</p>
<pre class="c">
options snd_hda_intel index=0
options snd_usb_audio index=1
</pre>
<p>После перезагрузки карты выстроились в порядке живой очереди:</p>
<pre class="c">
$ cat /proc/asound/cards
 0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xa5100000 irq 41
 1 [U0x46d0x825    ]: USB-Audio - USB Device 0x46d:0x825
                      USB Device 0x46d:0x825 at usb-0000:00:1d.7-5.4, high speed
</pre>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2011/04/23/sound-card-index/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lj-tagcloud</title>
		<link>http://miracle.rpz.name/2009/02/05/lj-tagcloud/</link>
		<comments>http://miracle.rpz.name/2009/02/05/lj-tagcloud/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 01:51:14 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[lj]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=204</guid>
		<description><![CDATA[Сделал вот такой смешной tag cloud для ЖЖ-истов. На картинке не разобрать что это и как этим пользоваться, но пройдя по ссылке можно узреть как это выглядит вживую. За основу взят флеш-ролик от чудо-плагина для WP от Roy Tanck Вы можете использовать это так, как вам заблагорассудится &#8211; вставлять в жж, просто крутить облачко до [...]]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://bayandb.org/tagcloud/"><img src="http://miracle.rpz.name/shared/2009/tagcloud.png" align="right"></a><br />
Сделал вот такой <a href="http://bayandb.org/tagcloud/">смешной tag cloud для ЖЖ-истов</a>. На картинке не разобрать что это и как этим пользоваться, но пройдя по ссылке можно узреть как это выглядит вживую.</p>
<p>
За основу взят флеш-ролик от <a href="http://www.roytanck.com/2008/05/19/how-to-repurpose-my-tag-cloud-flash-movie/"> чудо-плагина для WP</a> от <a href="http://www.roytanck.com/">Roy Tanck</a>
</p>
<p>
Вы можете использовать это так, как вам заблагорассудится &#8211; вставлять в жж, просто крутить облачко до умопомрачения или вообще забыть эту чудо{вищную} поделку как страшный сон.</p>
<p>Сделано just for fun, поэтому все спасибы и пожелания можно оставить в комментариях, а все претензии &#8211; в газете &#8220;Гудок&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2009/02/05/lj-tagcloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross Domain XMLHttpRequest</title>
		<link>http://miracle.rpz.name/2008/10/03/crossdomain-xhr-with-flash/</link>
		<comments>http://miracle.rpz.name/2008/10/03/crossdomain-xhr-with-flash/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 21:50:52 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=116</guid>
		<description><![CDATA[Задачи обмена информацией ставятся и успешно решаются каждый день. Но обмениваться можно по-разному. Кто-то дарит удобоваримый доступ к своей базе посредством распространённых обменных форматов (xml, csv, json, lisiy_chert), кто-то реализует собственные API, а кто-то идёт другими путями. Моя задача состояла в следующем &#8211; на ресурсах-сателитах необходимо разместить сложную форму. &#8220;Сложность&#8221; формы заключается в том, что [...]]]></description>
			<content:encoded><![CDATA[<p>Задачи обмена информацией ставятся и успешно решаются каждый день. Но обмениваться можно по-разному. Кто-то дарит удобоваримый доступ к своей базе посредством распространённых обменных форматов (xml, csv, json, lisiy_chert), кто-то реализует собственные API, а кто-то идёт другими путями.</p>
<p>Моя задача состояла в следующем &#8211; на ресурсах-сателитах необходимо разместить сложную форму. &#8220;Сложность&#8221; формы заключается в том, что данные подгружаются с главного ресурса и не могут быть загружены единовременно(при загрузке ресурса) или доставлены на ресурс-сателит заранее (так-так данных очень много и они достаточно быстро устаревают). Всевозможные API для доступа к информации основного ресурса в настоящий момент разрабатывать нецелесообразно, поэтому было решено для сателитов предоставлять некий готовый комплекс (аля plug-n-play).</p>
<blockquote><p>
Ещё до начала разработки я тщательно изучил уже имеющиеся механизмы для межсайтового обмена данными. Первым и самым перспективным был вариант использования flash-плеера, но единственный вменяемый пример <a href="http://blog.monstuff.com/archives/000294.html">FlashXmlHttpRequest</a> был только лишь примером, а не законченным куском кода, которым бы можно было воспользоваться. <a href="http://jquery.com/">jQuery</a> на тот момент даже не содержала функции $.getScript,  <a href="http://dklab.ru/lib/JsHttpRequest/">JSHttpRequest</a> с созданием тега script удачно справлялся, но POST по понятным причинам делать не мог.
</p></blockquote>
<p>Данные с главного ресурса могут подгружатся  посредством динамического создания тега script <a href="http://docs.jquery.com/Ajax/jQuery.getScript">jQuery.getScript</a>, с этим казалось бы проблемы нет. Но! Но последним шагом в указанной форме нужно отправить на основной сервер внушительный объём данных, которые могут не влезть в GET (тоже кстати говоря весьма интересный вопрос &#8211; а каково ограничение на длину URL в разных браузерах? в различных веб-серверах,прокси и фильтрах? &#8211; в <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC2616</a> об этом не сказано). Можно конечно изобрести какие-либо механизмы, например отправлять данные небольшими порциями GET-ом, но скорости такая схема явно не прибавит, поэтому такие варианты оставлены другим изобретателям.<br />
<span id="more-116"></span></p>
<p>В первом рабочем варианте проблема решалась php-скриптом на сервере-сателите, через который данные POST-ом прокачивались на головной сайт. Но такая схема имела ряд недостатков, основным из которых опять же является скорость работы и дополнительное требование к ПО на сервере (наличие PHP) или требование к нам, разработчикам &#8211; создать прокси-скрипт для других распространнёных серверных платформ. </p>
<p><strike>И вот относительно недавно</strike> я наткнулся на занимательную библиотеку <a href="http://flxhr.flensed.com/">flxhr</a>. Автор довёл до конца идею и наваял интерфейс, который может <b>прозрачно заменять XMLHttpRequest</b> используя flash. Использовать flxhr легко и просто &#8211; <a href="http://flxhr.flensed.com/code/tests/flxhr-7f.html">заменяете стандартный XMLHTTPRequest</a> и дальше всё почти как обычно. </p>
<p>В дополнение ко всему, флеш-плеер решает ещё одно требование к разрабатываемому проекту &#8211; необходимо пресечь бесконтрольное распространение клиентского модуля(который устанавливается на сайт-сателит). Дело в том что в флеш-плеер от рождения встроен механизм контроля над внешними данными. Ранее это был ресурс crossdomain.xml в корне веб-сервера, содержащего скачиваемые данные. В нём описывалось откуда и что можно скачать. В новом плеере (а для использования flxhr необходим плеер версии не ниже 9.0.0.124) появился более удобный механизм &#8211; можно указать путь к ресурсу с политиками <a href="http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security.html#goal_control">policyURL</a>.</p>
<blockquote><p>
 Кстати о версии плеера:  автор flxhr предусмотрел не только проверку версии плеера, но и возможность его апгрейдить не отходя от кассы (тот самый <a href="http://blog.deconcept.com/swfobject/#expressinstall">expressinstall из swfobject</a>).
</p></blockquote>
<p> Думаю стоит ещё раз упомянуть тот факт, что данная схема <b>не позволит</b> обратиться js-скрипту с произвольного сайта A на произвольный ресурс B без согласия его владельца. &#8220;Согласие&#8221;  выражается в виде правил, описываемых в файле crossdomain.xml(или указанным в loadPolicyFile), который располагается на сервере B. Другими словами данные, которые вы желаете публиковать, не должны быть &#8220;ворованными&#8221;.</p>
<p> Единственным неудобством, с которым пока довелось столкнуться в ходе обкатки flxhr, является тот факт, что данные в кодировке отличной от UTF-8 безвозвратно портятся. В остальном это самый <b>лёгкий и удобный</b> способ обмениваться данными между разными доменами уже <b>сейчас</b>, не дожидаясь появления сверхновых версий браузеров, в которых реализуют <a href="http://dev.w3.org/2006/webapi/XMLHttpRequest-2/">XMLHttpRequest Level 2</a>, и скоропостижной смерти всех старых.</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2008/10/03/crossdomain-xhr-with-flash/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>stop &#8220;click to activate and use this control&#8221;</title>
		<link>http://miracle.rpz.name/2007/11/10/stop-click-to-activate-and-use-this-control/</link>
		<comments>http://miracle.rpz.name/2007/11/10/stop-click-to-activate-and-use-this-control/#comments</comments>
		<pubDate>Fri, 09 Nov 2007 22:07:06 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[activex]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[ieupdate]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=75</guid>
		<description><![CDATA[Аллилуйя! Это-таки случилось. M$ получила лицензию от Eolas на метод внедрения медиа-контента на html-страницу. Назойливое сообщение уйдёт известным путём в известном направлении. Где-то в декабре эту мерзость можно будет убрать путём скачивания виндового апдейта. Ну а в апреле обещают xp sp3, который окончательно удалит эту мозоль. Поздравляю всех &#8220;затронутых&#8221;. первоисточник Technorati Tags: flash, swfobject, ieupdate, [...]]]></description>
			<content:encoded><![CDATA[<p> Аллилуйя! Это-таки случилось. M$ получила лицензию от Eolas на метод внедрения медиа-контента на html-страницу. Назойливое сообщение уйдёт известным путём в известном направлении. Где-то в декабре эту мерзость можно будет убрать путём скачивания виндового апдейта. Ну а в апреле обещают xp sp3, который окончательно удалит эту мозоль. Поздравляю всех &#8220;затронутых&#8221;.</p>
<p><a href="http://blogs.msdn.com/ie/archive/2007/11/08/ie-automatic-component-activation-changes-to-ie-activex-update.aspx">первоисточник</a></p>
<p>Technorati Tags: <a href="http://technorati.com/tag/flash" class="performancingtags" rel="tag">flash</a>, <a href="http://technorati.com/tag/swfobject" class="performancingtags" rel="tag">swfobject</a>, <a href="http://technorati.com/tag/ieupdate" class="performancingtags" rel="tag">ieupdate</a>, <a href="http://technorati.com/tag/activex" class="performancingtags" rel="tag">activex</a></p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2007/11/10/stop-click-to-activate-and-use-this-control/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Announcing the SWFFix project</title>
		<link>http://miracle.rpz.name/2007/02/20/announcing-the-swffix-project/</link>
		<comments>http://miracle.rpz.name/2007/02/20/announcing-the-swffix-project/#comments</comments>
		<pubDate>Tue, 20 Feb 2007 18:00:48 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[advertise]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=56</guid>
		<description><![CDATA[Geoff Stearns и Bobby van der Sluis задумали осуществить маленькую революцию и наконец &#8220;устаканить&#8221; процедуру вставки flash-ек на web-страницы. Товарищи(господа?) решили сделать &#8220;мега-супер-пупер&#8221; универсальную библиотеку для вставки swf в (x)html-страницы, избавляющую от вездесущих глюков и багов в MSIE различных браузерах, объединив функционал SWFObject и UFO и не упустив из виду другие популярные swf-related приложения (вроде [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.deconcept.com/2004/09/19/about-me/">Geoff Stearns</a> и <a href="http://www.bobbyvandersluis.com/">Bobby van der Sluis</a> задумали осуществить <a href="http://www.swffix.org/devblog/?p=3">маленькую революцию</a> и наконец &#8220;устаканить&#8221; процедуру вставки flash-ек на web-страницы.</p>
<p>Товарищи(господа?) решили сделать &#8220;мега-супер-пупер&#8221; универсальную библиотеку для вставки swf в (x)html-страницы, избавляющую от вездесущих глюков и багов в <strike>MSIE</strike> различных браузерах, объединив функционал <a href="http://blog.deconcept.com/swfobject/">SWFObject</a> и <a href="http://www.bobbyvandersluis.com/ufo/" title="Unobtrusive Flash Objects">UFO</a> и не упустив из виду другие популярные swf-related приложения  (вроде <a href="http://www.asual.com/swfaddress/">SWFAddress</a> и <a href="http://labb.dev.mammon.se/swfupload/">SWFUpload</a>)</p>
<p>И дело анонсом не закончилось &#8211; уже есть <a href="http://www.swffix.org/testsuite/">сводная таблица методов внедрения swf и поддержкой оных в различных браузерах</a>, которая впрочем пока (надеюсь только пока) не содержит linux-овых бродилок.</p>
<p>От всей души желаю товарищам(господам?) удачи!<br />
<strong>Upd</strong>: <a href="/2007/11/10/stop-click-to-activate-and-use-this-control/">&#8220;Это&#8221; скоро кончиться</a><br />
Technorati Tags: <a href="http://technorati.com/tag/web" class="performancingtags" rel="tag">web</a>, <a href="http://technorati.com/tag/dev" class="performancingtags" rel="tag">dev</a>, <a href="http://technorati.com/tag/swf" class="performancingtags" rel="tag">swf</a>, <a href="http://technorati.com/tag/swfobject" class="performancingtags" rel="tag">swfobject</a>, <a href="http://technorati.com/tag/swffix" class="performancingtags" rel="tag">swffix</a></p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2007/02/20/announcing-the-swffix-project/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FlashTracer</title>
		<link>http://miracle.rpz.name/2006/10/03/flashtracer/</link>
		<comments>http://miracle.rpz.name/2006/10/03/flashtracer/#comments</comments>
		<pubDate>Tue, 03 Oct 2006 16:15:05 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[advertise]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=42</guid>
		<description><![CDATA[Нашёл сегодня полезный (для web-разработчиков) extension для firefox &#8211; FlashTracer. Суть должна быть ясна из названия &#8211; он &#8220;вываливает&#8221; всё что trace-иться (выводиться функцией trace) в swf-ках в sidebar браузера(разумеется флешка должна быть открыта в браузере). Крайне удобно отлаживать flash-приложения прямо в браузере (подгрузка-отгрузка и т.п. работа с внешними ресурсами крайне неудобна в отладке если [...]]]></description>
			<content:encoded><![CDATA[<p>Нашёл сегодня полезный (для web-разработчиков) extension для <a href="http://getfirefox.com">firefox</a> &#8211; <a href="https://addons.mozilla.org/firefox/3469/">FlashTracer</a>.</p>
<p>Суть должна быть ясна из названия &#8211; он &#8220;вываливает&#8221; всё что trace-иться (выводиться функцией <a href="http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00001778.html">trace</a>) в swf-ках в sidebar браузера(разумеется флешка должна быть открыта в браузере). Крайне удобно отлаживать flash-приложения прямо в браузере (подгрузка-отгрузка и т.п. работа с внешними ресурсами крайне неудобна в отладке если работать во Flash IDE). Для работы этому чуду требуется debug-версия флеш-плеера(впрочем об этом написано по ссылке выше).</p>
<p><strike>Из замеченных проблем &#8211; &#8220;кракозяблица&#8221; из кирилических символов независимо от кодировки оных &#8211; ну да что там &#8211; будем терпеть (потому как копаясь в коде я так и не понял каким-таким махером беруться данные от плеера) и ждать новой версии.</strike></p>
<p>Update: расширение обновлялось-обновлялось и обновилось до версии 1.3.1 &#8211; и теперь проблем с кирилицей больше нет (ну и внешний вид поменялся в лучшую сторону).</p>
<p>P.S.<br />
сайт <a href="http://mozdev.org">mozdev</a> <strike>лежит</strike> <a href="http://miracle.pisem.net/mozdev.org.die.jpg" title="mozdev.org в лёжке">лежал</a>&#8230; но как красиво ;o)</p>
<p>Technorati Tags: <a href="http://technorati.com/tag/flash" rel="tag">flash</a>, <a href="http://technorati.com/tag/firefox" rel="tag">firefox</a>, <a href="http://technorati.com/tag/debug" rel="tag">debug</a>, <a href="http://technorati.com/tag/extensions" rel="tag">extensions</a></p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2006/10/03/flashtracer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Третья и недеюсь заключительная часть эпопеи вокруг IE, Flash и ActiveX.</title>
		<link>http://miracle.rpz.name/2006/07/05/flash-activex-ie-update-part3/</link>
		<comments>http://miracle.rpz.name/2006/07/05/flash-activex-ie-update-part3/#comments</comments>
		<pubDate>Wed, 05 Jul 2006 14:12:17 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=34</guid>
		<description><![CDATA[Исходные данные: есть html с swf-ками есть IE есть рамка вокруг swf-ок и hint с напоминанием о том что для использования объекта надо сначала его активироваит кликом есть вполне себе самодостаточный инструмент для внедрения флеша в html, который помимо того что замечательно детектит версию плеера, показывает альтернативный контент для тех у кого не обнаружилось необходимого [...]]]></description>
			<content:encoded><![CDATA[<p>Исходные данные:</p>
<ul>
<li>есть html с swf-ками</li>
<li>есть IE</li>
<li>есть рамка вокруг swf-ок и hint с напоминанием о том что для использования объекта надо сначала его активироваит кликом</li>
<li>есть вполне себе самодостаточный инструмент для внедрения флеша в html, который помимо того что замечательно детектит версию плеера, показывает альтернативный контент для тех у кого не обнаружилось необходимого плеера и вообще супер-комбайн &#8211; <a href="http://blog.deconcept.com/swfobject/">SWFObject</a>, заодно избавляет от этих злосчастных рамок.</li>
<li>ну и наконец есть &#8220;сто тыщ милёнов&#8221; уже созданных страниц со флешем.</li>
</ul>
<p>Имея эти данные и не имея желания переписать все уже созданные страницы для использования SWFObject я задался целью найти менее трудоёмкий путь к избавлению от &#8220;рамок&#8221;.</p>
<p>&#8220;Путь&#8221; желающие могут изучить по предыдущим постам, а я лишь резюмирую случившееся:</p>
<ol>
<li>В первый же день когда я обнаружил рамки, нашёлся неочевидный выход &#8211; если через document.write(&#8216;&lt;object … &gt;&lt;param&#8230;./&gt;&lt;/object&gt;&#8217;) IE отображает объект без уродской рамки, то разработчики IE в попыхах сделали заплатку,которая рисует рамку только вовремя рендринга страницы, проверка &#8220;на вшивость&#8221; показала, что конструкция object.outerHTML=object.outerHTML; даёт тот же эффект, что позволило пройтись по всем getElementsByTagName(&#8216;object&#8217;) и провернуть над ними &#8220;экзекуцию&#8221;.</li>
<li>Но выяснилось что при этом теряются flashvars (в наших проектах весьма часто используемых) &#8211; пришлось весьма шаманским способом их &#8220;сохранять&#8221; при &#8220;магическом переписывании&#8221;.</li>
<li>Далее выяснилось что подобная операция приводит к утечке памяти и краху IE. Попытки бороться с этим только &#8220;оттягивали конец&#8221; (гусары &#8211; молчать!)</li>
</ol>
<p>Тем временем в новых проектах я уже использую SWFObject, максимально упростив работу по его внедрению посредством <a href="http://miracle.pisem.net/smarty_function_swfobject.html">плагина к smarty</a>, <a href="http://flog.fluid.com/experiments/swfobject-extension/">publish extension-а к Flash-у</a><strike> и матерного слова</strike>.</p>
<p>А мысль о том как же бороться с проклятым IE меня не покидает…</p>
<p>В итоге решение оказалось на поверхности &#8211; использовать swfobject для переписывания уже внедрённых флешек:</p>
<ol>
<li>берём object, добавляем перед ним div</li>
<li>создаём swfobject, копируем необходимые данные из object</li>
<li>удаляем object из DOM-дерева</li>
<li>Повторяем до потери пульса</li>
</ol>
<p>Итоговый код можно скачать по прежнему адресу <a href="http://miracle.pisem.net/flash_replacer_latest.js" target="_blank">flash_replacer (v 0.7)</a> (особо отмечу что для работы <strong>НЕОБХОДИМ</strong> swfobject.js, который надо включать в html до flash_replacer-а)<br />
В нём в данный момент нехватает аналогичного &#8220;прогона&#8221; по embed-ам, а в остальном вполне рабочий код, который на тестовых системах не вызывает падения IE.</p>
<p><strong>Upd</strong>: <a href="/2007/11/10/stop-click-to-activate-and-use-this-control/">&#8220;Это&#8221; скоро кончиться</a></p>
<p>Technorati Tags: <a href="http://technorati.com/tag/flash" rel="tag">flash</a>, <a href="http://technorati.com/tag/ie" rel="tag">ie</a>, <a href="http://technorati.com/tag/activex" rel="tag">activex</a>, <a href="http://technorati.com/tag/swfobject%20" rel="tag">swfobject </a></p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2006/07/05/flash-activex-ie-update-part3/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Flash, ActiveX &amp; IE update. part II</title>
		<link>http://miracle.rpz.name/2006/04/24/flash-activex-ie-update-part-ii/</link>
		<comments>http://miracle.rpz.name/2006/04/24/flash-activex-ie-update-part-ii/#comments</comments>
		<pubDate>Mon, 24 Apr 2006 08:46:32 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=32</guid>
		<description><![CDATA[Эпопея с рамками вокруг флеша продолжается&#8230; Сперва обнаружилось, что код, который я приводил в прошлом посте не работает в IE версий ниже 6-ой (точнее он работал, но не совсем так как задумано ;o) ) . Пришлось его немного подточить &#8211; flashvars теперь беруться не из тега PARAM, а из свойства altHTML у тега OBJECT (это [...]]]></description>
			<content:encoded><![CDATA[<p>Эпопея с рамками вокруг флеша продолжается&#8230;</p>
<p>Сперва обнаружилось, что код, который я приводил в <a href="http://miracle.rpz.name/2006/04/14/flash-activex-ie-update/">прошлом посте</a>  не работает в IE версий ниже 6-ой (точнее он работал, но не совсем так как задумано ;o) ) . Пришлось его немного подточить &#8211; flashvars теперь беруться не из тега PARAM, а из свойства altHTML у тега OBJECT (это свойство доступно только в IE и содержит html код с тегом EMBED), и вот код работает в IE 5.5 и IE5&#8230; но&#8230;</p>
<p>Но были замечены падения браузеров (5-го и 5.5) после переписывания outerHTML&#8230;<br />
С другой стороны рамки вокруг ActiveX в этих браузерах мною замечены не были&#8230; посему код flash_replacer.js теперь исполняется только в IE6 (седьмой покамест beta &#8211; на него не рассчитываю).</p>
<p>Собственно код находиться <a href="http://miracle.pisem.net/flash_replacer_latest.js">здесь</a>. <strike>(v.0.3.1) (v.0.4)(v.0.4.1)(v.0.5)(v.0.5.1)(v.0.6)</strike>(v.0.7)</p>
<p>Нуждающиеся в нём могут качать и пользоваться.<br />
Знающие могут помочь мне с ответом на вопрос &#8211; в IE версий ниже 6-ой рамки есть или нету?<br />
Баги и вообще любые фидбеки приветствуются&#8230;</p>
<p><b>UPDATE:</b><br />
Исправил маленький &#8220;глюк&#8221;, переименовал файл &#8211; теперь последняя версия называется flash_replacer_latest.js (находится по ссылке выше).  Просьба к товарищам ссылающимся на данный файл поменять ссылку на файл (заранее спасибо за изменения и за ссылку вообще ;o) )</p>
<p>27.04 &#8211; Поправил проверку classid и сделал аналогичный прогон по embed-ам вне object-а</p>
<p>11.05 &#8211; Поправил регулярку, с помощью которой вытаскивались flashvars(они могут быть многострочными)</p>
<p>23.05 &#8211; удаляю outerHTML на window.unload (ie иногда падал из-за memory leak), flash_replacer теперь запускается только в winxp ie6+. Подробнее чуть позже опишу в третьей части &#8220;эпопеи&#8221;&#8230;<br />
24.05 &#8211; workaround для flashvars, которые вставляются как get-параметры в src мувика</p>
<p>30.06 &#8211; теперь используется <a href="http://blog.deconcept.com/swfobject/">SWFObject</a> для внедрения &#8220;переписанных флешек&#8221;, в связи с этим баги с падением IE исчезли, но &#8220;маленько&#8221; уменьшилась функциональность &#8211; восстановлю на днях работу c embed и flashvars, которые передаются get-параметрами в src мувика</p>
<blockquote><p><strike>Уже месяц висит draft-пост про &#8220;завершение эпопеи&#8221;&#8230; но похоже конца этой &#8220;эпопеи&#8221; нет и не предвидится ;o)</strike><br />
<a href="http://miracle.rpz.name/2006/07/05/flash-activex-ie-update-part3/">Продолжение следует&#8230;</a></p></blockquote>
<p>Technorati Tags: <a href="http://technorati.com/tag/flash" rel="tag">flash</a>, <a href="http://technorati.com/tag/ie" rel="tag">ie</a>, <a href="http://technorati.com/tag/activeX" rel="tag">activeX</a></p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2006/04/24/flash-activex-ie-update-part-ii/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Flash ActiveX &amp; IE update</title>
		<link>http://miracle.rpz.name/2006/04/14/flash-activex-ie-update/</link>
		<comments>http://miracle.rpz.name/2006/04/14/flash-activex-ie-update/#comments</comments>
		<pubDate>Fri, 14 Apr 2006 14:50:11 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=29</guid>
		<description><![CDATA[Ну наверное для многих не новость, что после очередного апдейта IE (6), начались проблемы с Flash-ем (впрочем не только с ним&#8230;) &#8211; вокруг означенного флэша появилась пренеприятнейшая рамка и tooltip с напоминанием о том, что надо кликнуть на объект, чтобы его активировать&#8230; UPDATE2: Модификация Internet Explorer должна решить проблему нарушения корпорацией Microsoft патента фирмы Eolas [...]]]></description>
			<content:encoded><![CDATA[<p>Ну наверное <a href="http://www.novemberain.com/blog/?p=388">для многих не новость</a>, что после очередного апдейта IE (6), начались проблемы с Flash-ем (впрочем не только с ним&#8230;) &#8211; вокруг означенного флэша появилась пренеприятнейшая рамка и tooltip с напоминанием о том, что надо кликнуть на объект, чтобы его активировать&#8230;</p>
<p>UPDATE2:</p>
<blockquote><p><i>Модификация Internet Explorer должна решить проблему нарушения корпорацией Microsoft патента фирмы Eolas на технологию взаимодействия пользователя с интерактивным контентом, внедрённым в веб-страницы.</i></p></blockquote>
<p>Вот собственно где собака порылась &#8211; теперь не M$ нарушает <b>американские патенты</b> &#8211; теперь из буду нарушать я ;o)<br />
<a href="http://blog.deconcept.com/flashobject/">Умные люди нашли выход</a> &#8211; вставлять флэш через JS.</p>
<p>Я этот метод в принципе одобряю &#8211; как-никак спасение&#8230; но править добрую полсотню сайтов, искать там банеры и прочий активный контент и заменять вставку swf-ок на flashobject &#8230; это путь для самурая &#8211; я пошёл другим путём &#8211; нахожу все object-ы c нужным classid и тупо переписываю obj.outerHTML = obj.outerHTML</p>
<p>И что интересно &#8211; это работает! Но&#8230; но вот FlashVars почему-то теряются(кто видел, какой innerHTML генерит IE для flash-а, тот наверное понимает о чём я..</p>
<p>Пришлось топорным методом сохранять flashvars из param заменять его в outerHTML перед записью.</p>
<p>Итого:</p>
<pre class="js:nocontrols">
function initFlashObj() {
    var objs = document.getElementsByTagName('object');
    if (objs &amp;&amp; objs.length) {
        for (var i = 0; i &lt; objs.length; i++) {
           if (objs[i].getAttribute('classid') == 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000') {
               var params =  objs[i].getElementsByTagName('PARAM');
               for (var j = 0; j &lt; params.length; j++) {
                   if (params[j].getAttribute('name') == 'flashvars') {
                       var FlashVars = params[j].getAttribute('value');
                       break;
                   }
               }
               var obj = objs[i].outerHTML + "\n";
               obj = obj.replace(/FLASHVARS" VALUE=""/i,'FLASHVARS" value="'+FlashVars+'"');
               objs[i].outerHTML = obj;
           }
        }
       objs = null;
   }
}
</pre>
<p>Остаётся добавить эту функцию на window.onload и всё&#8230;<br />
Особо пытливые могут попытаться оптимизировать геморой с replace и тогда всем будет всемирное счастье..</p>
<p>P.S.<br />
Пишу это второй раз &#8211; какие-то неполадки(сам заметил, что с кодировкой что-то не то) на wordpress-е &#8211; видимо они восстановились из бэкапа&#8230;</p>
<p><b>UPDATE:</b></p>
<p>А вот ещё один <a href="http://www.amarasoftware.com/flash-problem.htm" title="Click to activate and use this control">дядя сделал тоже самое</a> (не учтя &#8220;проблему&#8221; с flashvars) и судя по дате додумался в тот же день, что и я ;o)</p>
<p><a href="http://miracle.rpz.name/2006/04/24/flash-activex-ie-update-part-ii/">Часть II</a></p>
<p><a href="http://miracle.rpz.name/2006/07/05/flash-activex-ie-update-part3/">Часть III</a>  (Издание 2-ое &#8211; дополненное и исправленное)</p>
<p>Technorati Tags: <a href="http://technorati.com/tag/flash" rel="tag">flash</a>, <a href="http://technorati.com/tag/ie" rel="tag">ie</a>, <a href="http://technorati.com/tag/activeX" rel="tag">activeX</a>, <a href="http://technorati.com/tag/js" rel="tag">js</a></p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2006/04/14/flash-activex-ie-update/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: miracle.rpz.name @ 2012-02-06 18:00:43 by W3 Total Cache -->
