<?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>Yarixxx</title>
	<atom:link href="http://y3x.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://y3x.ru</link>
	<description>Мои HTML5, CSS3, JavaScript и XSLT заметки</description>
	<lastBuildDate>Thu, 03 May 2012 04:58:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>SVG: Используем pattern для заполнения объектов</title>
		<link>http://y3x.ru/2012/05/svg-pattern/</link>
		<comments>http://y3x.ru/2012/05/svg-pattern/#comments</comments>
		<pubDate>Thu, 03 May 2012 04:58:18 +0000</pubDate>
		<dc:creator>Ярослав</dc:creator>
				<category><![CDATA[SVG]]></category>
		<category><![CDATA[Все записи]]></category>
		<category><![CDATA[паттерн]]></category>

		<guid isPermaLink="false">http://y3x.ru/?p=4152</guid>
		<description><![CDATA[Сегодня мне удалось попробовать элемент pattern для создания необычной заливки SVG-объекта. Этот опыт нужно записать! Для начала нужно создать сам паттерн в секции defs. Например так: &#60;pattern id="bricks" patternUnits="userSpaceOnUse" x="0" y="0" width="10" height="10"&#62; &#60;rect width="10" height="10" style="fill:#DB531D"/&#62; &#60;path d="M1,0 L9,0" &#8230; <a href="http://y3x.ru/2012/05/svg-pattern/">подробнее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Сегодня мне удалось попробовать элемент pattern для создания необычной заливки SVG-объекта. Этот опыт нужно записать!</p>
<p>Для начала нужно создать сам паттерн в секции <strong>defs</strong>. Например так:</p>
<pre>
&lt;pattern id="bricks"
  patternUnits="userSpaceOnUse"
  x="0" y="0" width="10" height="10"&gt;
  &lt;rect width="10" height="10" style="fill:#DB531D"/&gt;
  &lt;path d="M1,0 L9,0" style="stroke:#fff;stroke-width:2"/&gt;
&lt;/pattern&gt;
</pre>
<p>В данном случае с помощью координат <em>x</em>, <em>y</em>, <em>width</em> и <em>height</em> мы мы определяем область рисования паттерна. После этого описываем что будет внутри. В данном случае будет коричневый прямоугольник на всю область рисования и белая черточка.</p>
<p>Теперь паттерн можно использовать в свойстве fill при оформлении любого объекта, например вот так:</p>
<pre>
&lt;rect x="10" y="10"
  width="300" height="200" style="fill:url(#bricks)" /&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://y3x.ru/2012/05/svg-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVG: Особенности оформления фигур с помощью CSS</title>
		<link>http://y3x.ru/2012/05/svg-decoration-with-css/</link>
		<comments>http://y3x.ru/2012/05/svg-decoration-with-css/#comments</comments>
		<pubDate>Wed, 02 May 2012 18:50:29 +0000</pubDate>
		<dc:creator>Ярослав</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[Все записи]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[svg]]></category>

		<guid isPermaLink="false">http://y3x.ru/?p=4137</guid>
		<description><![CDATA[Сегодня я столкнулся с весьма интересными особенностями работы браузеров при отображении SVG-фигур оформленных через CSS. Для начала возьмем и создадим тестовый SVG-объект: &#60;rect id="testRect" x="100" y="100" width="300" height="100"/&#62; Первая часть эксперимента Через инлайн стили зададим ему офромление. Для этого добавим &#8230; <a href="http://y3x.ru/2012/05/svg-decoration-with-css/">подробнее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Сегодня я столкнулся с весьма интересными особенностями работы браузеров при отображении SVG-фигур оформленных через CSS. Для начала возьмем и создадим тестовый SVG-объект:</p>
<pre>
&lt;rect
  id="testRect"
  x="100" y="100"
  width="300" height="100"/&gt;
</pre>
<h3>Первая часть эксперимента</h3>
<p>Через инлайн стили зададим ему офромление. Для этого добавим параметр <em>style</em></p>
<pre>
style="stroke:red;stroke-width:5"
</pre>
<p>В результате наш объект будет с красной рамкой во всех приличных браузерах. Это хорошо и ожидаемо.</p>
<p>Подключим к нашему SVG-документу внешний CSS. О том <a href="http://y3x.ru/2011/07/svg-scripting-and-styles/">как подключить CSS к SVG</a> есть специальная заметка. Ну, в общем примерно так:</p>
<pre>
&lt;?xml-stylesheet type="text/css" href="style.css" ?&gt;
</pre>
<p>Поместим в этот CSS селектор <em>#testRect</em> с соответствующими свойствами:</p>
<pre>
#testRect {
  stroke:red;
  stroke-width:5
}
</pre>
<p>Проверим в Chromium\Chrome, Firefox и Opera &mdash; работает. Это значит, что в браузерах работают как inline-стили, так и внешние.</p>
<h3>Вторая часть эксперимента</h3>
<p>Допустим, мы хотим сделать заливку для прямоугольника в виде простого градиента. Для этого добавим в SVG-документ в секцию <strong>defs</strong> декларацию градиента:</p>
<pre>
&lt;linearGradient
  id="fill"&gt;
  &lt;stop style="stop-color:#999" offset="0"/&gt;
  &lt;stop style="stop-color:#333" offset="1"/&gt;
&lt;/linearGradient&gt;
</pre>
<p>и используем её через inline-стили:</p>
<pre>
style="fill:url(#fill)"
</pre>
<p>Работает во всех браузерах. Идем дальше!<br />
Вынесем декларацию свойства <em>fill</em> во внешний файл, к остальным свойствам.</p>
<pre>
#testRect {
  stroke:red;
  stroke-width:5;
  fill:url(#fill)
}
</pre>
<p>В Chrome\Chromium работает, в Firefox 12 нету градиента, в Opera 11 тоже никакого градиента.<br />
<a href="http://y3x.ru/sandbox/svg/svgcss/externalCss.svg">посмотреть в песочнице</a></p>
<h3>Вывод:</h3>
<p>Обращения к элементам SVG-документа из внешней таблицы стилей (CSS) лучше оставить на будущее.</p>
]]></content:encoded>
			<wfw:commentRss>http://y3x.ru/2012/05/svg-decoration-with-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Автомобили ручной работы в SVG</title>
		<link>http://y3x.ru/2012/04/svg-demos-handmade/</link>
		<comments>http://y3x.ru/2012/04/svg-demos-handmade/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 17:51:32 +0000</pubDate>
		<dc:creator>Ярослав</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Presto]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[WebKit]]></category>
		<category><![CDATA[Браузеры]]></category>
		<category><![CDATA[Все записи]]></category>

		<guid isPermaLink="false">http://y3x.ru/?p=4073</guid>
		<description><![CDATA[Пару дней назад я нашел брошенный в клипарт SVG-автомобиль. Владелец транспортного средства не известен. В процессе изучения технического состояния находки обнаружились проблемы с избыточным весом и множество лишних деталей. После оптимизации кривых и сокращения количества элементов оказалось, что авто довольно &#8230; <a href="http://y3x.ru/2012/04/svg-demos-handmade/">подробнее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Пару дней назад я нашел брошенный в клипарт SVG-автомобиль. Владелец транспортного средства не известен. В процессе изучения технического состояния находки обнаружились проблемы с избыточным весом и множество лишних деталей. После оптимизации кривых и сокращения количества элементов оказалось, что авто довольно шустрое и даже элегантное. Итак, без ложной скромности предлагаю на суд общественности изделие без тени JavaScript.</p>
<p><a href="http://y3x.ru/sandbox/svg-demos/rally.svg">Ралли по извилистой дороге</a><br />
Красный автомобиль мчится по извивающейся трассе с постоянной скоростью. Использован элемент <strong>animateMotion</strong> и масштабирование изображения с помощью параметра <strong>transform</strong>. Сам автомобиль вынесен в отдельный файл и подключен с помощью элемента <strong>image</strong>.<br />
Нормально отображается в браузерах: Chrome\Chromium, Firefox и Opera.</p>
<p><a href="http://y3x.ru/sandbox/svg-demos/race.svg">Кольцевые гонки двух автомобилей</a><br />
Красный автомобиль едет по внутреннему кругу с постоянной скоростью. Его лихо обгоняет синий автомобиль и срезает на повороте. Авария неизбежна, подождите немного и она обязательно произойдет&#8230; или нет, не произойдет.<br />
Что любопытно, в браузере Opera нагрузка на процессор достаточно велика, но в Firefox она просто выходит за рамки приличия. Chrome\Chromium по нагрузке держатся на уровне с Оперой, но не всегда с первого раза подгружают автомобили, поэтому иногда приходится обновлять страницу.</p>
<p><a href="http://y3x.ru/sandbox/svg-demos/carSpeed.svg">Разгон и торможение автомобилей</a><br />
Четыре автомобиля стартуют и едут по прямой. Красный автомобиль едет с постоянной скоростью, синий медленно стартует, но потом разгоняется, зеленый стартует быстро, но в конце тормозит. Желтое авто быстро выкатывается к середине и медленно едет дальше, в конце ускоряется. Демонстрируется работа <strong>animateMotion</strong> с настройками по умолчанию и специальными настройками <em>keySplines</em> и <em>keyTimes</em>.<br />
В Firefox этот пример не работает. Его можно заставить там работать, но тогда в Chrome\Chromium работать не будет.</p>
<p><a href="http://y3x.ru/sandbox/svg-demos/parking.svg">Параллельная парковка</a><br />
Красный автомобиль выполняет упражнение &laquo;параллельная парковка&raquo;. Демонстрируются свойства <em>fill=&#8221;freeze&#8221;</em>, которое оставляет изображение после анимации на месте и <em>rotate=&#8221;auto-reverse&#8221;</em>, которое разворачивает перемещаемый объект на 180 градусов.</p>
<p><a href="http://y3x.ru/sandbox/svg-demos/carLights.svg">Ночная поездка</a><br />
Синий автомобиль с включенным ближним светом едет по ночному прямоугольнику. Вместо желанных фильтров использован радиальный градиент с полной прозрачностью на <strong>stop-opacity</strong>.</p>
<p><strong>Общие наблюдения:</strong><br />
В браузерах Firefox и Opera автомобили имеют гладкие очертания, что придает им товарный вид. В Chrome\Chromium транспортные средства явно поцарапаны чем-то напоминающим Canvas. Это явно хулиганские выходки. Если кто-нибудь подскажет как с ними бороться &mdash; я буду благодарен.</p>
]]></content:encoded>
			<wfw:commentRss>http://y3x.ru/2012/04/svg-demos-handmade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVG: Кто и как поддерживает анимацию через spline?</title>
		<link>http://y3x.ru/2012/04/svg-animate-spline/</link>
		<comments>http://y3x.ru/2012/04/svg-animate-spline/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 16:44:10 +0000</pubDate>
		<dc:creator>Ярослав</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[WebKit]]></category>
		<category><![CDATA[Браузеры]]></category>
		<category><![CDATA[Все записи]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[calcMode]]></category>
		<category><![CDATA[keySplines]]></category>
		<category><![CDATA[keyTimes]]></category>

		<guid isPermaLink="false">http://y3x.ru/?p=4108</guid>
		<description><![CDATA[Оказывается в SVG можно делать не только равномерные анимации, но и анимации с переменной скоростью. Для этого нужно добавить к элементу анимации свойство calcMode, которое по умолчанию выставлено в paced (равномерная анимация). В данном случае меня интересует значение spline, которое &#8230; <a href="http://y3x.ru/2012/04/svg-animate-spline/">подробнее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Оказывается в SVG можно делать не только равномерные анимации, но и анимации с переменной скоростью. Для этого нужно добавить к элементу анимации свойство <em>calcMode</em>, которое по умолчанию выставлено в <em>paced</em> (равномерная анимация). В данном случае меня интересует значение <em>spline</em>, которое позволяет регулировать скорость изменения анимируемого свойства. Например, начинать быстро, а заканчивать медленно. Для определения изменения скорости используются свойства <em>keySplines</em> и <em>keyTimes</em>.</p>
<p>Поддерживают изменение скорости все браузеры: Chrome\Chromium, Firefox и Opera. Однако поддерживают его по-разному. В <a href="http://www.w3.org/TR/SVG11/animate.html#ValueAttributes">спецификации</a> сказано, что <strong>keySplines</strong> может принимать в качестве значения несколько групп по четыре числа от 0 до 1. Группы должны быть разделены точкой с запятой. Второе полезное свойство &mdash; <strong>keyTimes</strong>, которое принимает набор чисел от 0 до 1. Этих чисел должно быть на одно больше чем групп в <strong>keySplines</strong>.</p>
<p>Следующий пример, по идее, должен запускать анимацию сперва медленно, а потом все быстрее и быстрее.</p>
<pre>
calcMode="spline"
keySplines="0 0 1 0;0 0 1 0;0 0 1 0"
keyTimes="0;.1;.9;1"
</pre>
<p>Пробуем!<br />
В браузерах Chrome\Chromium и Opera анимация проходит как и полагается. В Firefox анимации нет, что свидетельствует об ошибке, если верить спецификации.</p>
<p>Попробуем иначе &mdash; уберем <em>keyTimes</em>.</p>
<pre>
calcMode="spline"
keySplines="0 0 1 0"
</pre>
<p>В Firefox заработало, в Opera продолжает работать. В Chrome\Chromium тоже работает, но ускорения уже не получается.</p>
<p>Пока, мои попытки заставить анимацию проходить одинаково в браузерах Firefox, Chrome\Chromium и Opera не увенчались успехом. Похоже кто-то Firefox или Chrome не слишком точно следуют спецификации.<br />
Подсказки или мысли на тему как решить эту задачку будут горячо приветствоваться.</p>
<p>Для подбора значений параметра keySpline есть довольно <a href="http://www.carto.net/svg/samples/keysplines.svg">удобный инструмент</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://y3x.ru/2012/04/svg-animate-spline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVG: Использование подключенных ресурсов</title>
		<link>http://y3x.ru/2012/04/svg-external-resources/</link>
		<comments>http://y3x.ru/2012/04/svg-external-resources/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 13:00:14 +0000</pubDate>
		<dc:creator>Ярослав</dc:creator>
				<category><![CDATA[Opera]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[Браузеры]]></category>
		<category><![CDATA[Все записи]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[use]]></category>

		<guid isPermaLink="false">http://y3x.ru/?p=4083</guid>
		<description><![CDATA[Сегодня я столкнулся с еще одним странным поведением браузеров при интерпретации SVG. Допустим, нужно подключить SVG-изображение которое находится во внешнем файле. В секцию defs помещаю элемент image: &#60;image id="rect" xlink:href="rect.svg" width="100" height="50"/&#62; После этого использую его пару раз: &#60;use xlink:href="#rect" &#8230; <a href="http://y3x.ru/2012/04/svg-external-resources/">подробнее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Сегодня я столкнулся с еще одним странным поведением браузеров при интерпретации SVG. Допустим, нужно подключить SVG-изображение которое находится во внешнем файле. В секцию <strong>defs</strong> помещаю элемент <strong>image</strong>:</p>
<pre>
&lt;image id="rect" xlink:href="rect.svg" width="100" height="50"/&gt;
</pre>
<p>После этого использую его пару раз:</p>
<pre>
&lt;use xlink:href="#rect" /&gt;
&lt;use xlink:href="#rect" y="200" /&gt;
</pre>
<p>В результате в браузере <em>Opera</em> отрисовывается только последнее использование, а в <em>Firefox, Chrome\Chromium</em> оба случая будут видны пользователю. Подозрение на баг в Опере.</p>
<p>Если в секции <strong>defs</strong> использовать другие элементы &mdash; они отрисовываются нормально во всех браузерах.</p>
]]></content:encoded>
			<wfw:commentRss>http://y3x.ru/2012/04/svg-external-resources/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SVG: Такой странный animateMotion</title>
		<link>http://y3x.ru/2012/04/svg-animatemotion-extended/</link>
		<comments>http://y3x.ru/2012/04/svg-animatemotion-extended/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 16:19:37 +0000</pubDate>
		<dc:creator>Ярослав</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Presto]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[WebKit]]></category>
		<category><![CDATA[Браузеры]]></category>
		<category><![CDATA[Все записи]]></category>
		<category><![CDATA[animateMotion]]></category>
		<category><![CDATA[transform]]></category>

		<guid isPermaLink="false">http://y3x.ru/?p=4059</guid>
		<description><![CDATA[Прошлым летом я уже писал про SVG-элемент animateMotion и приводил пример его работы. Вчера он преподнес мне неожиданный сюрприз. Оказывается браузеры разделились в интерпретации параметра transform анимируемого объекта. В Firefox и Chrome\Chromium трансформации применяются только к объекту и его визуально &#8230; <a href="http://y3x.ru/2012/04/svg-animatemotion-extended/">подробнее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Прошлым летом я уже писал про <a href="http://y3x.ru/2011/07/svg-animatemotion/">SVG-элемент animateMotion</a> и приводил пример его работы. Вчера он преподнес мне неожиданный сюрприз. Оказывается браузеры разделились в интерпретации параметра <em>transform</em> анимируемого объекта. В <strong>Firefox</strong> и <strong>Chrome\Chromium</strong> трансформации применяются только к объекту и его визуально отображаемым детям, а в Opera и еще одном мобильном браузере элемент animateMotion наследует transform и соответственно модифицирует путь по которому объект будет перемещаться.</p>
<p>Приведу пример:</p>
<pre>
&lt;rect width="900" height="200" fill="#000"
  <strong>transform="scale(0.1)"</strong>&gt;
  &lt;animateMotion
    path="M10,10 L 700,100 L 10,100 Z"
    dur="10s" /&gt;
&lt;/rect&gt;
</pre>
<p>В результате этого в Firefox\Chrome\Chromium прямоугольник будет уменьшен, но будет перемещаться на 700 пунктов вправо и т.д., а в Opera уменьшенный прямоугольник будет перемещаться только на 70 пунктов вправо.</p>
<p>Сделать анимацию совместимой помогает элемент <strong>use</strong>:</p>
<pre>
&lt;defs&gt;
  &lt;rect id="rect" width="900" height="200"
  transform="scale(0.1)"/&gt;
&lt;/defs&gt;
&lt;use xlink:href="#rect"&gt;
  &lt;animateMotion
    path="M10,10 L 700,100 L 10,100 Z"
    dur="10s" /&gt;
&lt;/use&gt;
</pre>
<p>Однозначного ответа на вопрос как нужно поступать в такой двусмысленной ситуации мне найти не удалось. На сайте W3C говорится, что результат преобразования в параметре <em>transform</em> должен применяться к дочерним элементам, а разделения на визуальные и невизуальные элементы там нет. Поэтому следует сделать вывод, что трансформации анимируемых объектов лучше делать подальше от самих анимаций.</p>
]]></content:encoded>
			<wfw:commentRss>http://y3x.ru/2012/04/svg-animatemotion-extended/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVG: Кто чего поддерживает?</title>
		<link>http://y3x.ru/2012/04/svg-support/</link>
		<comments>http://y3x.ru/2012/04/svg-support/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 18:47:53 +0000</pubDate>
		<dc:creator>Ярослав</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Presto]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[WebKit]]></category>
		<category><![CDATA[Браузеры]]></category>
		<category><![CDATA[Все записи]]></category>

		<guid isPermaLink="false">http://y3x.ru/?p=4051</guid>
		<description><![CDATA[В последнее время я обнаруживаю все больше деталей из спецификации SVG, которые тот или иной браузер не поддерживает. Например, Chrome не ловит мышейсобытия начала и конца анимации. Для быстрой проверки кто неправ &#8212; я или браузер удобно использовать специальные таблицы. &#8230; <a href="http://y3x.ru/2012/04/svg-support/">подробнее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>В последнее время я обнаруживаю все больше деталей из спецификации SVG, которые тот или иной браузер не поддерживает. Например, Chrome не ловит <del>мышей</del>события начала и конца анимации. Для быстрой проверки кто неправ &mdash; я или браузер удобно использовать специальные таблицы.</p>
<p>Самая удобная таблица у Opera: <a href="http://www.opera.com/docs/specs/presto2.10/svg/elements/">Как Presto 2.10 поддерживает SVG</a>.<br />
У Chrome\Chromium все немного беднее. Последнее обновление <a href="http://www.webkit.org/projects/svg/status.xml">таблицы поддержки тегов SVG в Webkit</a> аж в 2011 году.<br />
У Firefox тоже есть своя <a href="https://developer.mozilla.org/En/SVG_in_Firefox">таблица поддержки SVG</a>.</p>
<p>Кстати, поправки и дополенения как всегда приветствуются.</p>
]]></content:encoded>
			<wfw:commentRss>http://y3x.ru/2012/04/svg-support/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SVG: Анимация и её события</title>
		<link>http://y3x.ru/2012/04/svg-animation-events/</link>
		<comments>http://y3x.ru/2012/04/svg-animation-events/#comments</comments>
		<pubDate>Sat, 21 Apr 2012 19:09:22 +0000</pubDate>
		<dc:creator>Ярослав</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Браузеры]]></category>
		<category><![CDATA[Все записи]]></category>
		<category><![CDATA[animate]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[svg]]></category>

		<guid isPermaLink="false">http://y3x.ru/?p=4021</guid>
		<description><![CDATA[Некоторое время назад я уже писал про разные виды анимации в SVG и их использование. Пришло время разобраться с теми событиями которые генерирует любой анимационный элемент. Всего в стандарте SVG описано три события: beginEvent (срабатывает в момент начала анимации), endEvent &#8230; <a href="http://y3x.ru/2012/04/svg-animation-events/">подробнее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Некоторое время назад я уже писал про <a href="http://y3x.ru/2011/07/svg-tags-and-animation/">разные виды анимации в SVG</a> и их использование. Пришло время разобраться с теми событиями которые генерирует любой анимационный элемент.</p>
<p>Всего <a href="http://www.w3.org/TR/SVG/animate.html#InterfaceTimeEvent">в стандарте SVG описано</a> три события: <strong>beginEvent</strong> (срабатывает в момент начала анимации), <strong>endEvent</strong> (срабатывает в конце процесса анимации), <strong>repeatEvent</strong> (отправляется каждый раз, когда начинается новый анимационный цикл).</p>
<p>В теории всё это очень красиво, а как обстоит дело на практике? В результате моих экспериментов получается следующая картина: ни один из доступных мне браузеров не бросил событие при декларации анимационного элемента в SVG-документе. При динамическом создании анимационных элементов события бросают Opera 11.62 и Firefox 11 под Ubuntu. Те же браузеры замечательно делают все это под Windows.</p>
<p>Как так получилось, что любимые Chrome и Chromium ничего не делают &mdash; для меня загадка.<br />
Ниже привожу код для экспериментов:</p>
<pre>
var newElement = document.createElementNS(SVGNS, 'rect');
newElement.setAttribute("width","200");
newElement.setAttribute("y","200");
newElement.setAttribute("height","100");
var animate = document.createElementNS(SVGNS, 'animate');
animate.setAttribute("attributeType","XML");
animate.setAttribute("attributeName","x");
animate.setAttribute("attributeName","x");
animate.setAttribute("from","200");
animate.setAttribute("to","600");
animate.setAttribute("dur","5s");
animate.setAttribute("repeatCount","indefinite");
animate.addEventListener("beginEvent", function() {
    alert("Go!");
}, false);
newElement.appendChild(animate);
ROOT.appendChild(newElement);
</pre>
<p>Если найдется человек, который сможет поймать эти события в Chrome &mdash; буду очень рад услышать историю успеха.</p>
]]></content:encoded>
			<wfw:commentRss>http://y3x.ru/2012/04/svg-animation-events/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Школа весеннего программирования</title>
		<link>http://y3x.ru/2012/04/school-front-end/</link>
		<comments>http://y3x.ru/2012/04/school-front-end/#comments</comments>
		<pubDate>Sat, 21 Apr 2012 18:11:21 +0000</pubDate>
		<dc:creator>Ярослав</dc:creator>
				<category><![CDATA[Все записи]]></category>
		<category><![CDATA[Мероприятия]]></category>

		<guid isPermaLink="false">http://y3x.ru/?p=4023</guid>
		<description><![CDATA[Сегодня, 21 апреля представители компании Motorola Mobility рассказывали в &#171;Весенней школе программирования&#187; о том как можно использовать JavaScript и SVG для отображения мультимедийной информации на телевизионных приставках. В этой заметке хочу поделиться своими впечатлениями от этого мероприятия. Итак, в субботу &#8230; <a href="http://y3x.ru/2012/04/school-front-end/">подробнее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Сегодня, 21 апреля представители компании <strong>Motorola Mobility</strong> рассказывали в &laquo;<a href="http://www.itmozg.ru/show_publication/332">Весенней школе программирования</a>&raquo; о том как можно использовать JavaScript и SVG для отображения мультимедийной информации на телевизионных приставках.</p>
<p>В этой заметке хочу поделиться своими впечатлениями от этого мероприятия. Итак, в субботу утром пришло примерно 15 студентов желающих получить полезную информацию.</p>
<p>В основном я рассказывал все то, о чем пишу <a href="http://y3x.ru">в этом блоге</a>. Про работу <a href="http://y3x.ru/2011/07/svg-intro/">с SVG-файлами</a> и рисование простейших элементов типа <a href="http://y3x.ru/2011/07/svg-circle/">эллипса</a>. Затронул тему градиентов и <a href="http://y3x.ru/2011/07/svg-tags-and-animation/">анимации элементов SVG</a>. Кроме того, речь шла о <a href="http://y3x.ru/2011/08/svg-dom-element-js/">работе с DOM SVG</a> с помощью простого JavaScript. Например, как <a href="http://y3x.ru/2011/07/svg-scripting-and-styles/">подключить JavaScript в SVG-файл</a>, как <a href="http://y3x.ru/2011/08/svg-createelement-dom-js/">создать новый элемент в DOM-дереве</a>. Рассказал и <a href="http://y3x.ru/2012/04/svg-video-audio/">о элементе video</a>. Ну и в заключение рассмотрел <a href="http://y3x.ru/2010/12/raphael/">фреймворк RaphaelJS</a>, описал его достоинства, показал симпатичные демки и маленький пример работы.</p>
<p>Уж не знаю что я делал не так, но временами из аудитории приходилось словно клещами вытаскивать кивок головой в знак того, что можно продолжать рассказывать материал. Хотя, местами удалось развить диалог и даже узнать, что у ребят в голове есть IT-мозг. Видимо это специфика IT-специалистов отмалчиваться, если их лично не спрашивают. Примерно в середине рассказа наконец удалось получить активное внимание <a href="http://y3x.ru/sandbox/svg/map/map.svg">SVG-анимацией</a>, которая, как я заметил, произвела сильное впечатление.</p>
<p><strong>Резюме:</strong><br />
Мероприятие удалось! А из многих слушателей школы могут получиться очень хорошие front-end разработчики.</p>
<p><em>Для себя я сделаю такой вывод:</em><br />
В будущем нужно уделять внимание &laquo;вау&raquo; эффектам т.к. именно они вызывают огонь в глазах и желание узнать больше.</p>
]]></content:encoded>
			<wfw:commentRss>http://y3x.ru/2012/04/school-front-end/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Хороший обзор трех библиотек: RaphaelJS, PaperJS и ProcessingJS</title>
		<link>http://y3x.ru/2012/04/xoroshij-obzor-trex-bibliotek-raphaeljs-paperjs-i-processingjs/</link>
		<comments>http://y3x.ru/2012/04/xoroshij-obzor-trex-bibliotek-raphaeljs-paperjs-i-processingjs/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 18:24:33 +0000</pubDate>
		<dc:creator>Ярослав</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JS-библиотека]]></category>
		<category><![CDATA[Все записи]]></category>
		<category><![CDATA[PaperJS]]></category>
		<category><![CDATA[ProcessingJS]]></category>
		<category><![CDATA[RaphaelJS]]></category>

		<guid isPermaLink="false">http://y3x.ru/?p=3998</guid>
		<description><![CDATA[Сегодня я прочитал интересную статью-сравнение трех графических библиотек: RaphaelJS, PaperJS и ProcessingJS. Резюме примерно следующее: RaphaelJS &#8212; SVG-ориентированная библиотека, которая поддерживает даже старые версии Internet Explorer. Удобна для работы с интерактивными рисунками. PaperJS &#8212; Canvas-ориентированная библиотека, которая тоже весьма удобна &#8230; <a href="http://y3x.ru/2012/04/xoroshij-obzor-trex-bibliotek-raphaeljs-paperjs-i-processingjs/">подробнее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Сегодня я прочитал <a href="http://habrahabr.ru/post/140286/">интересную статью-сравнение</a> трех графических библиотек: <a href="http://y3x.ru/tag/raphael/">RaphaelJS</a>, <strong>PaperJS</strong> и <strong>ProcessingJS</strong>. Резюме примерно следующее:<br />
<em>RaphaelJS</em> &mdash; SVG-ориентированная библиотека, которая поддерживает даже старые версии Internet Explorer. Удобна для работы с интерактивными рисунками.<br />
<em>PaperJS</em> &mdash; Canvas-ориентированная библиотека, которая тоже весьма удобна для интерактивных графических приложений.<br />
<em>ProcessingJS</em> &mdash; быстрая Canvas-ориентированная библиотека для неинтерактивных проектов.</p>
]]></content:encoded>
			<wfw:commentRss>http://y3x.ru/2012/04/xoroshij-obzor-trex-bibliotek-raphaeljs-paperjs-i-processingjs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

