<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-32392824</id><updated>2009-12-15T16:09:22.752+03:00</updated><title type='text'>Flex 2, 3, 4 &amp; Co</title><subtitle type='html'>&lt;strong&gt;ПОСВЯЩАЕТСЯ СЕРГЕЮ ПРОХОРОВУ&lt;/strong&gt;&lt;br&gt;
Заметки на тему Adobe Flex 2, 3, 4.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default?start-index=26&amp;max-results=25'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>195</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-32392824.post-4173060968621970830</id><published>2009-12-14T23:17:00.002+03:00</published><updated>2009-12-15T00:05:06.645+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='focusmanager'/><title type='text'>ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.</title><content type='html'>Есть флекс-приложение, имеющее внутри себя AS3-компонент, использующий fl.controls кнопки и лейблы. При вызове какого-либо поп-апа флекс-приложение начинало неадекватно реагировать на перемещение фокуса по нажатию Tab:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.&lt;br /&gt; at flash.display::DisplayObjectContainer/getChildIndex()&lt;br /&gt; at mx.core::Container/getChildIndex()&lt;br /&gt; at mx.containers::Panel/getChildIndex()&lt;br /&gt; at fl.managers::FocusManager/::getChildIndex()&lt;br /&gt; at fl.managers::FocusManager/::sortByDepth()&lt;br /&gt; at fl.managers::FocusManager/::sortByTabIndex()&lt;br /&gt; at Array$/Array::_sort()&lt;br /&gt; at Array/http://adobe.com/AS3/2006/builtin::sort()&lt;br /&gt; at fl.managers::FocusManager/::sortFocusableObjectsTabIndex()&lt;br /&gt; at fl.managers::FocusManager/::sortFocusableObjects()&lt;br /&gt; at fl.managers::FocusManager/::keyDownHandler()&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Поискав в сети подобную ошибку, наткнулся на &lt;a href="http://blog.everythingflex.com/2008/12/13/argumenterror-error-2025-the-supplied-displayobject-must-be-a-child-of-the-caller/"&gt;несколько&lt;/a&gt; &lt;a href="http://thanksmister.com/index.php/archive/error-2025-clash-between-flex-2-flash-cs3/"&gt;постов&lt;/a&gt;, в которых во всем винили  флешовые компоненты, что и понятно из ссылок на fl.managers::FocusManager. В итоге пришлось переделывать флеш-компонент, подписываясь на Event.ADDED_TO_STAGE его кнопок и выключая в этом событии focusManager - button.focusManager.deactivate().&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-4173060968621970830?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/4173060968621970830/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=4173060968621970830' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/4173060968621970830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/4173060968621970830'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2009/12/argumenterror-error-2025-supplied.html' title='ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-912286479439326943</id><published>2009-08-08T01:50:00.003+04:00</published><updated>2009-08-08T01:58:15.385+04:00</updated><title type='text'>Требуется помощь пострадавшему в ДТП</title><content type='html'>&lt;a href="http://ivanbondar.livejournal.com/"&gt;http://ivanbondar.livejournal.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-912286479439326943?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/912286479439326943/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=912286479439326943' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/912286479439326943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/912286479439326943'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2009/08/blog-post.html' title='Требуется помощь пострадавшему в ДТП'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-162029362221517683</id><published>2009-02-21T22:56:00.003+03:00</published><updated>2009-02-21T23:10:50.672+03:00</updated><title type='text'>Adobe организует субботник</title><content type='html'>28 марта Adobe в Сиэтле организует субботник по правке багов во Flex SDK. Приглашаются все желающие. Можно еще участвовать через Connect, ссылку отправят всем зарегистрированным. Будут присутствовать разработчики из Adobe. В общем &lt;a href="http://www.bugquash.com/"&gt;достаточно любопытное меропрятие&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-162029362221517683?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/162029362221517683/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=162029362221517683' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/162029362221517683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/162029362221517683'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2009/02/adobe.html' title='Adobe организует субботник'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-8908520359879966586</id><published>2009-02-05T11:32:00.002+03:00</published><updated>2009-02-05T12:34:31.127+03:00</updated><title type='text'>Использование Flex Charting в локализованном приложении</title><content type='html'>Как известно, флекс-приложения можно локализовывать для разных языков, прописав в параметрах компиляции в атрибуте locale нужную локаль. Но перед этим нужно создать пакет необходимых библиотек для этой локали с помощью команды copylocale (располагается в папке [flexsdk]\bin ):&lt;br /&gt;&lt;br /&gt;copylocale en_US ru_RU &lt;br /&gt;&lt;br /&gt;Но данная команда игнорирует бандлы для Flex Charting. Это известный &lt;a href="http://bugs.adobe.com/jira/browse/SDK-16523"&gt;баг&lt;/a&gt;. И как следствие, наш проект откажется компилироваться для отличной от en_US локали.&lt;br /&gt;&lt;br /&gt;Есть несколько способов все исправить.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Первый способ:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Найти datavisualization_rb.swc для английской локали:&lt;br /&gt;Например, для Wiwndows:&lt;br /&gt;C:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\locale\en_US\&lt;br /&gt;&lt;br /&gt;2. Скопировать его в папку с нужной локалью&lt;br /&gt;&lt;br /&gt;3. Открыть с помощью архиватора&lt;br /&gt;&lt;br /&gt;4. Переименовать папку "\locale\en_US" в "\locale\ru_RU" (или в какую нужно)&lt;br /&gt;&lt;br /&gt;5. Отредактировать catalog.xml – заменить все строки en_US на нужную локаль&lt;br /&gt;&lt;br /&gt;6. Вызвать во Flex Builder Project -&gt; Clean.&lt;br /&gt;&lt;br /&gt;Минус этого метода в том, что для каждой новой локали нужно повторять эту операцию.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Второй способ (типа официальный):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://blogs.adobe.com/flexdoc/2008/04/extracting_data_visualization.html"&gt;Получить исходники Flex Charting&lt;/a&gt;. Обычно они распаковываются в папку [flexsdk]\fbpro.&lt;br /&gt;&lt;br /&gt;2. Зайти в папку [flexsdk]\frameworks\projects\ и создать тут структуру папок datavisualization\bundles\en_US\src&lt;br /&gt;&lt;br /&gt;3. Зайти в папку [flexsdk]\fbpro\projects\datavisualization\bundles\en_US и скопировать все файлы .properties в новоиспеченную папку из п.2&lt;br /&gt;&lt;br /&gt;Теперь copylocale будет работать правильно всегда. &lt;br /&gt;&lt;br /&gt;Правда, сравнив архивы из первого способа и из второго можно заметить, что во втором бандлов меньше.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-8908520359879966586?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/8908520359879966586/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=8908520359879966586' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/8908520359879966586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/8908520359879966586'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2009/02/flex-charting.html' title='Использование Flex Charting в локализованном приложении'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-7710183468167222215</id><published>2009-01-12T23:23:00.003+03:00</published><updated>2009-01-12T23:41:08.540+03:00</updated><title type='text'>Будем знакомы - Pivot</title><content type='html'>&lt;a href="http://pivot-toolkit.org/" target="_blank"&gt;Pivot&lt;/a&gt; - это открытая платформа для разработки RIA на Java. Она сочетает в себе производительность и юзабилити всех современных RIA-фреймворков и мощь Java-платформы.&lt;br /&gt;&lt;br /&gt;Как Flex и Silverlight, Pivot обладает свойствами, благодаря которым создавать GUI приложения достаточно легко: декларативный UI, связывание данных, различные эффекты, интеграцию с веб-сервисами и т.п.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pivot-toolkit.org/"&gt;Страница проекта&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pivot-toolkit.org/demos/index.html"&gt;Демки&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pivot-toolkit.org/downloads/"&gt;Загрузки&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pivot-toolkit.org/tutorials/index.html"&gt;Уроки&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.insideria.com/2009/01/pivot-platform-overview.html"&gt;Более подробный обзор&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://www.insideria.com/2008/11/building-rich-internet-applica.html"&gt;Использование JavaScript внутри Pivot&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-7710183468167222215?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/7710183468167222215/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=7710183468167222215' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/7710183468167222215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/7710183468167222215'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2009/01/pivot.html' title='Будем знакомы - Pivot'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-5072517843620153371</id><published>2008-11-19T11:45:00.000+03:00</published><updated>2008-11-19T11:52:31.340+03:00</updated><title type='text'>Оживление Flex Debugger</title><content type='html'>Непонятно почему перестал работать Debug-режим. Приложение запускалось, но после долгой попытки соединится, выводилось сообщение о том, что это невозможно и советовали проверить действительно ли у меня стоит debug-версия плеера.&lt;br /&gt;&lt;br /&gt;Вылечилось это так: после запуска приложения вызываем контекстное меню плеера, выбираем там debugger, пишем в адрес 127.0.0.1, подключаемся и приложение благополучно соединяется с отладчиком. После этой процедуры отладчик стал запускаться без лишних движений по старинке.&lt;br /&gt;&lt;br /&gt;Может ли кто-нибудь объяснить такое поведение?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-5072517843620153371?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/5072517843620153371/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=5072517843620153371' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/5072517843620153371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/5072517843620153371'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/11/flex-debugger.html' title='Оживление Flex Debugger'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-335690950547375638</id><published>2008-10-17T14:16:00.000+04:00</published><updated>2008-10-17T14:24:55.295+04:00</updated><title type='text'>FlexMonkey - тестирование UI</title><content type='html'>&lt;a href="http://code.google.com/p/flexmonkey/wiki/FlexMonkey"&gt;FlexMonkey&lt;/a&gt; - это фреймворк, автоматизирующий тестирование функциональности пользовательского интерфейса Flex-приложений. С его помощью можно записывать и воспроизводить взаимодействия с UI приложения. Также можно генерировать ActionScript-код с тестами. Использует Flex Automation API. Вот небольшой &lt;a href="http://keystone.gorillalogic.com/%7Esstern/MonkeyContacts.html#"&gt;пример&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-335690950547375638?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/335690950547375638/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=335690950547375638' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/335690950547375638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/335690950547375638'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/10/flexmonkey-ui.html' title='FlexMonkey - тестирование UI'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-3071232711469163954</id><published>2008-10-15T20:05:00.000+04:00</published><updated>2008-10-15T20:10:15.017+04:00</updated><title type='text'>Adobe FlexTeam будут в Москве</title><content type='html'>Совершенно случайно узнал о том, что во второй половине октября FlexTeam будут в Москве на следующих мероприятиях:&lt;div class="entry-body"&gt;  &lt;p&gt; - &lt;strong&gt;The 4th Software Engineering Conference (Russia) 2008&lt;/strong&gt; &lt;a href="http://www.secr.ru/?lang=en"&gt;SEC(R) 2008&lt;/a&gt;  (Enrique Duvos).&lt;br /&gt;-&lt;strong&gt; Russian Internet Week&lt;/strong&gt; - &lt;a href="http://www.riw2008.ru/program/"&gt;http://www.riw2008.ru/program/ &lt;/a&gt;&lt;br /&gt;- &lt;a href="http://www.userexp.ru/en/index.html"&gt;&lt;strong&gt;User Experience Conference&lt;/strong&gt;&lt;/a&gt;  (Serge Jespers)&lt;br /&gt;- &lt;strong&gt;Russian Flex User Group&lt;/strong&gt; (30 октября)  - тоже обещали заехать.&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.adobe.com/flex/archives/2008/10/russia_here_we_come.html"&gt;Ссылка&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;                            &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-3071232711469163954?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/3071232711469163954/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=3071232711469163954' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/3071232711469163954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/3071232711469163954'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/10/adobe-flexteam.html' title='Adobe FlexTeam будут в Москве'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-7853756914916708018</id><published>2008-09-17T18:36:00.000+04:00</published><updated>2008-09-17T18:51:36.063+04:00</updated><title type='text'>Unit-тесты в ActionScript</title><content type='html'>Недавно заинтересовался созданием тестов в процессе разработки. На тот момент я знал только одну тулзу для создания unit-тестов - это &lt;a href="http://opensource.adobe.com/wiki/display/flexunit/FlexUnit"&gt;FlexUnit&lt;/a&gt;, который переехал под крыло Adobe. Немного поискав, я открыл для себя &lt;a href="http://code.google.com/p/fluint/"&gt;fluint&lt;/a&gt;. Fluint поддерживает&lt;br /&gt;&lt;ul&gt;&lt;li&gt;множественные асинхронные операции;&lt;/li&gt;&lt;li&gt;поддержку setup и teardown для задания каких-то начальных параметров и их очистки;&lt;/li&gt;&lt;li&gt;поддержку тестирования UIComponent;&lt;/li&gt;&lt;li&gt;поддержку тестирования команд и контроллеров Cairngorm;&lt;/li&gt;&lt;li&gt;вывод результатов в виде XML;&lt;/li&gt;&lt;li&gt;поддержку тестов в модулях.&lt;/li&gt;&lt;/ul&gt;В общем, попробовав оба, мне понравился fluint.&lt;br /&gt;А кто еще что-нибудь использует и как относится к тестированию в процессе разработки?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-7853756914916708018?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/7853756914916708018/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=7853756914916708018' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/7853756914916708018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/7853756914916708018'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/09/unit-actionscript.html' title='Unit-тесты в ActionScript'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-6273868357893171249</id><published>2008-09-12T14:56:00.001+04:00</published><updated>2008-09-12T16:40:03.661+04:00</updated><title type='text'>напоминание != remember</title><content type='html'>Кто интересно локализовывал 10 плеер для русского языка? В контекстном меню плеера в разделе разрешения использования микрофона есть 2 пункта - разрешить и запретить, а внизу галка Remember, то есть запомнить и в следующий раз не спрашивать, а на русский перевели как Напоминание, то есть получается надо напоминать каждый раз, если галка отмечена?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-6273868357893171249?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/6273868357893171249/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=6273868357893171249' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/6273868357893171249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/6273868357893171249'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/09/remember.html' title='напоминание != remember'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-5789284465392176243</id><published>2008-08-20T00:44:00.000+04:00</published><updated>2008-08-20T00:51:38.514+04:00</updated><title type='text'>Обновление класса Filereference в 10 плеере</title><content type='html'>В новой десятке класс Filereference стал более "безопасным". Теперь метод FileReference.browse() нельзя будет вызвать программно, а только в ответ на нажатие клавиатуры или мыши. В связи с этим возникнет необходимость переделывать флешовые аплоадеры для Flickr, SWFUpload и Wordpress. &lt;br /&gt;Как говорят в Adobe, данная мера вызвана необходимостью повышения безопасности - якобы пользователя может ввести в заблуждение внезапно появившееся окошко и он случайно сохранит не то, что нужно:)&lt;br /&gt;&lt;a href="http://theflashblog.com/?p=423"&gt;Источник&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-5789284465392176243?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/5789284465392176243/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=5789284465392176243' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/5789284465392176243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/5789284465392176243'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/08/filereference-10.html' title='Обновление класса Filereference в 10 плеере'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-5542757985701135011</id><published>2008-08-20T00:20:00.000+04:00</published><updated>2008-08-20T00:35:30.593+04:00</updated><title type='text'>Во Flash-видео скоро появится новый тип метаданных</title><content type='html'>В скором времени Adobe Systems представит на обозрение новую фичу видео - voice-to-text. Это означает, что вся произносимая речь будет переведена в метаданные и внедрена в видео-ролик с помощью средств для редактирование видео от Adobe. Внедрение данной разработки окажет огромное влияние на индексацию видео-контента и видео-рекламу. &lt;br /&gt;&lt;br /&gt;Jim Guerard, заведующий всем rich media в Adobe, говорит, что данный функционал мы сможем увидеть уже в этом году.&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://blip.tv/play/hRbH9C7USQ" type="application/x-shockwave-flash" width="370" height="308" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-5542757985701135011?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/5542757985701135011/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=5542757985701135011' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/5542757985701135011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/5542757985701135011'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/08/flash.html' title='Во Flash-видео скоро появится новый тип метаданных'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-7547370859362778713</id><published>2008-08-14T15:15:00.000+04:00</published><updated>2008-08-14T15:32:29.105+04:00</updated><title type='text'>Откуда у функции length?</title><content type='html'>На днях столкнулся с такой проблемой. &lt;br /&gt;После переноса цикла в функцию, в последней остался параметр length, который был локально обозначен перед циклом и был успешно там забыт. Но ошибки компилятор не выдал и косяк не был замечен сразу. Потом я обратил внимание на этот загадочный length. &lt;br /&gt;Откуда же он взялся?&lt;br /&gt;А взялся он от функции и равен количеству аргументов, заданных в сигнатуре функции. Он отличается от arguments.length тем, что arguments.length равен реально переданному количеству аргументов. Например, если компилировать в standard mode:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;function traceLength(x:uint, y:uint):void&lt;br /&gt;{&lt;br /&gt;    trace("получено: " + arguments.length);&lt;br /&gt;    trace("ожидалось: " + traceLength.length); // или просто length&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;traceLength(3, 5, 7, 11);&lt;br /&gt;/* output:&lt;br /&gt;получено: 4&lt;br /&gt;ожидалось: 2 */&lt;/pre&gt;&lt;/code&gt;&lt;a href="http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00000056.html"&gt;Ссылка на доку&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-7547370859362778713?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/7547370859362778713/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=7547370859362778713' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/7547370859362778713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/7547370859362778713'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/08/length.html' title='Откуда у функции length?'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-4800460381326998129</id><published>2008-08-01T00:13:00.000+04:00</published><updated>2008-08-01T00:24:00.730+04:00</updated><title type='text'>Поддержка AMF cкоро будет в Zend Framework</title><content type='html'>Так называемый &lt;a href="http://framework.zend.com/wiki/display/ZFPROP/Zend_Amf"&gt;Zend_Amf_Server&lt;/a&gt; обеспечит поддержку формата AMF для Zend Framework. Участвовать в проекте будет &lt;a href="http://wadearnold.com/blog/"&gt;Wade Arnold&lt;/a&gt; - человек, ведущий проект &lt;a href="http://amfphp.org/"&gt;AMFPHP&lt;/a&gt;. Надеюсь эта новость  оправдает тормоза в &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=72483#files"&gt;релизах&lt;/a&gt; AMFPHP, который завис на бете в сентябре 2007 года.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-4800460381326998129?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/4800460381326998129/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=4800460381326998129' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/4800460381326998129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/4800460381326998129'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/08/amf-c-zend-framework.html' title='Поддержка AMF cкоро будет в Zend Framework'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-5729244536082668118</id><published>2008-07-30T22:58:00.001+04:00</published><updated>2008-07-31T20:33:25.524+04:00</updated><title type='text'>14 июля начато строительство моста ...</title><content type='html'>...между Adobe Air и Java под названием &lt;a href="http://www.merapiproject.net"&gt;Merapi&lt;/a&gt;.&lt;br /&gt;Merapi - это фреймворк, объединяющий оба типа приложений, запущенных на десктопе и выступающий так называемым мостом между ними. Взаимодействие реализовано с помощью класса merapi.Bridge, реализованного как для Air, так и для Java. С помощью Merapi Air-приложение может выступать интерфейсом к Java-приложению, что позволит расширить возможности приложения до бесконечности. В общем, кому интересно - добро пожаловать на &lt;a href="http://www.merapiproject.net"&gt;сайт проекта&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-5729244536082668118?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/5729244536082668118/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=5729244536082668118' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/5729244536082668118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/5729244536082668118'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/07/14.html' title='14 июля начато строительство моста ...'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-4116271720394552319</id><published>2008-06-10T16:02:00.000+04:00</published><updated>2008-12-10T01:17:32.070+03:00</updated><title type='text'>Small Worlds</title><content type='html'>Никогда особо не интересовался всякими онлайн-играми, но недавно пришло приглашение в бета-версию игры &lt;a href="http://www.smallworlds.com/"&gt;Small Worlds&lt;/a&gt; и, зарегистрировавшись там, я был мягко говоря поражен ее крутотой.&lt;br /&gt;&lt;br /&gt;SmallWorlds - это виртуальный 3D мир, который создается самими игроками. Это флексовый проект, созданный студией Outsmart из Новой Зеландии. С серверной стороны используется Java. Также используется вебсервис  Amazon’а Elastic Compute Cloud, также известный как EC2. Этот виртуальный сервер позволяет SmallWorlds масштабироваться на 1000 серверов в считанные минуты.&lt;br /&gt;&lt;br /&gt;Пользователи могут создавать своих героев. Причем опций для настройки очень много и есть вероятность при желании повторить себя в виртуальном мире:)&lt;br /&gt;&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/_4e5nP_bZsBE/SE5xz1Rd9AI/AAAAAAAAABE/ppqisomd91w/s640/face.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Также можно создать себе домашних животный, которые будут сопровождать вас все игру. По окончанию своего создания приходит очередь выбрать себе жилье.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/_4e5nP_bZsBE/SE5zHa2_aBI/AAAAAAAAABM/nWcX0_zolQ8/s640/flat.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;В процессе игры вы можете посещать квартиры других участников, различные публичные места, магазины, клубы и т.п. При желании можно общаться с другими игроками, играть в игры (я успел выиграть в шашки), пинать чужих собак, заводить себе друзей и еще много всего. В магазинах можно делать различные покупки, например, мебель, которой потом  обставлять свое жилище на свой вкус.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://2.bp.blogspot.com/_4e5nP_bZsBE/SE51axZWM3I/AAAAAAAAABU/xH8xDjwswIk/s640/club.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;В планах на будущее:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;куча опций для аватаров&lt;/li&gt;&lt;li&gt;API для Flash разработчиков&lt;/li&gt;&lt;li&gt;множество игр&lt;/li&gt;&lt;li&gt;виджеты&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;В общем лучше &lt;a href="http://www.smallworlds.com/"&gt;один раз увидеть&lt;/a&gt;, как говорится.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-4116271720394552319?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/4116271720394552319/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=4116271720394552319' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/4116271720394552319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/4116271720394552319'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/06/small-worlds.html' title='Small Worlds'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_4e5nP_bZsBE/SE5xz1Rd9AI/AAAAAAAAABE/ppqisomd91w/s72-c/face.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-7509466142030977425</id><published>2008-06-06T15:47:00.002+04:00</published><updated>2008-06-06T17:32:48.209+04:00</updated><title type='text'>Один ItemRenderer для нескольких колонок</title><content type='html'>Столкнулся с задачей отображения в DataGrid одинаковых по сути данных (UNIX_TIMESTAMP), к которым нужно применить ItemRenderer так, чтобы последний знал к какой колонке он применяется. Я нашел два способа это сделать и оба связаны с использованием свойства listData. Свойство listData имеют такие элементы как Text, Label, Button, CheckBox и т.п., то есть те, которые имплементируют интерфейс IDropInListItemRenderer. В данном случае в качестве ItemRenderer мне достаточно использовать Label. Если же необходим какой-нибудь контейнер в качестве рендерера, который не имеет свойства listData по-умолчанию, его необходимо реализовать своими силами.&lt;br /&gt;Итак, первый способ - это назначать данные для рендерера в зависимости от индекса колонки таблицы. Приведу кусок кода:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;mx:Label xmlns:mx="http://www.adobe.com/2006/mxml"&amp;gt;&lt;br /&gt;...&lt;br /&gt;override public function set data(value:Object):void&lt;br /&gt;{&lt;br /&gt;    super.data = value;&lt;br /&gt;    var myListData:DataGridListData = DataGridListData(listData);&lt;br /&gt;    var colIndex:int = myListData.columnIndex;&lt;br /&gt;    switch (colIndex)&lt;br /&gt;      case 1: text = data.date1; break;&lt;br /&gt;      case 2: text = data.date2; break;&lt;br /&gt;}&lt;br /&gt;...&lt;br /&gt;&amp;lt;/mx:Label&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Здесь мы обращаемся к listData, кастим его к DataGridListData, получаем индекс колонки таблицы и в зависимости от индекса отображаем в колонках date1 или date2. Недостатком этого способа является то, что при добавлении новых колонок перед этими придется переделывать код рендерера и также нельзя перетаскивать колонки. Поэтому рассмотрим второй способ.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;mx:Label xmlns:mx="http://www.adobe.com/2006/mxml"&amp;gt;&lt;br /&gt;&amp;lt;mx:Script&amp;gt;&lt;br /&gt;&amp;lt;![CDATA[&lt;br /&gt;import mx.controls.dataGridClasses.DataGridListData;&lt;br /&gt;[Bindable] private var formattedVal:String;&lt;br /&gt;&lt;br /&gt;override public function set data(value:Object):void&lt;br /&gt;{&lt;br /&gt; super.data = value;&lt;br /&gt; if (value)&lt;br /&gt; {&lt;br /&gt;     var myListData:DataGridListData = DataGridListData(listData);&lt;br /&gt;     var dt:Date  = new Date();&lt;br /&gt;     var cellVal:int = int(data[myListData.dataField]);&lt;br /&gt;     dt.time = cellVal*1000;&lt;br /&gt;     formattedVal = dateformatter.format(dt); &lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;]]&amp;gt;&lt;br /&gt;&amp;lt;/mx:Script&amp;gt;&lt;br /&gt;&amp;lt;mx:DateFormatter id="dateformatter" formatString="DD.MM.YY J:NN"/&amp;gt;&lt;br /&gt;&amp;lt;mx:text&amp;gt;{formattedVal}&amp;lt;/mx:text&amp;gt;&lt;br /&gt;&amp;lt;/mx:Label&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;В данном случае мы обращаемся не к columnIndex, а к dataField, таким образом получая строку, в которой содержится название поля, из которого мы получаем данные. А с помощью data[myListData.dataField] мы получаем значение этого поля.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-7509466142030977425?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/7509466142030977425/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=7509466142030977425' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/7509466142030977425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/7509466142030977425'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/06/itemrenderer.html' title='Один ItemRenderer для нескольких колонок'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-4393205645394724661</id><published>2008-05-30T13:22:00.000+04:00</published><updated>2008-05-30T13:41:37.446+04:00</updated><title type='text'>Пример динамического наложения двух mp3</title><content type='html'>Поигрался с примером &lt;a href="http://www.kaourantin.net/2008/05/adobe-is-making-some-noise-part-3.html"&gt;Tinic Uro&lt;/a&gt; по поводу новых методов класса Sound, в частности, extract():&lt;br /&gt;&lt;code&gt;&lt;pre&gt;function extract(target:ByteArray,&lt;br /&gt;          length:Number,&lt;br /&gt;          startPosition:Number = -1 ):Number;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;target - ByteArray, в который помещаются извлеченные сэмплы (samples);&lt;/li&gt;&lt;li&gt;length - количество сэмплов. Сэмпл содержит левый и правый каналы, каждый из которых представляет числа с плавающей точкой.&lt;/li&gt;&lt;li&gt;startPosition - позиция, с которой начнется извленение. Если она не указана, то извлечение будет идти с начала.&lt;/li&gt;&lt;li&gt;extract() - возвращает количество сэмплов, но оно может быть меньше запрошенной длины в самом конце звука.&lt;/li&gt;&lt;/ul&gt;Вот немного переделанный пример того, как можно наложить два звука друг на друга:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;package  &lt;br /&gt;{&lt;br /&gt; import flash.display.Sprite;&lt;br /&gt; import flash.events.*;&lt;br /&gt; import flash.media.*;&lt;br /&gt; import flash.net.URLRequest;&lt;br /&gt; import flash.utils.ByteArray;&lt;br /&gt; &lt;br /&gt; public class SoundTest extends Sprite&lt;br /&gt; {&lt;br /&gt;  private var mp3sound0:Sound = new Sound();&lt;br /&gt;  private var mp3sound1:Sound = new Sound();&lt;br /&gt;  private var dynamicSound:Sound = new Sound();&lt;br /&gt;  private var samples0:ByteArray = new ByteArray(); &lt;br /&gt;  private var samples1:ByteArray = new ByteArray(); &lt;br /&gt;  &lt;br /&gt;  public function SoundTest() &lt;br /&gt;  {&lt;br /&gt;   mp3sound0.addEventListener(Event.COMPLETE, loadComplete0);&lt;br /&gt;   mp3sound0.addEventListener(IOErrorEvent.IO_ERROR, onIOError);&lt;br /&gt;   //загрузка первого файла&lt;br /&gt;   mp3sound0.load(new URLRequest("sound0.mp3"));&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  private function loadComplete0(event:Event):void &lt;br /&gt;  {&lt;br /&gt;   mp3sound1.addEventListener(Event.COMPLETE, loadComplete1);&lt;br /&gt;   mp3sound1.addEventListener(IOErrorEvent.IO_ERROR, onIOError);&lt;br /&gt;   //загрузка второго файла по событию загрузки первого&lt;br /&gt;   mp3sound1.load(new URLRequest("sound1.mp3"));&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  private function onIOError(e:IOErrorEvent):void&lt;br /&gt;  {&lt;br /&gt;   trace(e.text);&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  private function loadComplete1(event:Event):void &lt;br /&gt;  {&lt;br /&gt;   //начало динамического наложения звуков&lt;br /&gt;   dynamicSound.addEventListener("samplesCallback",samplesCallback);&lt;br /&gt;   dynamicSound.play();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private function samplesCallback(event:SamplesCallbackEvent):void &lt;br /&gt;  {&lt;br /&gt;   //установка массивов на нулевую позицию&lt;br /&gt;   samples0.position = 0;&lt;br /&gt;   samples1.position = 0;&lt;br /&gt;   var len:Number = 1000;&lt;br /&gt;   //извлечение сэмплов в массивы&lt;br /&gt;   mp3sound0.extract(samples0, len);&lt;br /&gt;   mp3sound1.extract(samples1, len);&lt;br /&gt;   //установка массивов на нулевую позицию&lt;br /&gt;   samples0.position = 0;&lt;br /&gt;   samples1.position = 0;&lt;br /&gt;   for (var c:int = 0; c &lt; len; c++) &lt;br /&gt;   {&lt;br /&gt;    //получение значение каналов и их сложение &lt;br /&gt;    var left:Number = samples0.readFloat() + samples1.readFloat();&lt;br /&gt;    var right:Number = samples0.readFloat() + samples1.readFloat();&lt;br /&gt;    //запись значений в объект динамического звука&lt;br /&gt;    dynamicSound.samplesCallbackData.writeFloat(left);&lt;br /&gt;    dynamicSound.samplesCallbackData.writeFloat(right);&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-4393205645394724661?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/4393205645394724661/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=4393205645394724661' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/4393205645394724661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/4393205645394724661'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/05/mp3.html' title='Пример динамического наложения двух mp3'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-5445655259350573424</id><published>2008-05-27T14:34:00.001+04:00</published><updated>2008-05-29T16:40:44.383+04:00</updated><title type='text'>Новые методы и свойства старых классов FP10</title><content type='html'>&lt;span style="font-weight:bold;"&gt;ByteArray&lt;/span&gt;&lt;br /&gt;clear()&lt;br /&gt;deflate()&lt;br /&gt;inflate ()&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Mouse&lt;/span&gt;&lt;br /&gt;cursor&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ContextMenu&lt;/span&gt;&lt;br /&gt;clipboardMenu&lt;br /&gt;clipboardItems&lt;br /&gt;link&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Capabilities&lt;/span&gt;&lt;br /&gt;hasColorCorrection&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ApplicationDomain&lt;/span&gt;&lt;br /&gt;domainMemory&lt;br /&gt;MIN_DOMAIN_MEMORY_LENGTH&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;NetStream&lt;/span&gt;&lt;br /&gt;farID&lt;br /&gt;farNonce&lt;br /&gt;info&lt;br /&gt;nearNonce&lt;br /&gt;peerStreams&lt;br /&gt;onPeerConnect()&lt;br /&gt;play2()&lt;br /&gt;DIRECT_CONNECTIONS&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;NetConnection&lt;/span&gt;&lt;br /&gt;farID&lt;br /&gt;farNonce&lt;br /&gt;maxPeerConnections&lt;br /&gt;nearID&lt;br /&gt;nearNonce&lt;br /&gt;protocol&lt;br /&gt;unconnectedPeerStreams&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;FileReference&lt;/span&gt;&lt;br /&gt;data&lt;br /&gt;load()&lt;br /&gt;save()&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Sound&lt;/span&gt;&lt;br /&gt;extract()&lt;br /&gt;sampleData&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Microphone&lt;/span&gt;&lt;br /&gt;codec&lt;br /&gt;encodeQuality&lt;br /&gt;framesPerPacket&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Event&lt;/span&gt;&lt;br /&gt;CLEAR&lt;br /&gt;COPY&lt;br /&gt;CUT&lt;br /&gt;PASTE&lt;br /&gt;SAMPLE_DATA &lt;br /&gt;SELECT_ALL&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Stage&lt;/span&gt;&lt;br /&gt;enableColorCorrection&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;MovieClip&lt;/span&gt;&lt;br /&gt;currentFrameLabel&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Graphics&lt;/span&gt;&lt;br /&gt;beginShaderFill()&lt;br /&gt;drawGraphicsData()&lt;br /&gt;drawPath()&lt;br /&gt;drawTriangles()&lt;br /&gt;lineBitmapStyle()&lt;br /&gt;lineShaderStyle()&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;DisplayObject&lt;/span&gt;&lt;br /&gt;blendShader&lt;br /&gt;rotationX&lt;br /&gt;rotationY&lt;br /&gt;rotationZ&lt;br /&gt;z&lt;br /&gt;globalToLocal3D ()&lt;br /&gt;local3DToGlobal ()&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;BitmapData&lt;/span&gt;&lt;br /&gt;histogram()&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;BlendMode&lt;/span&gt;&lt;br /&gt;SHADER&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-5445655259350573424?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/5445655259350573424/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=5445655259350573424' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/5445655259350573424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/5445655259350573424'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/05/fp10.html' title='Новые методы и свойства старых классов FP10'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-7464206233382150216</id><published>2008-05-22T10:28:00.001+04:00</published><updated>2008-05-22T10:38:32.505+04:00</updated><title type='text'>Открыт Google Maps API для Flash</title><content type='html'>&lt;a href="http://googlemapsapi.blogspot.com/2008/05/introducing-google-maps-api-for-flash.html"&gt;Google наконец-то открыл&lt;/a&gt; &lt;a href="http://code.google.com/apis/maps/documentation/flash/"&gt;API&lt;/a&gt; к своим картам. &lt;a href="http://www.igorcosta.org/"&gt;Igor Costa&lt;/a&gt; накатал &lt;a href="http://www.igorcosta.org/?p=140"&gt;небольшой примерчик&lt;/a&gt; на эту тему. И еще один &lt;a href="http://www.insideria.com/2008/05/google-releases-as3-maps-api.html"&gt;пример&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-7464206233382150216?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/7464206233382150216/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=7464206233382150216' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/7464206233382150216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/7464206233382150216'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/05/google-maps-api-flash.html' title='Открыт Google Maps API для Flash'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-3574600731430985953</id><published>2008-04-29T23:50:00.000+04:00</published><updated>2008-04-30T00:07:14.293+04:00</updated><title type='text'>Эффект Fade для текста без внедрения шрифта</title><content type='html'>Как известно, чтобы применить эффект Fade к тексту (плавное его появление и исчезновение), необходимо, чтобы соответствующий шрифт был внедрен в приложение. Но в результате размер приложения существенно увеличится. Чтобы избежать этого, но сохранить красоту эффекта, необходимо перед началом превратить текст в битмап с помощью пустого эффекта BlurFilter с нулевыми значениями:&lt;code&gt;&lt;pre&gt;private function addBlurFilter():void {&lt;br /&gt;  var bf:BlurFilter = new BlurFilter(0,0,0);&lt;br /&gt;  var myFilters:Array = new Array();&lt;br /&gt;  myFilters.push(bf);&lt;br /&gt;  label.filters = myFilters;&lt;br /&gt;}&lt;/pre&gt;&lt;/code&gt;А потом уже запускать эффект Fade.&lt;br /&gt;Есть еще один способ - применить эффект Dissolve. В отличии от Fade, который работает непосредственно с элементом, Dissolve создает непрозрачный прямоугольник над элементом и работает уже с ним. Но этот эффект хорошо смотрится только на белом фоне, так как иначе он будет виден поверх нашего объекта.&lt;br /&gt;&lt;a href="http://blogs.adobe.com/flexdoc/2008/04/alternatives_to_fade_effect_fo_1.html"&gt;Отсюда&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-3574600731430985953?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/3574600731430985953/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=3574600731430985953' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/3574600731430985953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/3574600731430985953'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/04/fade.html' title='Эффект Fade для текста без внедрения шрифта'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-4752233562556538040</id><published>2008-03-26T22:06:00.000+03:00</published><updated>2008-03-26T22:12:31.398+03:00</updated><title type='text'>RubyIZUMI - опенсорсный RTMP сервер (MP4/H.264) для потокового Flash видео и аудио</title><content type='html'>&lt;a href="http://d.hatena.ne.jp/takuma104/"&gt;Takuma Mori&lt;/a&gt; из &lt;a href="http://vixy.tv/"&gt;Vixy.tv&lt;/a&gt; недавно зарелизил &lt;a href="http://code.google.com/p/rubyizumi/"&gt;RubyIZUMI&lt;/a&gt; - открытый потоковый сервер (Ruby) для проигрывания H.264 видео.&lt;br /&gt;&lt;a href="http://vixy.tv/izumi-h264/"&gt;Демо&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-4752233562556538040?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/4752233562556538040/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=4752233562556538040' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/4752233562556538040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/4752233562556538040'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/03/rubyizumi-rtmp-mp4h264-flash.html' title='RubyIZUMI - опенсорсный RTMP сервер (MP4/H.264) для потокового Flash видео и аудио'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-6647057482183694845</id><published>2008-03-25T13:43:00.000+03:00</published><updated>2008-03-25T13:48:31.962+03:00</updated><title type='text'>Атрибуты метатега SWF</title><content type='html'>&lt;a href="http://livedocs.adobe.com/flex/3/html/help.html?content=metadata_3.html#comments"&gt;Официально опубликованы все атрибуты метатега SWF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[SWF width="#"&lt;br /&gt;height="#"&lt;br /&gt;widthPercent="#"&lt;br /&gt;heightPercent="#"&lt;br /&gt;scriptRecursionLimit="#"&lt;br /&gt;scriptTimeLimit="#"&lt;br /&gt;frameRate="#"&lt;br /&gt;backgroundColor="#"&lt;br /&gt;pageTitle="String"]&lt;br /&gt;&lt;br /&gt;Напомню, что данный тег должен располагаться непосредственно перед определением AS-класса:&lt;br /&gt;&lt;br /&gt;[SWF(width="1024", height="768", frameRate="31", backgroundColor="#000000")]&lt;br /&gt;public class Main extends Sprite {...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-6647057482183694845?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/6647057482183694845/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=6647057482183694845' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/6647057482183694845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/6647057482183694845'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/03/swf.html' title='Атрибуты метатега SWF'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-2797290034639916800</id><published>2008-03-20T15:58:00.009+03:00</published><updated>2008-03-21T12:34:50.191+03:00</updated><title type='text'>Повышение производительности AS3 приложений</title><content type='html'>Здесь представлены некоторые приемы, которые помогут повысить производительность наших приложений:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) Создавайте константы для часто используемых объектов типа new Point(0,0) или new Rectangle(0,0,320,240):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;//вызов 100000 раз: 75мс&lt;br /&gt;new Point(0,0);&lt;br /&gt;//или&lt;br /&gt;private static const POINT:Point = new Point(0,0);&lt;br /&gt;//8мс&lt;br /&gt;POINT;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Быстрее на 838%&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) Сократите указания на статические члены классов. Вместо этого старайтесь  использовать переменные пакета:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;//15мс&lt;br /&gt;SomeClass.somevar;&lt;br /&gt;package somepackage{&lt;br /&gt;public const somevar:int;&lt;br /&gt;}&lt;br /&gt;//8мс&lt;br /&gt;somevar;&lt;/pre&gt;&lt;br /&gt;на 66% быстрее&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) Сохраняйте getter свойства в локальных переменных при их использовании более одного раза.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;somesprite.graphics.clear();&lt;br /&gt;somesprite.graphics.beginFill(0x000000);&lt;br /&gt;somesprite.graphics.drawRect(0,0,10,10);&lt;br /&gt;somesprite.graphics.endFill();&lt;br /&gt;&lt;br /&gt;// лучше заменить на&lt;br /&gt;&lt;br /&gt;var n:Graphics = somesprite.graphics;&lt;br /&gt;n.clear();&lt;br /&gt;n.beginFill(0x000000);&lt;br /&gt;n.drawRect(0,0,10,10);&lt;br /&gt;n.endFill();&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4) Создавайте собственные reflection-методы вместо использования getDefinitionByName(getQualifiedClassName(object))&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;utils reflection&lt;br /&gt;// 503мс&lt;br /&gt;var someclass:Class = getDefinitionByName(getQualifiedClassName(someObject));&lt;br /&gt;// getter reflection&lt;br /&gt;public class SomeClass {&lt;br /&gt;public function get reflect():Class {&lt;br /&gt; return SomeClass;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;// 9мс&lt;br /&gt;var someclass:Class = object.reflect();&lt;/pre&gt;&lt;br /&gt;быстрее на 5489%&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5) Страрайтесь использовать строгое типизирование&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6) Приводите к нужным типам, например, при чтении из массива.&lt;/span&gt;&lt;br /&gt;Быстрее будет обращаться к image&lt;br /&gt;&lt;br /&gt;&lt;code&gt;var image: BitmapData = images[index];&lt;br /&gt;image.getPixel(x,y)&lt;br /&gt;//чем к&lt;br /&gt;images[index].getPixel(x,y);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7) Где возможно, используйте int вместо Number&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8) Операторы побитового сдвига работают быстрее:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Побитовый сдвиг влево быстрее на 300% при умножении на любую степень двойки:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;x = x * 2;&lt;br /&gt;x = x * 64;&lt;br /&gt;//равно:&lt;br /&gt;x = x &lt;&lt; 1;&lt;br /&gt;x = x &lt;&lt; 6;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Побитовый сдвиг вправо быстрее на 350% при делении на любую степень двойки:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;x = x / 2;&lt;br /&gt;x = x / 64;&lt;br /&gt;//равно:&lt;br /&gt;x = x &gt;&gt; 1;&lt;br /&gt;x = x &gt;&gt; 6;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Извлечение компонентов цвета:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;//24bit&lt;br /&gt;var color:uint = 0x336699;&lt;br /&gt;var r:uint = color &gt;&gt; 16;&lt;br /&gt;var g:uint = color &gt;&gt; 8 &amp;amp; 0xFF;&lt;br /&gt;var b:uint = color &amp;amp; 0xFF;&lt;br /&gt;//32bit&lt;br /&gt;var color:uint = 0xff336699;&lt;br /&gt;var a:uint = color &gt;&gt;&gt; 24;&lt;br /&gt;var r:uint = color &gt;&gt;&gt; 16 &amp;amp; 0xFF;&lt;br /&gt;var g:uint = color &gt;&gt;&gt;  8 &amp;amp; 0xFF;&lt;br /&gt;var b:uint = color &amp;amp; 0xFF;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Объединение компонентов цвета:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;//24bit&lt;br /&gt;var r:uint = 0x33;&lt;br /&gt;var g:uint = 0x66;&lt;br /&gt;var b:uint = 0x99;&lt;br /&gt;var color:uint = r &lt;&lt; 16 | g &lt;&lt; 8 | b;&lt;br /&gt;&lt;br /&gt;//32bit&lt;br /&gt;var a:uint = 0xff;&lt;br /&gt;var r:uint = 0x33;&lt;br /&gt;var g:uint = 0x66;&lt;br /&gt;var b:uint = 0x99;&lt;br /&gt;var color:uint = a &lt;&lt; 24 | r &lt;&lt; 16 | g &lt;&lt; 8 | b;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;9) Обмен значениями численных переменных без использования временной переменной:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;var t:int = a;&lt;br /&gt;a = b;&lt;br /&gt;b = t;&lt;br /&gt;//равно:&lt;br /&gt;a ^= b;&lt;br /&gt;b ^= a;&lt;br /&gt;a ^= b;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Быстрее на 20%.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;10) Инкремент/декремент.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Внимание:&lt;/span&gt; это пример понижения производительности, но зато есть возможность понизить читабельность кода для врагов:)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;i = -~i; // i++&lt;br /&gt;i = ~-i; // i--&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;11) Смена знака с помощью NOT или XOR (говорят на 300% быстрее):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;i = -i;&lt;br /&gt;//равно:&lt;br /&gt;i = ~i + 1;&lt;br /&gt;//или&lt;br /&gt;i = (i ^ -1) + 1;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;12) Подсчет остатка&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Если делитель является степенью двух, то остаток можно подсчитать быстрее на 600% следующим образом:&lt;br /&gt;остаток = делимое &amp;amp; (делитель - 1);&lt;br /&gt;&lt;br /&gt;&lt;code&gt;x = 131 % 4;&lt;br /&gt;//равно:&lt;br /&gt;x = 131 &amp;amp; (4 - 1);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;13) Проверка на четность/нечетность:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;isEven = (i % 2) == 0;&lt;br /&gt;//равно:&lt;br /&gt;isEven = (i &amp;amp; 1) == 0;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Быстрее на 600%.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;14) Абсолютное значение. Версия 1 быстрее на 250%, чем Math.abs(), а версия 2 быстрее на 20%, чем версия 1.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;//версия 1&lt;br /&gt;i = x &lt; 0 ? -x : x;&lt;br /&gt;//версия 2&lt;br /&gt;i = (x ^ (x &gt;&gt; 31)) - (x &gt;&gt; 31);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;15) Сравнение двух числе на равенство знаков&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;eqSign = a * b &gt; 0;&lt;br /&gt;//равно:&lt;br /&gt;eqSign = a ^ b &gt;= 0;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;На 35% быстрее.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;16) Быстрое конвертирование цвета из R5G5B5 в R8G8B8&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;R8 = (R5 &lt;&lt; 3) | (R5 &gt;&gt; 2)&lt;br /&gt;G8 = (R5 &lt;&lt; 3) | (R5 &gt;&gt; 2)&lt;br /&gt;B8 = (R5 &lt;&lt; 3) | (R5 &gt;&gt; 2)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;17) a++ быстрее, чем a = a + 1 и т.п.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;18) Умножение быстрее деления. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Лучше использовать a = b*.5 вместо a = b / 2&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;19) int(1.5) быстрее, чем Math.floor(1.5)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Аналогично int(1.5) + 1  быстрее, чем Math.ceil(1.5)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-2797290034639916800?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/2797290034639916800/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=2797290034639916800' title='Комментарии: 28'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/2797290034639916800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/2797290034639916800'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/03/as3.html' title='Повышение производительности AS3 приложений'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>28</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32392824.post-6058886971390358967</id><published>2008-03-12T19:58:00.001+03:00</published><updated>2008-03-12T20:03:30.661+03:00</updated><title type='text'>Личная девушка теперь есть у каждого</title><content type='html'>&lt;a href="http://cubo.cc/"&gt;Правда, глаза подозрительно красные и улыбка глупая, а так вроде ничего:)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32392824-6058886971390358967?l=gorbatov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorbatov.blogspot.com/feeds/6058886971390358967/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=32392824&amp;postID=6058886971390358967' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/6058886971390358967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32392824/posts/default/6058886971390358967'/><link rel='alternate' type='text/html' href='http://gorbatov.blogspot.com/2008/03/blog-post.html' title='Личная девушка теперь есть у каждого'/><author><name>Andrey Gorbatov</name><uri>http://www.blogger.com/profile/09957308483491056870</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07610204933832315984'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></entry></feed>