﻿<?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"
	>

<channel>
	<title>Flash, Flex, Air</title>
	<atom:link href="http://flash.digy.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://flash.digy.net</link>
	<description></description>
	<pubDate>Thu, 29 May 2008 10:36:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Хороший стиль Flex-программирования.</title>
		<link>http://flash.digy.net/2008/05/%d1%85%d0%be%d1%80%d0%be%d1%88%d0%b8%d0%b9-%d1%81%d1%82%d0%b8%d0%bb%d1%8c-flex-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f/</link>
		<comments>http://flash.digy.net/2008/05/%d1%85%d0%be%d1%80%d0%be%d1%88%d0%b8%d0%b9-%d1%81%d1%82%d0%b8%d0%bb%d1%8c-flex-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f/#comments</comments>
		<pubDate>Thu, 29 May 2008 09:06:44 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Переводы]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=50</guid>
		<description><![CDATA[На adobe есть хороший документ:
Flex SDK coding conventions and best practices
Оказывается две главы из него уже есть на русском языке в блоге racer242:
Именование
Использование языка программирования
UPD: 29.05.2008
Три главы: Структура файла
]]></description>
			<content:encoded><![CDATA[<p>На adobe есть хороший документ:<br />
<a href="http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions" onclick="javascript:urchinTracker('/outbound/article/http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions');">Flex SDK coding conventions and best practices</a></p>
<p>Оказывается две главы из него уже есть на русском языке в блоге <a href="http://racer242.blogspot.com/" onclick="javascript:urchinTracker('/outbound/article/http://racer242.blogspot.com/');">racer242</a>:<br />
<a href="http://racer242.blogspot.com/2008/05/flex.html" onclick="javascript:urchinTracker('/outbound/article/http://racer242.blogspot.com/2008/05/flex.html');">Именование</a><br />
<a href="http://racer242.blogspot.com/2008/05/flex_23.html" onclick="javascript:urchinTracker('/outbound/article/http://racer242.blogspot.com/2008/05/flex_23.html');">Использование языка программирования</a></p>
<p><strong>UPD: 29.05.2008</strong><br />
Три главы: <a href="http://racer242.blogspot.com/2008/05/flex_29.html" onclick="javascript:urchinTracker('/outbound/article/http://racer242.blogspot.com/2008/05/flex_29.html');">Структура файла</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2008/05/%d1%85%d0%be%d1%80%d0%be%d1%88%d0%b8%d0%b9-%d1%81%d1%82%d0%b8%d0%bb%d1%8c-flex-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Beta CS4: Dreamweaver, Fireworks, Soundbooth. Flex 4 SDK!</title>
		<link>http://flash.digy.net/2008/05/beta-cs4-dreamweaver-fireworks-soundbooth/</link>
		<comments>http://flash.digy.net/2008/05/beta-cs4-dreamweaver-fireworks-soundbooth/#comments</comments>
		<pubDate>Tue, 27 May 2008 05:40:23 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
		
		<category><![CDATA[Новости]]></category>

		<category><![CDATA[новости]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=48</guid>
		<description><![CDATA[На Adobe Labs доступны к скачиванию бэта-версии:
. Dreamweaver CS4: подробнее &#124; скачать
. Fireworks CS4: подробнее &#124; скачать
. Soundbooth CS4: подробнее &#124; скачать
UPD: Урра! Flex 4 SDK Downloads
]]></description>
			<content:encoded><![CDATA[<p>На <a href="http://labs.adobe.com/" onclick="javascript:urchinTracker('/outbound/article/http://labs.adobe.com/');">Adobe Labs</a> доступны к скачиванию бэта-версии:<br />
. Dreamweaver CS4: <a href="http://labs.adobe.com/technologies/dreamweavercs4/" onclick="javascript:urchinTracker('/outbound/article/http://labs.adobe.com/technologies/dreamweavercs4/');">подробнее</a> | <a href="http://www.adobe.com/cfusion/entitlement/index.cfm?e=labs_dreamweavercs4" onclick="javascript:urchinTracker('/outbound/article/http://www.adobe.com/cfusion/entitlement/index.cfm?e=labs_dreamweavercs4');">скачать</a><br />
. Fireworks CS4: <a href="http://labs.adobe.com/technologies/fireworkscs4/" onclick="javascript:urchinTracker('/outbound/article/http://labs.adobe.com/technologies/fireworkscs4/');">подробнее</a> | <a href="http://www.adobe.com/cfusion/entitlement/index.cfm?e=labs_fireworkscs4" onclick="javascript:urchinTracker('/outbound/article/http://www.adobe.com/cfusion/entitlement/index.cfm?e=labs_fireworkscs4');">скачать</a><br />
. Soundbooth CS4: <a href="http://labs.adobe.com/technologies/soundboothcs4/" onclick="javascript:urchinTracker('/outbound/article/http://labs.adobe.com/technologies/soundboothcs4/');">подробнее</a> | <a href="http://labs.adobe.com/technologies/soundboothcs4/" onclick="javascript:urchinTracker('/outbound/article/http://labs.adobe.com/technologies/soundboothcs4/');">скачать</a></p>
<p><strong>UPD:</strong> Урра! <a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4" onclick="javascript:urchinTracker('/outbound/article/http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4');"><strong>Flex 4 SDK Downloads</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2008/05/beta-cs4-dreamweaver-fireworks-soundbooth/feed/</wfw:commentRss>
		</item>
		<item>
		<title>UPD: Adobe Flash Player 10 Astro</title>
		<link>http://flash.digy.net/2008/05/adobe-flash-player-10-astro/</link>
		<comments>http://flash.digy.net/2008/05/adobe-flash-player-10-astro/#comments</comments>
		<pubDate>Wed, 21 May 2008 15:00:30 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
		
		<category><![CDATA[Новости]]></category>

		<category><![CDATA[новости]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=42</guid>
		<description><![CDATA[Несколько полезных ссылок по недавно вышедшему Flash Player&#8217;у 10 (Astro)
Flash Player 10 API. [zip, 6.5Mb]
Подробно об изменениях на английском на официальном сайте
На русском хорошее описание можно прочитать у Constantiner&#8217;a
! Flash Player 10 более не поддерживает Mac OS X v10.1, но зато добавленна поддержка Ubuntu.
! Перед установкой Flash Player 10 настойчиво рекомендуют скачать Uninstaller (EXE, 181kb)
Cистемные [...]]]></description>
			<content:encoded><![CDATA[<p>Несколько полезных ссылок по недавно вышедшему <a href="http://labs.adobe.com/technologies/flashplayer10/" onclick="javascript:urchinTracker('/outbound/article/http://labs.adobe.com/technologies/flashplayer10/');">Flash Player&#8217;у 10 (Astro)</a></p>
<p><strong><a href="http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_as3langref_052008.zip" onclick="javascript:urchinTracker('/outbound/article/http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_as3langref_052008.zip');">Flash Player 10 API.</a></strong> [zip, 6.5Mb]</p>
<p>Подробно об изменениях на английском <a href="http://labs.adobe.com/technologies/flashplayer10/releasenotes.html#features_ce" onclick="javascript:urchinTracker('/outbound/article/http://labs.adobe.com/technologies/flashplayer10/releasenotes.html#features_ce');">на официальном сайте</a></p>
<p>На русском хорошее описание можно прочитать у <a href="http://riapriority.com/blogs/constantiner.php/2008/05/16/flash_player_10_moonlight" onclick="javascript:urchinTracker('/outbound/article/http://riapriority.com/blogs/constantiner.php/2008/05/16/flash_player_10_moonlight');">Constantiner&#8217;a</a></p>
<p><strong>!</strong> Flash Player 10 более не поддерживает Mac OS X v10.1, но зато добавленна поддержка Ubuntu.<br />
<strong>!</strong> Перед установкой Flash Player 10 <a href="http://labs.adobe.com/technologies/flashplayer10/releasenotes.html#install" onclick="javascript:urchinTracker('/outbound/article/http://labs.adobe.com/technologies/flashplayer10/releasenotes.html#install');">настойчиво рекомендуют</a> скачать <a href="http://download.macromedia.com/pub/flashplayer/current/uninstall_flash_player.exe" onclick="javascript:urchinTracker('/outbound/article/http://download.macromedia.com/pub/flashplayer/current/uninstall_flash_player.exe');">Uninstaller</a> (EXE, 181kb)<br />
<a href="http://www.adobe.com/products/flashplayer/productinfo/systemreqs/" onclick="javascript:urchinTracker('/outbound/article/http://www.adobe.com/products/flashplayer/productinfo/systemreqs/');">Cистемные требования</a>[en]</p>
<p><strong>Скачать Flash Player 10</strong> можно с сайта <a href="http://labs.adobe.com/downloads/flashplayer10.html" onclick="javascript:urchinTracker('/outbound/article/http://labs.adobe.com/downloads/flashplayer10.html');">adobe.com</a>:</p>
<p><a href="http://labs.adobe.com/downloads/flashplayer10_ax.html" onclick="javascript:urchinTracker('/outbound/article/http://labs.adobe.com/downloads/flashplayer10_ax.html');">Download ActiveX Control for Windows</a><br />
<a href="http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_install_plugin_051508.exe" onclick="javascript:urchinTracker('/outbound/article/http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_install_plugin_051508.exe');">Download Plugin for Windows</a> (EXE, 1.76 MB)<br />
<a href="http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_install_ub_051508.dmg.zip" onclick="javascript:urchinTracker('/outbound/article/http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_install_ub_051508.dmg.zip');">Download Plugin for Macintosh</a> (DMG.ZIP, 5.78 MB)<br />
<a href="http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_install_linux_051508.tar.gz" onclick="javascript:urchinTracker('/outbound/article/http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_install_linux_051508.tar.gz');">Download Plugin for Linux</a> (TAR.GZ, 3.73 MB)<br />
<a href="http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_install_linux_051508.i386.rpm" onclick="javascript:urchinTracker('/outbound/article/http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_install_linux_051508.i386.rpm');">Download Plugin for Linux</a> (RPM, 3.73 MB)</p>
<p><strong>Установка:</strong></p>
<p>Flex Builder и mxmlc: <a href="http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Player+10+Beta+with+Flex+SDK+3.0.x" onclick="javascript:urchinTracker('/outbound/article/http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Player+10+Beta+with+Flex+SDK+3.0.x');">Targeting Flash Player 10 Beta with Flex SDK 3.0.x</a><br />
FlashDevelop: <a href="http://www.flashdevelop.org/community/viewtopic.php?t=3039" onclick="javascript:urchinTracker('/outbound/article/http://www.flashdevelop.org/community/viewtopic.php?t=3039');">Flash Player 10 support in FlashDevelop</a><br />
FDT: <a href="http://blog.andyone.in/2008/05/16/fdf-astro-love/" onclick="javascript:urchinTracker('/outbound/article/http://blog.andyone.in/2008/05/16/fdf-astro-love/');">FDT + Astro = Love!</a></p>
<p><strong>Уроки и другая полезная информация:</strong></p>
<p>. <a href="http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?forumid=72&#038;catid=675&#038;threadid=1363282&#038;enterthread=y" onclick="javascript:urchinTracker('/outbound/article/http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?forumid=72&#038;catid=675&#038;threadid=1363282&#038;enterthread=y');"><strong>Список добавленных и удаленных методов в Flash Player 10</strong></a><br />
. <a href="http://www.adobe.com/cfusion/webforums/forum/categories.cfm?forumid=72&#038;catid=675" onclick="javascript:urchinTracker('/outbound/article/http://www.adobe.com/cfusion/webforums/forum/categories.cfm?forumid=72&#038;catid=675');">Форумы по FP 10</a><br />
. <a href="http://www.senocular.com/flash/tutorials/flash10drawingapi/" onclick="javascript:urchinTracker('/outbound/article/http://www.senocular.com/flash/tutorials/flash10drawingapi/');">Flash Player 10 Drawing API</a> [en] - хорошее описание новых методов рисования в 10 плеере, примеры и демки.<br />
. <a href="http://yarovoy.com/2008/05/21/using_pixel_bender_filters_in_actionscript_3/" onclick="javascript:urchinTracker('/outbound/article/http://yarovoy.com/2008/05/21/using_pixel_bender_filters_in_actionscript_3/');">Использование фильтров Pixel Bender в ActionScript 3</a> by <a href="http://yarovoy.com/" onclick="javascript:urchinTracker('/outbound/article/http://yarovoy.com/');">Garbage Collector</a></p>
<p><strong>Видеоуроки</strong> (gotoAndLearn.com) [en]:</p>
<p>. <a href="http://gotoandlearn.com/player.php?id=74" onclick="javascript:urchinTracker('/outbound/article/http://gotoandlearn.com/player.php?id=74');">Flash Player 10 Beta: 3D</a> - использование третьего измерения.<br />
. <a href="http://gotoandlearn.com/player.php?id=76" onclick="javascript:urchinTracker('/outbound/article/http://gotoandlearn.com/player.php?id=76');">Flash Player 10 Beta: FileReference</a> - методы чтения и записи локальных файлов используя новый класс FileReference.<br />
. <a href="http://gotoandlearn.com/player.php?id=75" onclick="javascript:urchinTracker('/outbound/article/http://gotoandlearn.com/player.php?id=75');">Flash Player 10 Beta: Dynamic Sound</a> - динамическое создание звуков используя новые возможности плеера.</p>
<p>Попробовать что то написать под Flash Player 10 можно оспользуя Flex SDK. Что качать и как настраивать на английском описанно тут: <a href="http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Player+10+Beta+with+Flex+SDK+3.0.x" onclick="javascript:urchinTracker('/outbound/article/http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Player+10+Beta+with+Flex+SDK+3.0.x');">Targeting Flash Player 10 Beta with Flex SDK 3.0.x</a></p></p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2008/05/adobe-flash-player-10-astro/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Регистрация и вход в систему: ошибки в дизайне (Часть 2)</title>
		<link>http://flash.digy.net/2008/05/usability_register_login_forms_2/</link>
		<comments>http://flash.digy.net/2008/05/usability_register_login_forms_2/#comments</comments>
		<pubDate>Tue, 20 May 2008 20:48:59 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
		
		<category><![CDATA[usability]]></category>

		<category><![CDATA[статьи]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=47</guid>
		<description><![CDATA[
Начало: Регистрация и вход в систему: ошибки в дизайне (Часть 1)
Разработка процесса регистрации и входа в систему, который не препятствовал бы пользователям, задача довольно сложная. Она может казаться простой в самом начале, но куча тонкостей может превратить то, что должно быть простым, в стресс для пользователей.
В предыдущей статье я обсудил восемь общих дизайнерских ошибок при [...]]]></description>
			<content:encoded><![CDATA[<p><span id="more-47"></span><!--noteaser--></p>
<p>Начало: <a href="http://flash.digy.net/2008/05/регистрация-и-вход-в-систему-ошибки-в-д/" >Регистрация и вход в систему: ошибки в дизайне (Часть 1)</a></p>
<p>Разработка процесса регистрации и входа в систему, который не препятствовал бы пользователям, задача довольно сложная. Она может казаться простой в самом начале, но куча тонкостей может превратить то, что должно быть простым, в стресс для пользователей.</p>
<p>В предыдущей статье я обсудил восемь общих дизайнерских ошибок при разработке процесса входа в систему. В этой статье я опишу еще восемь ошибок, с которыми сталкиваются пользователи при попытке регистрации и при входе в систему.</p>
<p><strong>Ошибка 9: Не сообщать требования к имени пользователя и длине пароля</strong></p>
<p>На сайте Cisco, когда пользователь подбирает себе идентификатор, ему сообщается, что имя «должно содержать минимум одну букву, не может содержать пробелов, может содержать цифры». Но после того как пользователь попытается зарегистрироваться с именем из 6 символов, появляется сообщение об ошибке, которое на самом деле изменяет правила – «имя должно быть длиной от 9 до 50 символов».</p>
<p>Не ясно, зачем Cisco удивляет таким дополнительным требованием пользователей, выбравших для себя короткие имена. Ни один из пользователей, принимавших участие в нашем тестировании, не был рад узнать эту дополнительную информацию.</p>
<p>При создании новой учетной записи Google Mail, пользователю доступна кнопка «Check Availability», которая проинформирует пользователя о требовании минимальной длины (6 символов). Такое решение лучше, чем на сайте Cisco, так как пользователю не нужно заполнять всю форму целиком, чтобы узнать, что учетную запись нельзя зарегистрировать.</p>
<p>Blinksale поступает еще лучше, проверяя логин после каждого напечатанного символа. По мере того, как пользователь вводит символы, ему сообщается, что логин слишком короткий или содержит недопустимые символы.</p>
<p><strong>Ошибка 10: Предъявлять требования к паролям строже, чем в АНБ</strong></p>
<p>Наша история о регистрации на сайте Cisco была бы не полной, если бы мы не заглянули еще на одну страницу: страница длиной в два с половиной экрана, рассказывающая как правильно выбрать пароль. Они действительно не хотят, чтобы кто-нибудь покупал их мячи для гольфа.</p>
<p>Многие выбирают пароли, основываясь на важности информации. Они спрашивают себя, что случится, если эта информация утечет наружу? Некоторые из пользователей, с которыми мы общались, используют несколько паролей, по одному для каждого уровня важности.</p>
<p>Жесткая политика безопасности для большинства обычных пользователей работать не будет. Это значит, что пользователям придется придумать и запомнить новый пароль – действия с высокой когнитивной нагрузкой (которые, по мнению пользователей, могут оказаться слишком сложными). Важно, чтобы сайты не остались без пользователей с высокими требованиями к безопасности.</p>
<p><strong>Ошибка 11: Использовать контрольные вопросы, ответы на которые нельзя вспомнить через год</strong></p>
<p>Один пользователь потерял доступ к своему банковскому счету, потому что не смог вспомнить ответ на контрольный вопрос. Прошло почти два года с момента, когда эта информация была введена. Например, вопрос, «На какой улице вы росли» может запутать пользователя, если он часто переезжал. Или пользователь не сможет вспомнить, как конкретно он ввел название улицы – «Forest» или «Forest Drive».</p>
<p>Служба поддержки может довести пользователя до инфаркта: «Помните, что ответы вводятся с учетом регистра». Вы не просто должны помнить ответы в течении нескольких лет, вы еще должны помнить какими именно символами вы их вводили.</p>
<p>Контрольные вопросы, новая техника для помощи пользователям в восстановлении пароля, по-прежнему не проверена. Трудно придумать вопрос, ответ на который будут помнить долгое время.</p>
<p>Virgin America используют сумасшедшие наборы вопросов, например (это не шутка), «Кто ваш любимы актер или актриса?», «Какой ваш любимый сборник музыки?» и «Сколько деревьев заточил бы сурок, если бы сурок мог бы точить деревья». Мы наемся, что они не станут долго использовать эти вопросы для восстановления паролей.</p>
<p><strong>Ошибка 12: Не возвращать пользователя к его цели</strong></p>
<p>На сайте AllRecipes вы можете легко найти рецепт и сохранить его, чтобы вернуться через некоторое время. Конечно, для этого нужно сначала создать учетную запись. Четыре экрана с вопросами, мало связанными с рецептами. Когда все сделано, пользователя отправляют на главную страницу и предлагают заново найти рецепт, который он хотел бы сохранить.</p>
<p>Реализовать возвращение в точку, откуда пользователь отправился на регистрацию, технически сложно. Тем не менее, не нужно недооценивать, насколько сложно пользователю снова добраться до своей цели.</p>
<p><strong>Ошибка 13: Не объяснять подробности при вводе неправильного логина или пароля</strong></p>
<p>Вернувшись на сайт электронного магазина, на котором он не был несколько месяцев, пользователь ввел адрес электронной почты и пароль, которые, как он считал, должны подойти к этому сайту. Но они оказались неправильными. Сообщение об ошибке было простым: «Неправильный логин. Попробуйте еще раз». Был введен неправильный пароль или же он зарегистрировался на другой адрес?</p>
<p>Пользователь попробовал несколько комбинаций адресов и паролей, но ничего не подошло. В конце концов, он оставил корзину с товарами на 500 долларов и ушел. Магазин потерял довольного пользователя и приобрел разочарованного в один момент.</p>
<p>На сайте Staples при вводе неверного имени пользователя сообщается: «Извините, но мы не можем найти учетную запись для этого имени пользователя». При вводе неправильного пароля сообщается: «Имя пользователя и пароль не совпадают с нашими записями». Эта тонкость помогает пользователям войти немного быстрее.</p>
<p>Сайт American Express сообщает, что введен неправильный пароль, даже если введен неправильный логин. Чтобы добить пользователей, они предлагают две отдельных процедуры восстановления: одна при неправильном логине, другая при неправильном пароле. Лучшие сайты предлагают одну процедуру, независимо от ошибки пользователя.</p>
<p><strong>Ошибка 14: Не показывать ссылку на регистрацию, при ошибке авторизации</strong></p>
<p>Многие пользователи зарегистрированы на таком количестве сайтов, что иногда не могут вспомнить, на каких сайтах уже имеют учетные записи. Многие пользователи сначала пытаются войти под наиболее вероятным с их точки зрения именем и паролем. Если войти не удается, они отправляются регистрироваться.</p>
<p>На сайте CollegeBoard при неудачной авторизации пользователю предлагается нажать на ссылку «Забыли пароль?». На новой странице пользователь может ввести адрес электронной почты, на которую будут отправлены восстановленные данные.</p>
<p>Однако, если адрес не совпадает с записями уже имеющихся, пользователю нужно зарегистрироваться. К сожалению, на этой странице нет никакой возможности сделать это. Пользователю придется вернуться на несколько страниц назад, чтобы начать процедуру регистрации.</p>
<p><strong>Ошибка 15: Не позволять пользователям восстановить свой пароль без отправки его по электронной почте</strong></p>
<p>Сообщить пользователю, что вы отправите ему пароль по электронной почте прекрасное решение, если пользователь знает, какой адрес вы используете. К сожалению, многие пользователи меняют свои адреса со временем. Или же пользователь может не иметь возможности получить доступ к своей почте (например, из дома не может посмотреть рабочий почтовый адрес).</p>
<p><strong>Ошибка 16: Требовать более чем один элемент при восстановлении пароля</strong></p>
<p>Если пользователь забудет логин или пароль на JC Penney, ему нужно будет ввести адрес электронной почты и номер телефонного счета. Потребовать одно или другое было бы замечательно, но требование обоих значений, вероятно, будет приводить к снижению продаж.</p>
<p><strong>Поиск ошибок</strong></p>
<p>Создание удобного процесса регистрации и входа в систему требует много работы. Лучший способ найти проблемы – периодические юзабилити-тестирования с постоянными пользователями, пользователями, которые иногда пользуются сайтом и новыми пользователями. Если вы тестируете, вы обнаружите эти ошибки (и, возможно, другие) практически мгновенно.</p>
<p><BR>Автор: Jared M. Spool<br />
Источник [en]: <a href="http://www.uie.com/articles/account_design_mistakes_part2/" onclick="javascript:urchinTracker('/outbound/article/http://www.uie.com/articles/account_design_mistakes_part2/');">Account Sign-in: 8 Design Mistakes to Avoid</a><br />
Источник [ru]: <a href="http://p1uton.ru/2008/05/11/8-more-design-mistakes-with-account-sign-in/" onclick="javascript:urchinTracker('/outbound/article/http://p1uton.ru/2008/05/11/8-more-design-mistakes-with-account-sign-in/');">Регистрация и вход в систему: ошибки в дизайне</a></p>
<p><BR></p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2008/05/usability_register_login_forms_2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Регистрация и вход в систему: ошибки в дизайне (Часть 1)</title>
		<link>http://flash.digy.net/2008/05/%d1%80%d0%b5%d0%b3%d0%b8%d1%81%d1%82%d1%80%d0%b0%d1%86%d0%b8%d1%8f-%d0%b8-%d0%b2%d1%85%d0%be%d0%b4-%d0%b2-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d1%83-%d0%be%d1%88%d0%b8%d0%b1%d0%ba%d0%b8-%d0%b2-%d0%b4/</link>
		<comments>http://flash.digy.net/2008/05/%d1%80%d0%b5%d0%b3%d0%b8%d1%81%d1%82%d1%80%d0%b0%d1%86%d0%b8%d1%8f-%d0%b8-%d0%b2%d1%85%d0%be%d0%b4-%d0%b2-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d1%83-%d0%be%d1%88%d0%b8%d0%b1%d0%ba%d0%b8-%d0%b2-%d0%b4/#comments</comments>
		<pubDate>Tue, 20 May 2008 06:00:57 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
		
		<category><![CDATA[usability]]></category>

		<category><![CDATA[статьи]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=44</guid>
		<description><![CDATA[
Наряду с популярной линейкой сетевого оборудования, Cisco Systems предлагает своим посетителям купить кое-что еще: под маркой Cisco продается спортивная одежда и аксессуары, все, от курток до мячей для гольфа. Единственной проблемой является то, что для того чтобы увидеть вторую линейку товаров, вам нужно сначала зарегистрироваться.
Да. Вы правильно прочитали. Просто чтобы увидеть имеющиеся товары, нужно создать [...]]]></description>
			<content:encoded><![CDATA[<p><span id="more-44"></span><!--noteaser--></p>
<p>Наряду с популярной линейкой сетевого оборудования, Cisco Systems предлагает своим посетителям купить кое-что еще: под маркой Cisco продается спортивная одежда и аксессуары, все, от курток до мячей для гольфа. Единственной проблемой является то, что для того чтобы увидеть вторую линейку товаров, вам нужно сначала зарегистрироваться.</p>
<p>Да. Вы правильно прочитали. Просто чтобы увидеть имеющиеся товары, нужно создать учетную запись, нужно заполнить форму из 45 полей на четырех страницах. Если после этого вы вернетесь обратно, то сможете увидеть лазерные брелки с логотипом Cisco.</p>
<p>Есть много других преимуществ, которые можно предложить пользователям, создающих учетную запись и входящих в систему. Вы знаете, кто пользуется вашим сайтом, как часто они его посещают и что делают на сайте. Вы можете хранить информацию, которая, возможно, потребуется им в будущем – история заказов или платежей. И вы можете предложить им информацию и сервисы, зарезервированные для лучших пользователей.</p>
<p>Тем не менее, по результатам юзабилити-тестов известно, что регистрация и вход в систему является постоянной проблемой. Это наиболее распространенная проблема, которая отпугивает пользователей от покупок в электронных магазинах. И увеличивает число звонков в службу поддержки.</p>
<p>Разработка процесса регистрации и входа в систему, который не препятствовал бы пользователям, задача довольно сложная. Она может казаться простой в самом начале, но куча тонкостей может превратить то, что должно быть простым, в стресс для пользователей.</p>
<p>Вот основные ошибки, с которыми пользователи сталкиваются, когда пытаются регистрироваться или входить на сайты.</p>
<p><strong>Ошибка 1: Требовать входа в систему в первую очередь</strong></p>
<p>Похоже, что Cisco требует от вас сначала войти в систему и только потом показывает мячики для гольфа, потому что еще не все продукты доступны для широкой аудитории. Некоторые из них предназначены только для сотрудников. Некоторые – только для сертифицированных инженеров Cisco. Чтобы знать, какие товары и по какой цене отображать, сайт должен знать кто вы.</p>
<p>К счастью, большинство сайтов не используют такой подход. На большинстве сайтов вы можете сделать много вещей, не идентифицируя себя.</p>
<p>И клиентам такой подход нравится. Они ненавидят, когда нужно регистрироваться для того, чтобы что-нибудь простое – скачать бланк или заплатить за продукт, который они уже выбрали. Как сказал один из пользователей «я не хочу заводить с ними отношений, я просто хочу купить товар».</p>
<p>Midwest Airlines не требуют от своих пользователей регистрироваться, чтобы купить билет. Вместо этого, пользователи могут делать покупки в качестве гостя. Конечно, им все равно придется ввести свое имя и платежные данные, но им не нужно придумывать имя пользователя и пароль, если они не хотят.</p>
<p><strong>Ошибка 2: Слишком ранно требовть входа в систему</strong></p>
<p>Cisco требует войти в систему (или зарегистрироваться), прежде, чем клиент сможет увидеть продукцию. Если бы это требование появлялось после нажатия на ссылку «Показать скидку» или «Оформить заказ», клиенты были бы меньше разочарованы.</p>
<p>Amazon установил правило не требовать авторизации до тех пор, пока это возможно. Нажав на «Моя учетная запись», пользователь увидит список опций, доступных для пользователей еще не идентифицировавших себя. В некоторых случаях, например, при покупке одним кликом, вход в систему вообще не требуется.</p>
<p><strong>Ошибка 3: Не раскрывать преимущества регистрации</strong></p>
<p>Регистрация отнимает время пользователя. Они должны ответить на вопросы, многие из которых не имею ничего общего с их текущей задачей. Они должны придумать имя пользователя, которое им придется запомнить. Они должны подобрать пароль, который тоже нужно будет запомнить. Они беспокоятся, что их информация может утечь не в те руки.</p>
<p>Что они получают в обмен на это дополнительное бремя? Midwest Airlines просто перечислены некоторые преимущества, которые дает вход в систему: доступ к учетной записи для часто летающих пассажиров, возможность бронирования, изменение параметров брони, после того как бронь сделана.</p>
<p><strong>Ошибка 4: Скрывать или делать кнопку входа слабо заметной</strong></p>
<p>Часто клиенты Netflix сразу попадают на свою персональную домашнюю страницу, показывающую рекомендуемые фильмы. Тем не менее, когда cookies будут удалены, им придется заново войти в систему.</p>
<p>Главная страница была ориентирована в первую очередь на новых пользователей. На самом видном месте была расположена кнопка регистрации. К сожалению, кнопка входа в систему была менее заметна. Это вызывало больше количество звонков в службу поддержки, пока команда не сделала кнопку входа более заметной.</p>
<p><strong>Ошибка 5: Не выделять функции «Создать новую учетную запись» или «Вспомнить пароль» отдельными кнопками или ссылками</strong></p>
<p>На сайте Spirit Air пользователям предоставляется простой способ создать новую учетную запись или восстановить потерянный пароль. Плохая новость для пользователей состоит в том, что ссылки на эти функции появлялись в выпадающем меню и не выглядели как ссылки. Они воспринимались пользователями как пояснительный текст. Некоторые пользователи не понимали, что они были там, и искали их в других частях сайта. Безрезультатно.</p>
<p><strong>Ошибка 6: Не давать возможность войти в систему в ключевых точках</strong></p>
<p>Мы отмечали, что многие пользователи предпочитают входить в систему в последний момент. Может быть потому, что они не хотят отвлекаться, вспоминая свои данные или потому, что погружены в свои задачи. Они захотят войти, когда учетная запись позволит им не вводить повторно свои платежные данные.</p>
<p>Лучшие сайты предполагают такую возможность и позволяют пользователям легко входить в систему. Orbitz позволяет своим клиентам начать процесс приобретения, а затем предлагает войти в систему, чтобы ввести дополнительные параметры, такие как еда или расположение места (у окна или у прохода).</p>
<p><strong>Ошибка 7: Запрашивать слишком много информации при регистрации</strong></p>
<p>Общая ошибка, которую совершают дизайнеры, это когда пользователь начинает отвечать на вопросы, попытаться спросить его все, что только можно. Cisco в процессе регистрации просит указать число результатов, которые пользователь хотел бы видеть на странице поиска.</p>
<p>Пользователи, как правило, готовы ответить на несколько вопросов при регистрации. Лучшие сайты просто спрашивают имя пользователя и пароль (или адрес электронной почты и пароль). Все остальное можно попросить указать в профиле, если возникнет такая необходимость.</p>
<p><strong>Ошибка 8: Не сообщать пользователям, как будет использоваться их информация</strong></p>
<p>«Зачем им мой домашний номер телефона?» спрашивает пользователь, пытаясь скачать бланк по работе. Естественно, что пользователь будет подозрительным.</p>
<p>На сайте Virgin America дизайнеры объясняют, зачем им нужны номера телефонов: «В случае необходимости мы свяжемся с вами, по крайней мере по одному из номеров». Хотя они и запрашивают номера, они объясняют для чего это нужно.</p>
<p>На сайте Midwest Airlines еще проще: «Укажите номер телефона, по которому можно с вами связаться в случае задержки вашего рейса». Кто откажется от такого сервиса?</p>
<p><strong>Поиск ошибок</strong></p>
<p>Создание удобного процесса регистрации и входа в систему требует много работы. Лучший способ найти проблемы – периодические юзабилити-тестирования с постоянными пользователями, пользователями, которые иногда пользуются сайтом и новыми пользователями. Если вы тестируете, вы обнаружите эти ошибки (и, возможно, другие) практически мгновенно.</p>
<p><BR>Автор: Jared M. Spool<br />
Источник [en]: <a href="http://www.uie.com/articles/account_design_mistakes/" onclick="javascript:urchinTracker('/outbound/article/http://www.uie.com/articles/account_design_mistakes/');">Account Sign-in: 8 Design Mistakes to Avoid</a><br />
Источник [ru]: <a href="http://p1uton.ru/2008/05/01/account-sign-in-8-design-mistakes-to-avoid/" onclick="javascript:urchinTracker('/outbound/article/http://p1uton.ru/2008/05/01/account-sign-in-8-design-mistakes-to-avoid/');">Регистрация и вход в систему: ошибки в дизайне</a></p>
<p><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2008/05/%d1%80%d0%b5%d0%b3%d0%b8%d1%81%d1%82%d1%80%d0%b0%d1%86%d0%b8%d1%8f-%d0%b8-%d0%b2%d1%85%d0%be%d0%b4-%d0%b2-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d1%83-%d0%be%d1%88%d0%b8%d0%b1%d0%ba%d0%b8-%d0%b2-%d0%b4/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Alternativa 3D 5.0 Flash Player 10 Astro</title>
		<link>http://flash.digy.net/2008/05/alternativa-3d-50-flash-player-10-astro/</link>
		<comments>http://flash.digy.net/2008/05/alternativa-3d-50-flash-player-10-astro/#comments</comments>
		<pubDate>Mon, 19 May 2008 19:09:51 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
		
		<category><![CDATA[Без категории]]></category>

		<category><![CDATA[Ссылки]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=43</guid>
		<description><![CDATA[В блоге Alternativa 3D появились 2 демки под Flash Player 10: первая, вторая
Как это выглядело на Flash Player 9: Alternativa3D 5.0 (сборка 1, FP9)
]]></description>
			<content:encoded><![CDATA[<p>В <a href="http://blog.alternativaplatform.com/ru/2008/05/16/alternativa-3d-flash-player-10-astro/" onclick="javascript:urchinTracker('/outbound/article/http://blog.alternativaplatform.com/ru/2008/05/16/alternativa-3d-flash-player-10-astro/');">блоге</a> Alternativa 3D появились 2 демки под Flash Player 10: <a href="http://blog.alternativaplatform.com/ru/files/2008/04/bunker_fp10.swf" onclick="javascript:urchinTracker('/outbound/article/http://blog.alternativaplatform.com/ru/files/2008/04/bunker_fp10.swf');">первая</a>, <a href="http://blog.alternativaplatform.com/ru/files/2008/04/temple_fp10.swf" onclick="javascript:urchinTracker('/outbound/article/http://blog.alternativaplatform.com/ru/files/2008/04/temple_fp10.swf');">вторая</a></p>
<p>Как это выглядело на Flash Player 9: <a href="http://blog.alternativaplatform.com/ru/2008/04/18/alternativa3d-5-m1/" onclick="javascript:urchinTracker('/outbound/article/http://blog.alternativaplatform.com/ru/2008/04/18/alternativa3d-5-m1/');">Alternativa3D 5.0 (сборка 1, FP9)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2008/05/alternativa-3d-50-flash-player-10-astro/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Модульное тестирование с помощью FlexUnit</title>
		<link>http://flash.digy.net/2008/04/%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-flexunit/</link>
		<comments>http://flash.digy.net/2008/04/%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-flexunit/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 20:17:51 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Переводы]]></category>

		<category><![CDATA[переводы]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=41</guid>
		<description><![CDATA[

Модульное тестирование с помощью FlexUnit
(Unit Testing with FlexUnit)
Введение
FlexUnit - фрейворк с открытым исходным кодом созданный Adobe для реализации модульного тестирования во Flex&#8217;e. Основан на широко используемом фрейворке для тестирования Java-приложений JUnit. FlexUnit предоставляет возможность низкоуровнего тестирования системы - первого уровня обнаружения ошибок в приложении.
Понятие модульного тестирования 
Принцип модульного тестирования долгое время являлся частью традиционной модели [...]]]></description>
			<content:encoded><![CDATA[<p><span id="more-41"></span><br />
<!--noteaser--></p>
<p><strong>Модульное тестирование с помощью FlexUnit</strong><br />
(Unit Testing with FlexUnit)</p>
<p><strong>Введение</strong></p>
<p><a href="http://code.google.com/p/as3flexunitlib/" onclick="javascript:urchinTracker('/outbound/article/http://code.google.com/p/as3flexunitlib/');">FlexUnit</a> - фрейворк с открытым исходным кодом созданный Adobe для реализации <a href="http://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D1%82-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" onclick="javascript:urchinTracker('/outbound/article/http://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D1%82-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5');">модульного тестирования</a> во Flex&#8217;e. Основан на широко используемом фрейворке для тестирования Java-приложений <a href="http://junit.sourceforge.net/" onclick="javascript:urchinTracker('/outbound/article/http://junit.sourceforge.net/');">JUnit</a>. FlexUnit предоставляет возможность низкоуровнего тестирования системы - первого уровня обнаружения ошибок в приложении.</p>
<p><strong>Понятие модульного тестирования</strong> </p>
<p>Принцип модульного тестирования долгое время являлся частью традиционной модели разработки приложений - <a href="http://ru.wikipedia.org/wiki/Модель_водопада" onclick="javascript:urchinTracker('/outbound/article/http://ru.wikipedia.org/wiki/Модель_водопада');">Водопада</a> (Waterfall model). Однако, в последнее время, данный принцип приобрел популярность как один из главных принципов <a href="http://ru.wikipedia.org/wiki/Экстремальное_программирование" onclick="javascript:urchinTracker('/outbound/article/http://ru.wikipedia.org/wiki/Экстремальное_программирование');">экстремального программирования</a> (Extreme Programming). Используя этот стиль программирования сначала создаются тесты для модулей, а потом уже пишется сам код. Так же часто проводится <a href="http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3" onclick="javascript:urchinTracker('/outbound/article/http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3');">реорганизация кода</a> из-за добавления новых возможностей. Тестирование модулей  помогает найти ошибки в реорганизованном коде и может быть использованно как часть <a href="http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" onclick="javascript:urchinTracker('/outbound/article/http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5');">регрессионного тестирования</a> чтоб проверить не повлияли ли сделанные изменения на уже существующую функциональность.</p>
<p>Модульное тестирование может быть автоматизированно и включенно отдельным этапом в сборку (build) приложения. Для облегчения автоматической сборки компания Adobe создала специальные задания (tasks) для Ant&#8217;a. Используя Ant выможете автоматически компилировать и тестировать ваши Flex приложения.</p>
<p>Модульное тестирование не заменяет собой весь процесс тестирования. Есть много классов ошибок которые не покрываются его возможностями - ошибки интерграции, системные ошибки, и вопросы производительности.</p>
<p><strong>Что такое Модульное тестирование?</strong></p>
<p>Чтобы это понять, сначала надо определиться что такое &#8220;модуль&#8221;. Модуль - это наименьшая часть кода, которая поддается тестированию. В данном случае не имеется ввиду каждая строчка кода, а часть кода, выполняющая определенное действие - это может быть любая нетривиальная функция или метод. В отличии от многих других форм тестирования, тесты модулей обычно составляются самим разработчиком. Разработчик тестирует код чтоб убедиться, что каждый метод исполняется как надо. В теории, если каждая низкоуровневая функция работает должным образом, то и более высокие уровни <a href="http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" onclick="javascript:urchinTracker('/outbound/article/http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5');">интеграционного тестирования</a> должны содержать меньше ошибок.</p>
<p><strong>Предмет тестирования</strong></p>
<p>Перед тем как описывать настройку FlexUnit нам нужен объект тестирования. Как пример, ниже приведен простой класс банковского аккаунта, позволяющий пополнение, снятие со счета, а так же получение информации о балансе счета.</p>
<p><strong>BankAccount.as</strong></p>
<p><div class="codecolorer-container actionscript"><div class="codecolorer" style="font-family: monospace;">package&lt;br /&gt;<br />
<span class="br0">&#123;</span>&lt;br /&gt;<br />
&nbsp;&nbsp; &nbsp;<span class="kw3">public</span> <span class="kw2">class</span> BankAccount&lt;br /&gt;<br />
&nbsp;&nbsp; &nbsp;<span class="br0">&#123;</span>&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> <span class="kw3">private</span> balance:<span class="kw3">Number</span>=<span class="nu0">0</span>;&lt;/p&gt;<br />
&lt;p&gt;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;<span class="kw3">public</span> <span class="kw2">function</span> deposit<span class="br0">&#40;</span>amount:<span class="kw3">Number</span><span class="br0">&#41;</span><span class="br0">&#123;</span>&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;balance=balance+amount;&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;<span class="br0">&#125;</span>&lt;/p&gt;<br />
&lt;p&gt;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;<span class="kw3">public</span> <span class="kw2">function</span> withdraw<span class="br0">&#40;</span>amount:<span class="kw3">Number</span><span class="br0">&#41;</span><span class="br0">&#123;</span>&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;balance=balance-amount;&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;<span class="br0">&#125;</span>&lt;/p&gt;<br />
&lt;p&gt;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;<span class="kw3">public</span> <span class="kw2">function</span> getBalance<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">Number</span><span class="br0">&#123;</span>&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<span class="kw1">return</span> balance;&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;<span class="br0">&#125;</span>&lt;br /&gt;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span>&lt;br /&gt;<br />
<span class="br0">&#125;</span>&lt;br /&gt;</div></div>
</p>
<p><strong>Основы FlexUnit&#8217;а</strong></p>
<p>Для запуска FlexUnit необходимо:</p>
<ul>
<li>1. Скачать FlexUnit и включить библиотеку;</li>
<li>2. Создать тесты для модулей;</li>
<li>3. Создать набор тестов;</li>
<li>4. Передать набор тестов на выполнение.</li>
</ul>
<p><strong>Подключение библиотеки FlexUnit.</strong></p>
<p>FlexUnit можно скачать на странице Google Code <a href="http://code.google.com/p/as3flexunitlib/" onclick="javascript:urchinTracker('/outbound/article/http://code.google.com/p/as3flexunitlib/');">http://code.google.com/p/as3flexunitlib/</a>. После извлечения файлов из zip-архива в директории bin вы найдете файл библиотеки flexunit.swc, который надо добавить в ваш flex-проект.</p>
<p>Если вы создаете новый проект, вы можете указывать библиотеки в процессе создания. На втором шаге создания проекта есть закладка Library path - нажмите на нее, а затем на кнопку Add SWC. Это откроет диалог открытия файла и вы можете выбрать SWC файл.</p>
<p>Если у вас есть существующий проект, вы можете подключить библиотеку в свойствах проекта. Правой кнопкой кликните на проект, в выпадающем меню выберите Properties. В левой части выберите Flex Build Path, а затем Library path вкладку. Нажмите на кнопку Add SWC чтоб добавить flexunit.swc.</p>
<p>Этот процесс намного проще для пользователей Flex 3. Скачав flexunit.swc, просто поместите его в папку libs вышего проекта.</p>
<p><strong>Создание тестов</strong></p>
<p>Далее переходим к созданию тестов. Они будут находиться в новом классе, который расширяет базовый класс <tt>TestCase</tt>. Назовем его <tt>BankAccountTest</tt>. Этот класс будет содержать методы с нашими тестами. Для каждого тестируемого модуля необходимо создать отдельный метод. В нашем примере мы будем тестировать методы <tt>deposit</tt> и <tt>withdraw</tt> класса <tt>BankAccount</tt>, поэтому имена наших тестов будут <tt>testDeposit</tt> и <tt>testWithdraw</tt>. Обязательное условие - имена тестовых методов должны начинаться со слова test. Позже, когда мы добавим созданные тесты в наш набор тестов, автоматически будут выбираться имена, начинающиеся со слова test. Если названия ваших методов будут начинаться не с test, то эти методы не будут выполненны.</p>
<p>Любой тест состоит из логических утверждений. Если утверждение верно, тест проходит проверку, если же утверждение ошибочно, то, соответственно, нет.</p>
<p>Существует несколько доступных методов утверждений: <tt>assertTrue</tt>, <tt>assertFalse</tt>, <tt>assertNull</tt>, <tt>assertEquals </tt>и несколько других. Методы очень схожи - получают необязательное тескстовое сообщение и логический тест. Несмотря на то, что тестовые сообщения не являются обязательными, их можно использовать для более быстрого определения теста, вызвавшего ошибку. Если результат логичесткой проверки принимает значение <tt>true</tt>, утверждение считается верным, и наоборот. Например: если я создаю банковский счет и кладу на него 50 рублей, тогда мой баланс должен быть равен 50 рублям. Для такого случая тест будет выглядеть так:</p>
<p><div class="codecolorer-container actionscript"><div class="codecolorer" style="font-family: monospace;"><span class="kw2">var</span> bankAccount:BankAccount=<span class="kw2">new</span> BankAccount<span class="br0">&#40;</span><span class="br0">&#41;</span>;&lt;br /&gt;<br />
bankAccount.<span class="me1">deposit</span><span class="br0">&#40;</span><span class="nu0">50</span><span class="br0">&#41;</span>;&lt;br /&gt;<br />
assertTrue<span class="br0">&#40;</span><span class="st0">&quot;Balance on a new account after 50 deposit is 50&quot;</span>, bankAccount.<span class="me1">getBalance</span><span class="br0">&#40;</span><span class="br0">&#41;</span> == <span class="nu0">50</span><span class="br0">&#41;</span>;&lt;br /&gt;</div></div>
</p>
<p>Этот тест очень простой и легко проходится. Если на моем балансе нет 50р. после того как я положил 50р., значит у меня проблемы с методом <tt>deposit</tt>, либо <tt>getBalance</tt>. Для этого примера у нас всего несколько утверждений, но вам следует сделать все возможные проверки чтобы покрыть как можно больше случаев. Так выглядит наш конечный класс с добавленными несколькими тестами:</p>
<p><strong>BankAccountTest.as</strong></p>
<p><div class="codecolorer-container actionscript"><div class="codecolorer" style="font-family: monospace;">package <span class="br0">&#123;</span>&lt;br /&gt;<br />
&nbsp; &nbsp; <span class="kw3">import</span> flexunit.<span class="me1">framework</span>.<span class="me1">TestCase</span>;&lt;/p&gt;<br />
&lt;p&gt;&nbsp; &nbsp; &nbsp;<span class="kw3">public</span> <span class="kw2">class</span> BankAccountTest <span class="kw3">extends</span> TestCase <span class="br0">&#123;</span>&lt;/p&gt;<br />
&lt;p&gt;&nbsp; &nbsp; &nbsp;&nbsp;<span class="kw3">public</span> <span class="kw2">function</span> testDeposit<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span>&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<span class="kw2">var</span> bankAccount:BankAccount=<span class="kw2">new</span> BankAccount<span class="br0">&#40;</span><span class="br0">&#41;</span>;&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;bankAccount.<span class="me1">deposit</span><span class="br0">&#40;</span><span class="nu0">50</span><span class="br0">&#41;</span>;&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;assertTrue<span class="br0">&#40;</span><span class="st0">&quot;Balance on a new account after 50 deposit is 50&quot;</span>, bankAccount.<span class="me1">getBalance</span><span class="br0">&#40;</span><span class="br0">&#41;</span> == <span class="nu0">50</span><span class="br0">&#41;</span>;&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;bankAccount.<span class="me1">deposit</span><span class="br0">&#40;</span><span class="nu0">25</span><span class="br0">&#41;</span>;&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;assertEquals<span class="br0">&#40;</span><span class="st0">&quot;Balance after 50 deposit and another 25 deposit is 75&quot;</span>, <span class="nu0">75</span>,bankAccount.<span class="me1">getBalance</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>&lt;/p&gt;<br />
&lt;p&gt;&nbsp; &nbsp; &nbsp;&nbsp;<span class="kw3">public</span> <span class="kw2">function</span> testWithdraw<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span>&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<span class="kw2">var</span> bankAccount:BankAccount=<span class="kw2">new</span> BankAccount<span class="br0">&#40;</span><span class="br0">&#41;</span>;&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;bankAccount.<span class="me1">deposit</span><span class="br0">&#40;</span><span class="nu0">100</span><span class="br0">&#41;</span>;&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;bankAccount.<span class="me1">withdraw</span><span class="br0">&#40;</span><span class="nu0">50</span><span class="br0">&#41;</span>;&lt;br /&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;assertTrue<span class="br0">&#40;</span><span class="st0">&quot;Balance on a new account after 100 deposit and a 50 withdraw is 50&quot;</span>, bankAccount.<span class="me1">getBalance</span><span class="br0">&#40;</span><span class="br0">&#41;</span> == <span class="nu0">50</span><span class="br0">&#41;</span>;&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>&lt;br /&gt;<br />
<span class="br0">&#125;</span>&lt;br /&gt;</div></div>
</p>
<p><strong>Создание набора тестов и его запуск.</strong></p>
<p>Теперь, когда у нас есть тесты нам надо создать набор тестов. Мы сделаем это во flex-файле вместо actionScript класса. Для этого сначала создаем простое Flex приложение, содержащее только один компонент - <tt>TestRunnerBase</tt>, который является частью библиотеки FlexUnit. Убедитесь что вы добавили пространство имен <tt>flexunit.flexui.*</tt> в ваше приложение чтобы иметь доступ к визуальным объектам библиотеки.</p>
<p>Далее надо добавить функции создания нашего набора тестов и его запуска. Создаем метод createSuite, который будет создавать новый объект TestSuite и добавлять все наши классы тестов, используя метод addTestSuite. Используя отражение (reflection) метод addTestSuite находит все методы в классе, имена которых начинаются с &#8220;test&#8221; и добавляет их в список тестов. У нас только один класс TestCase (BankAccountTest.as созданный нами ранее), но если вы создали больше - их тоже надо добавить в эту функцию.</p>
<p>В завершение создаем метод <tt>onCreationComplete</tt>. Он будет вызываться при событии <tt>сreationComplete</tt> нашего приложения. Эта функция изменяет значение свойства test объекта TestRunnerBase на наш набор тестов (его возвращает метод <tt>createSuite</tt>).</p>
<p>Теперь можно приступать к тестированию вызвав метод startTest компонента TestRunnerBase. Код будет выглядеть так:</p>
<p><strong>TestRunner.mxml</strong></p>
<p><div class="codecolorer-container actionscript" style="height:260px;"><div class="codecolorer" style="font-family: monospace;">&lt;?<span class="kw3">xml</span> <span class="kw3">version</span>=<span class="st0">&quot;1.0&quot;</span> encoding=<span class="st0">&quot;utf-8&quot;</span>?&gt;&lt;br /&gt;<br />
&lt;mx:Application xmlns:mx=<span class="st0">&quot;http://www.adobe.com/2006/mxml&quot;</span> xmlns=<span class="st0">&quot;*&quot;</span>&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; xmlns:flexunit=<span class="st0">&quot;flexunit.flexui.*&quot;</span>&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; creationComplete=<span class="st0">&quot;onCreationComplete()&quot;</span>&gt;&lt;/p&gt;<br />
&lt;p&gt;&nbsp;&lt;mx:Script&gt;&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;!<span class="br0">&#91;</span>CDATA<span class="br0">&#91;</span>&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> flexunit.<span class="me1">framework</span>.<span class="me1">TestSuite</span>;&lt;/p&gt;<br />
&lt;p&gt;&nbsp;&nbsp;&nbsp;<span class="co1">// Создаем набор тестов и запускаем их&lt;br /&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> onCreationComplete<span class="br0">&#40;</span><span class="br0">&#41;</span>:void&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; testRunner.<span class="me1">test</span> = createSuite<span class="br0">&#40;</span><span class="br0">&#41;</span>;&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; testRunner.<span class="me1">startTest</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>&lt;/p&gt;<br />
&lt;p&gt;&nbsp;&nbsp;&nbsp;<span class="co1">// Создаем набор тестов&lt;br /&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> createSuite<span class="br0">&#40;</span><span class="br0">&#41;</span>:TestSuite <span class="br0">&#123;</span>&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> testSuite:TestSuite = <span class="kw2">new</span> TestSuite<span class="br0">&#40;</span><span class="br0">&#41;</span>;&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; testSuite.<span class="me1">addTestSuite</span><span class="br0">&#40;</span> BankAccountTest <span class="br0">&#41;</span>;&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> testSuite;&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>&lt;br /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#93;</span><span class="br0">&#93;</span>&gt;&lt;br /&gt;<br />
&nbsp; &nbsp; &lt;/mx:Script&gt;&lt;/p&gt;<br />
&lt;p&gt;&nbsp;&lt;!-- FlexUnit GUI Component --&gt;&lt;br /&gt;<br />
&nbsp; &nbsp; &lt;flexunit:TestRunnerBase id=<span class="st0">&quot;testRunner&quot;</span> <span class="kw3">width</span>=<span class="st0">&quot;100%&quot;</span> <span class="kw3">height</span>=<span class="st0">&quot;100%&quot;</span> /&gt;&lt;br /&gt;<br />
&lt;/mx:Application&gt;&lt;br /&gt;</div></div>
</p>
<p>Теперь мы готовы запустить наши тесты. На этом изображении показан пример интерфейса <tt>TestRunner</tt> после запуска:</p>
<p><img src="http://www.insideria.com/upload/2008/03/unit_testing_with_flexunit/fig1unit.png" alt="" /></p>
<p>Так как все наши тесты очень простые и быстро выполняются, полоса выполнения сразу же заполнится. Если выполнение теста будет занимать время, то полоса выполнения будет заполняться по мере запуска тестов.</p>
<p>Так же отображаются количетво пройденных тестов и общее их количетво. Если какой либо из тестов не проходит проверку, полоса выполнения станет красной и вы увидите сообщение об ошибке этого теста. По умолчанию отображается список тестов, вызвавших ошибку, но вы также можете нажать на закладку All Tests чтобы увидеть весь список тестов.</p>
<p><img src="http://www.insideria.com/upload/2008/03/unit_testing_with_flexunit/fig2unit.png" alt="" /></p>
<p>Для этой проверки я изменил первый тест для проверки неверного баланса:</p>
<p><div class="codecolorer-container actionscript"><div class="codecolorer" style="font-family: monospace;">&lt;br /&gt;<br />
assertTrue<span class="br0">&#40;</span><span class="st0">&quot;Balance on a new account after 50 deposit is 50&quot;</span>, bankAccount.<span class="me1">getBalance</span><span class="br0">&#40;</span><span class="br0">&#41;</span> == <span class="nu0">40</span><span class="br0">&#41;</span>;&lt;br /&gt;</div></div>
</p>
<p>Это заведомо не верное утверждение вызовет ошибку. В правой части можете увидеть сообщение об ошибке:</p>
<p><tt>Error: Balance on a new account after 50 deposit is 50 - expected true but was false</tt></p>
<p>Поскольку в сообщение об ошибке не включаются номера строк, следует такие описания, которые обнозначно будут указывать на ошибку.</p>
<p>Как только какое-либо утверждение в методе не проходит проверку, выполнение остальных проверок данного метода прерывается. Но остальные методы (даже этого же класса) будут выполненны.</p>
<p><strong>Заключение</strong></p>
<p>FlexUnit предоставляет возможность автоматической проверки кода на низком уровне. Он помогает значительно сократить процесс тестирования и выявить ошибки на более ранней стадии. Пример в этой статье показывает основы модельного тестирования во Флексе, а так же открывает путь к такой технике программирования как <a href="http://ru.wikipedia.org/wiki/Разработка_через_тестирование" onclick="javascript:urchinTracker('/outbound/article/http://ru.wikipedia.org/wiki/Разработка_через_тестирование');">разработка через тестирование</a> и автоматическое тестирование в процессе билда (например используя ANT).</p>
<p><strong>Допольнительные ресурсы:</strong></p>
<p>FlexUnit on Google Code<br />
<a href="http://code.google.com/p/as3flexunitlib/" onclick="javascript:urchinTracker('/outbound/article/http://code.google.com/p/as3flexunitlib/');">http://code.google.com/p/as3flexunitlib/</a></p>
<p>Extreme Programming<br />
<a href="http://www.extremeprogramming.org/" onclick="javascript:urchinTracker('/outbound/article/http://www.extremeprogramming.org/');">http://www.extremeprogramming.org/</a></p>
<p>Ant<br />
<a href="http://ant.apache.org/" onclick="javascript:urchinTracker('/outbound/article/http://ant.apache.org/');">http://ant.apache.org/</a></p>
<p>Flex Ant Tasks<br />
<a href="http://labs.adobe.com/wiki/index.php/Flex_Ant_Tasks" onclick="javascript:urchinTracker('/outbound/article/http://labs.adobe.com/wiki/index.php/Flex_Ant_Tasks');">http://labs.adobe.com/wiki/index.php/Flex_Ant_Tasks</a></p>
<p><b>Источник:</b> <a href="http://www.insideria.com/2008/04/unit-testing-with-flexunit-1.html" onclick="javascript:urchinTracker('/outbound/article/http://www.insideria.com/2008/04/unit-testing-with-flexunit-1.html');">Unit Testing with FlexUnit</a></p>
<p><BR></p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2008/04/%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-flexunit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Установка и запуск Flex Builder на Ubuntu 8.04</title>
		<link>http://flash.digy.net/2008/04/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%b8-%d0%b7%d0%b0%d0%bf%d1%83%d1%81%d0%ba-flex-builder-%d0%bd%d0%b0-ubuntu-804/</link>
		<comments>http://flash.digy.net/2008/04/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%b8-%d0%b7%d0%b0%d0%bf%d1%83%d1%81%d0%ba-flex-builder-%d0%bd%d0%b0-ubuntu-804/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 08:36:57 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=39</guid>
		<description><![CDATA[Подробное пошаговое руководство по установке Flex Builder на новый Ubuntu (8.04).
подсмотренно тут  
]]></description>
			<content:encoded><![CDATA[<p>Подробное <a href="http://www.insideria.com/2008/04/step-by-step-setting-up-flex-b.html" onclick="javascript:urchinTracker('/outbound/article/http://www.insideria.com/2008/04/step-by-step-setting-up-flex-b.html');">пошаговое руководство</a> по установке Flex Builder на новый Ubuntu (8.04).</p>
<p>подсмотренно <a href="http://yarovoy.com/2008/04/28/flex_builder_on_ubuntu/" onclick="javascript:urchinTracker('/outbound/article/http://yarovoy.com/2008/04/28/flex_builder_on_ubuntu/');">тут</a> <img src='http://flash.digy.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2008/04/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%b8-%d0%b7%d0%b0%d0%bf%d1%83%d1%81%d0%ba-flex-builder-%d0%bd%d0%b0-ubuntu-804/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Visualisation</title>
		<link>http://flash.digy.net/2008/04/visualisation/</link>
		<comments>http://flash.digy.net/2008/04/visualisation/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 13:14:34 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
		
		<category><![CDATA[Без категории]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=38</guid>
		<description><![CDATA[
Очень красивая визуализация на Processing&#8217;е. + да и трэк хороший )
Смотреть тут &#124; Блог автора
хороший сервис HDvideo
]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.flight404.com/blog/images/goldfrappSmall_01.jpg" alt="" /></p>
<p>Очень красивая визуализация на Processing&#8217;е. + да и трэк хороший )<br />
<a href="http://www.vimeo.com/658158/" onclick="javascript:urchinTracker('/outbound/article/http://www.vimeo.com/658158/');">Смотреть тут</a> | <a href="http://www.flight404.com/blog/?p=111" onclick="javascript:urchinTracker('/outbound/article/http://www.flight404.com/blog/?p=111');">Блог автора</a></p>
<p>хороший сервис HDvideo</p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2008/04/visualisation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Передача ValueObject&#8217;ов из FluorineFx во Flash CS3</title>
		<link>http://flash.digy.net/2008/04/%d0%bf%d0%b5%d1%80%d0%b5%d0%b4%d0%b0%d1%87%d0%b0-valueobject%d0%be%d0%b2-%d0%b8%d0%b7-fluorinefx-%d0%b2%d0%be-flash-cs3/</link>
		<comments>http://flash.digy.net/2008/04/%d0%bf%d0%b5%d1%80%d0%b5%d0%b4%d0%b0%d1%87%d0%b0-valueobject%d0%be%d0%b2-%d0%b8%d0%b7-fluorinefx-%d0%b2%d0%be-flash-cs3/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 19:39:27 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Remoting]]></category>

		<category><![CDATA[FluorineFx]]></category>
