Flex и RIA блоги



2007-11-07

07:55:46, LIFE.Flash
ActionScript 3.0 Библия

В свет вышла очередная, и уже традиционная ActionScript 3.0 Библия (традиционная - в плане, что под каждую версию ActionScript появляется гигантская книжка). Книга писалась почти год и авторы попытались сделать ее доступной всем, как опытным AS2 разработчикам, так и совсем начинающим. Книгу уже можно заказать на Amazon

Mims with Bible

,
Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

2007-11-06

17:12:43, RIA crumbs
AIR: HTML редактор с возможностью превью

Майк Чамберс (Mike Chambers) в очередной раз не жадничает. И дает ссылку на простой HTML редактор, в котором можно делать live-превью вашего HTML кода. Редактор Майк сообразил на AIR. Само приложение является частью доклада об AIR на Flash on the Beach.

Приложеньице демонстрирует:

  • Использование API для работы с файловой системой, в частности записи результатов;
  • Использование HTML виджета для отображения HTML кода;
  • Использование API для работы с окнами в ОС, в частности выбрать-сохранить;

Исходники с комментариями Майк разместил в репозитории “on AIR Tour” или можно за ними направляться прямо сюда.


15:44:06, Flash-ripper.com
Эффективность Flash Remoting: быстрый эксперимент

Мне выпал шанс сравнить производительность Flash Remoting во Flash Player 9 с передачей XML-данных. Рабочие условия: есть гео-данные в формате GML (XML), описывающие границы районов города в виде полигонов. Общее количество точек-вершин полигонов — около 4000. Размер загружаемого XML равен 244 Кб, а со стандартным GZIP-сжатием — 49 Кб. Требуется сократить размер загружаемых данных и время их загрузки.

С использованием Flash Remoting размер загружаемых данных составил 44 Кб, а с GZIP-сжатием — 19 Кб. Это в 2,5 раза меньше размера XML, приблизительно настолько же быстрее оказалась и загрузка Remoting-данных. Кроме того, за счет обмена в Remoting типизированными геометрическими объектами удалось избавиться от некоторых шагов по разбору гео-данных из XML, так что выросла и скорость отрисовки загруженных полигонов.

Но у Flash Remoting, похоже, есть свой минус. Загруженные данные не кэшируются между сессиями, поскольку работа Remoting идет через POST-запросы. Думаю о создании своего кэша во Flash Cookies, но он ведь тоже не резиновый, а объем данных весьма большой. Может, есть другие варианты?


15:43:22, Flash-ripper.com
Эффективность Flash Remoting: быстрый эксперимент

Мне выпал шанс грубо сравнить производительность Flash Remoting во Flash Player 9 с передачей XML-данных. Рабочие условия: есть гео-данные в формате GML (XML), описывающие границы районов города в виде полигонов. Общее количество точек-вершин полигонов — около 4000. Размер загружаемого XML равен 244 Кб, а со стандартным GZIP-сжатием — 49 Кб. Требуется сократить размер загружаемых данных и время их загрузки.

С использованием Flash Remoting размер загружаемых данных составил 44 Кб, а с GZIP-сжатием — 19 Кб. Это в 2,5 раза меньше размера XML, приблизительно настолько же быстрее оказалась и загрузка Remoting-данных. Кроме того, за счет обмена в Remoting типизированными геометрическими объектами удалось избавиться от некоторых шагов по разбору гео-данных из XML, так что выросла и скорость отрисовки загруженных полигонов.

Но у Flash Remoting, похоже, есть свой минус. Загруженные данные не кэшируются между сессиями, поскольку работа Remoting идет через POST-запросы. Думаю о создании своего кэша во Flash Cookies, но он ведь тоже не резиновый, а объем данных весьма большой. Может, есть другие варианты?


13:15:39, 33 коровы
Вся правда о Видео во Flex. Часть 6. Camera и Microphone.

Индусы жгут, других слов нету! )

Работал я с ними мало поэтому пока только поверхностные отжиги).

Чтобы получить список доступных устройств (вебкамер и микрофонов) нужно использовать свойство names у соответствующих классов

Camera.names : Array  [read-only]
Microphone.names : Array  [read-only]

Вроде все логично, но только до этого момента дальше чтобы получить конкретное устройство у класса Camera есть метод getCamera(), а у Microphone - getMicrophone() и выглядит это следующим образом:

public static function getMicrophone(index:int = 0):Microphone
public static function getCamera(name:String = null):Camera

Как-то странно подумал я: “в одном случае мы инт отдаем в другом стринг”.

С микрофоном решил проблемы быстро ), а вот с камерой уже стало интереснее.
В хелпе параметр name у getCamera() описан так :

name:String (default = null) — Specifies which camera to get, as determined from the array returned by the names property. For most applications, get the default camera by omitting this parameter.

Отдав это имя я получил огромный болт, вернее null, а не камеру. 8 раз проверил - все равно болт. В ходе эксперементов над разумом, попробывал отдать индекс камеры в виде строки, и оно заработало!

Внимание правильный ответ для решения этой проблемы:

var camera : Camera = Camera.getCamera(myIndex.toString());
//где myIndex - это порядковый номер камеры в массиве Camera.names
 

Привет адоб!


11:45:24, Flash-ripper.com
Календарь IT-мероприятий в Москве

По наводке Дениса 'Q-Zma' Кузнецова увидел Календарь IT-мероприятий в Москве. Есть интересные, но нет наших, кроме ClientSide2007. Календарь составлен автором сайта про джавку, j2ee, BEA и IBM.


10:22:03, Garbage Collector
Новая мобильная Linux платформа — Android

Open Handset Alliance — это группа, состоящая из более чем 30 различных компаний и технологий, объединивших свои усилия для того, чтобы ускорить прогресс в области разработки мобильных устройств, сделать ассортимент устройств более богатым, уменьшить стоимость разработки и улучшить свои знания в этом направлении.

(more…)


08:33:36, DimZ
Смешные звуки, голоса

kloun

funny mashine

funny machine fx01
funny machine fx02
funny machine fx03
funny machine fx04
funny machine fx05
funny machine fx06
funny machine fx07
funny machine fx08

funny voice

funny voice 01
funny voice02
funny voice03
funny voice04
funny voice05
funny voice06
funny voice07
funny voice08


2007-11-05

13:51:19, RIA crumbs
Mozilla Prism для Mac и Linux

Mozilla отдает на растерзание любителям Mac и Linux свой проект Prism. Для установки приложения нужно: после запуса Prism приложения нужно будет выбрать куда сохранить шорткат на приложение. В поле для URL вводим имя приложения.

Более подробно читаем тут.


12:50:38, Flash-ripper.com
Встречайте ECMAScript4. Обзор нового стандарта сетевого языка

Рабочая группа TC39-TG1 выпустила обзор нового стандарта ECMAScript 4 (ES4) — "языка сети", или, более конкретно, фундамента языков JavaScript и ActionScript (приятно отметить, что в данном документе слово "ActionScript" встречается неоднократно, в том числе и при упоминании нового механизма верификации программного кода в ES4).

Напомним, что предыдущей версией стандарта был, основанный на прототипах ES3. Это сегодняшний JavaScript 1.x. В новом стандарте ES4 учтены требования, возникшие при разработке крупных проектов, к которым относятся многие AJAX-, Flash и Flex-приложения. Одним из условий стандарта ES4 является совместимость с предыдущим стандартом, ES3.

Краткий обзор характеристик ES4

ООП в ECMAScript 4

ECMASript4 поддерживает объектно-ориентированное программирование введением таких структур, как классы (class) и интерфейсы (interface) — подобно языку Java.

Приватность

Модульность приложения поддерживается пакетами (package) и пространствами имен (namespace).

Типы данных

Программирование больших проектов упрощается за счет введения строгих типов данных, определяемых классами и интерфейсами.

Проверка перед выполнением (верификация)

Компонент приложения может быть скомпилирован в строгом режиме, что является гарантией его проверки перед выполнением (верифицирования). Проверяется корректность ссылок на переменные, защищенность констант, сравнение однотипных переменных и т.д. Статическая проверка типов в ES4 очень похожа на ту, что происходит в ActionScript3.

Оптимизация времени и пространства

Строгая типизация облегчает раннее связывание точек вызова и вызываемых из них методов, что потенциально уменьшает стоимость вызова методов по сравнению с ES3 (детали на английском от Теда Патрика). Указание типов также позволяет компилятору отказаться от проверки типов на этапе выполнения. Ориентированные на производительность типы данных (такие как Vector) малой ценой избавляют от излишеств слишком общих типов данных — таких как Array.

Данные

ES4 поддерживает параметризованные классы, объекты с геттер и сеттер-методами, типизированные объекты, рефлексию и средства системы типизации, ставящие созданные программистом объекты наравне со встроенными объектами языка.

Отсылаю вас к обзору ECMAScript4 — работать мне надо.

Пара слов к JavaScript-разработчикам

Братья! Радостно осознавать, как скоро у вас в руках будет инструмент, действительно поддерживающий ООП и современные методы программирования. Больно наблюдать, как талантливые программисты вручную реализуют классы в JavaScript 1.x. Дни заката солнца вручную сочтены: один год. С новым, прогрессивным стандартом вас.

Одно слово к ActionScript-флешерам

Радостно осознавать, что наша возлюбленная Флэш-платформа обогащает стандарт, из которого вышла (даже несмотря на "плохую модель событий и потребность в компиляции" :-). Но вы не подумайте, что для вас в новом стандарте ECMAScript4 нет ничего нового. Есть, и предостаточно. Почитайте внимательно, и вы найдете там такие пока незнакомые многим конструкции, как let, let const и let function, объединенные типы данных: (int,string) означает "int или string, вложенные типы данных (Deep types), подтипы (Subtypes), оператор "как" (like), параметризованне типы данных (да, да! Вектор как параметризованный массив, привет C#?), неймспейсы и биндинги (не во флекс-фреймворке, а в ядре стандарта). А также Генераторы (Generators), перегрузку операторов (operator overloading) и глобальные мультиметоды, операторы "&&= и ||=, оператор "cast", типы данных Vector и Map (похож на Dictionary в ActionScript3), класс ControlInspector, JSON-сериализацию по протоколу toJSONString / string.parseJSON, глобальную функцию "hashcode", итераторы (iterators) и много всякого будущего!

Приятно отметить авторство стандарта ES4: "Copyright © 2007 Adobe Systems Inc., The Mozilla Foundation, Opera Software ASA, and others."


10:05:43, LIFE.Flash
Flash Player 9 Beta для Leopard

На Adobe уже доступен Flash Player 9 Beta (да да тот самый, что Moviestar) для Leopard. Т.е. счасливые (?) обладатели Leopard могут ощутить всю прелесть бэты - официально. По крайне мере, так говорит Mike Chambers, а ему, я думаю, доверять стоит.

, ,
Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

2007-11-04

16:10:41, Flash-ripper.com
Как заставить сборщик мусора таки собрать и вынести мусор

Недокументированная фишка Flash Player 9. Создав два объекта LocalConnection c одинаковыми именами и предупредив возникновение исключения блоком "try..catch", вы заставите сборщик мусора (Garabage Gollector, не путать с сайтом Бармалея) собрать мусор и выбросить его. Проще говоря, это брутальный способ освободить память, занимаемую неиспользуемыми переменными вашего флэш-приложения:

try {
new LocalConnection().connect('foo');
new LocalConnection().connect('foo');
} catch (e:*) {}
// Сборщик мусора пройдется по вашей флэшапе после второго вызова и удалит все неиспользуемые переменные.
Внимание! Предельно строго рекоменудется использовать этот трюк только для экспериментов в процессе разработки и не играть так с готовым приложением на машине конечного пользователя — фишка неофициальная, низкоуровневая, никаких гарантий нет и не предвидится.
(Подглядел у Гранта Скиннера, в третьей статье из цикла "Управление ресурсами в AS3". Строго рекомендую всем.)

13:13:46, Flash-ripper.com
AIRApps Wiki — более 100 AIR-приложений одним списком

По приглашению Райана Стюарта попал в AIRApps Wiki. Cейчас на ее главной странице размещено 117 AIR-приложений. Вы тоже можете добавить туда свою работу — пароль там же. Ну вот, одним черновиком меньше. До сих пор не могу вспомнить, что помешало мне дописать и выложить эту запись три месяца назад. А, вспомнил! Я ждал, пока в списке будет 100 ЭЙР-приложений. Идиот...


12:52:58, Constantiner's blog
Расписание докладов ClientSide-2007
ClientSide-2007

Буквально вчера ночью на сайте конференции ClientSide-2007 появилось расписание выступлений.

Оба моих доклада попали в секцию «Мультимедиа». Действительно, одной из необходимых составляющих любой RIA-технологии являются интегрированные в среду исполнения медиа-возможности. Поэтому ввиду того, что приходится с печалью констатировать факт, что о RIA в российской интернет-разработке чаще всего говорить еще рано, такая классификация докладов имеет какое-то право на существование. Хотя приятно было бы видеть отдельную секцию, посвященную RIA, на которой много и интересно рассказывали бы об Adobe Flex, Adobe AIR (будет немного, но, надеюсь, интересно), Microsoft WPF, Microsoft Silverlight, Sun JavaFX, OpenLaszlo, XUL, Prism итд. А также о мобильных rich-клиентах и многом другом интересном. Но до такой секции на российских конференциях, посвященных клиентским веб-технологиям, нужно, думаю, шагать еще года два-три-четыре-пять. Подождем… :)

Проблема в том, что на мои доклады «Сравнение современных технологий для создания насыщенных интернет-приложений (RIA)» и «Adobe Integrated Runtime (Adobe AIR): платформа для создания десктопных RIA» отведено всего по тридцать минут, а это очень мало. Ну ничего, буду быстро бежать по верхам. Не думаю, что широкой аудитории интересны технологии создания насыщенных интернет-приложений. Гораздо интереснее, например, AJAX и JavaScript, которые спустя несколько лет таки дошли до России и стали популярными. Так, в секцию «Мультимедиа» проник 45-минутный доклад по GWT, который имеет отношение к AJAX, а также 45-минутный доклад по анимационным эффектам в браузере, явно относящемся к секции «AJAX, JavaScript, JSON, GWT», тезисы которого начинаются с замечательных слов про Flash:

Потому что проприетарно, внутри нет любимых CSS и HTML, неиндексируемо, плохая модель событий, в скриптах слишком долго не было регулярных выражений и замыканий, огромная среда разработки, потребность в компиляции, необходимость создания сайта целиком на флеше.

Видимо, автор не в курсе, что для Flash-платформы в отстающей в технологическом плане на несколько лет России можно писать не только в среде разработки Flash, но и с использованием того же Flex’а, с учетом которого слова автора о Flash-платформе правдивы лишь в утверждении о проприетарности, в чем лично я вижу только положительные стороны (думаю, что после конфы я опубликую свои соображения по этому поводу), а также о компилируемости приложений (с учетом наличия стандартного решения предоставления исходного кода приложения это тоже явный плюс).

Но мы не будем вешать голову, а воспользуемся даже тем немногим, что нам дали, с максимальной отдачей. Надеюсь увидеть благодарных слушателей на своих докладах.

Встретимся в Москве! :)


11:48:02, Flash-ripper.com
97 черновиков Флэша Потрошителя. Нужно что-то менять!

Только что прошелся по блогу и обнаружил, что 97 записей до сих пор находятся в статусе черновиков: их никто кроме меня не видел. Некоторые уже безнадежно устарели. Нужно быть решительнее. Было. (О! На выходных буду доводить до ума и публиковать стоящие черновики.)


2007-11-03

15:04:22, Flash-ripper.com
Куда подевался Flash Remoting в CS3? Никуда. Он стал еще проще

Вы любите Flash Remoting во Flash? Используете его простоту и скорость? Тогда вы наверняка заметили, что для Flash CS3 набора Remoting Components нет и не предвидится. Почему, я не знаю; зато знаю, как его вернуть. Оказывается, во Flash CS3 никакие специальные компоненты для ремоутинга вообще не нужны. Достаточно правильно использовать AS3-класс NetConnection, как подсказывает Оскар Трельес: создаем класс-обертку вокруг NetConnection и называем его RemotingService. В нем задаем кодировку ремоутинга (AMF0/AMF3) и устанавливаем соединение. Работает хоть с AMFPHP, хоть с Fluorine под .NET.

Далее - код, пример использования и одна проблема, с которой я столкнулся.


12:13:16, Лаборатория Январева
Немного о проектировании

Написание этой заметки совпадает у меня с формальным изучением RUP (Rational Unified Process) и проектированием систем в UML. В мировом масштабе сейчас лидирует объектно-ориентированная парадигма написания ПО, на старте находятся фреймворки и паттерны проектирования (GoF).

Благодаря своей родной кафедре я сумел познакомиться с логической и функциональной парадигмой написания программ в Лиспе, Рефале и Прологе. Некоторый класс задач гораздо удобнее решать с использованием этих языков.

Сам я пишу Web-сайты на PHP, знаю, что многие делают также и очень этим довольны, несмотря на то, что люди, пишущие в нем не очень часто используют классы. Кроме того, в Web-программировании набирает большие обороты Ruby-on-Rails.

Хочу немного поразмышлять по этому поводу.

(more…)


2007-11-02

17:16:00, Flash-разработка
Как лучше определять свойства класса, предназначенные для потомков и внешнего пользования?
Как лучше определять свойства класса, предназначенные для потомков и внешнего пользования? Вопрос не быстродействия а логики.

  1. Определить как protected и в потомках использовать их напрямую, а для внешнего использования сделать public установщик.
  2. Определить как private, и для потомков и для внешнего использования сделать public установщик.
  3. Определить как public.

Первый способ дает неоднозначность - обращаться к свойству напрямую или через установщика. Однако, обращаясь напрямую, мы имеем дело с переменной, что улучшает производительность.

Второй способ лучше, т.к. сокращает количество путей доступа к свойству, что лучше сказывается на инкапсуляции объекта.

Последний способ применим только для простых конструкций.

* * *

Важно четко понимать, какой способ лучше применить:

  • Очевидное применение первого способа - для абстрактных классов,
  • Второй соответственно в реализациях
  • Третий - для простых конструкций, предназначенных для хранения данных.

17:04:26, Flash-ripper.com
Как устроены Модель, Вид и Управление во фреймворке PureMVC

Друзья, данная часть цикла статей о флэш-фреймфорвке PureMVC должна называться "Как обмениваются Оповещениями участники PureMVC". Но комментарии к предыдущей части, "Фасад — ядро и лицо фреймворка PureMVC" навели на мысль, что стоит подробнее выяснить назначение и концептуальное устройство PureMVC, прежде чем переходить к более конкретной теме. Поэтому сначала еще немного о цели PureMVC, а также о крупных частях его тела: о Модели, Представлении, Контроллере и Фасаде.

Цель флэш-фреймоворка PureMVC очень узка: разделить работу над проектом на три части. Это — 1) работа с данными, 2) работа с интерфейсом и 3) общее управление приложением. В PureMVC c данными работает Модель, с визуальным интерфейсом работает Представление, а управление производится через Контроллер. Такое разделение позволяет создавать расширяемые приложения, которые легче поддаются отладке, модификации и поддержке.

В PureMVC Модель, Представление и Контроллер реализуются как три одноименных класса-синглтона: Model, View, Controller. В то же время, PureMVC организован так, что разработчик может использовать данные классы прозрачно, с помощью Фасада, тоже Синглтона. Этот класс знает каждого из трех главных участников системы. Такой Фасад можно назвать Центральным Фасадом приложения.

Теперь коротко о каждом из трех главных игроков-синглтонов Pure MVC (Синглтон — это класс, гарантирующий существование только одного своего экземпляра, поэтому его также называют Одиночкой).

Модель и ее Посредники (Model & Proxies)


Синглетон Модели в PureMVC — это просто кэш ссылок на Посредников (Proxy). Посредники работают с моделью данных приложения: они и только они, как мы знаем из первой части "Архитектура PureMVC", работают с источниками информации. Получается так: Модель, являясь Одиночкой (Singleton), дает приложению широкий выбор своих возможностей работы с данными через Посредников.

Представление и Медиаторы (View & Mediators)


Синглтон Представления (View) является кэшем ссылок на Медиаторы (подобно тому, как Модель кэширует Посредников). Именно Медиаторы работают с внешним видом приложения: они и только они работают с визуализацией и обмениваются событиями с интерфейсом (например, с MXML-компонентами).

Так в PureMVC Модель отделяется от Представления.

Контроллер и Команды (Controller & Commands)


Контроллер хранит ссылки на классы Команд, экземляры которых создаются на лету — по необходимости. Команды могут работать с Посредниками и Медиаторами, выполняя роль координаторов их взаимодействия, особенно когда речь идет о создании цепочек действий.

Синглетоны Модели, Представлениея и Контроллера в PureMVC, по сути, не делают ничего, кроме выдачи ссылок на своих представителей. Именно поэтому подавляюще бОльшая часть кода при реализации PureMVC-приложения пишется именно внутри этих представителей: Посредников (представляют модель данных), Медиаторов (представляют вид приложения) и Команд (дают управление).

И снова о Фасаде в PureMVC


Фасад в PureMVC отдувается за безделие главных игроков и занимается тем, что инициализирует их и дает доступ ко всем их методам (которых не много).

Разработчик PureMVC-приложения получает всю необходимую функциональность, просто расширяя Фасад PureMVC своим классом, таким образом получая Конкретный Фасад приложения. И уже через этот Конкретный Фасад происходит работа с Конкретными Посредниками, Медиаторами и Командами — то есть с данными приложения и его видом, а также общее управление им.

Почитайте о Фасаде в PureMVC еще раз. Если стало понятнее, то эта запись не прошла зря.


12:01:26, RIA crumbs
Мини-пост о производительности Flex 3 Builder

Работая в Flex 3 Builder, можно заметить ощутимое притормаживание при авто-импорте классов, и чем больше импортов уже имеет класс тем хуже становится билдеру, бывало задумывался до 3-4 секунд. Корень проблем зарыт в настройке билдера, в частности в опции “Keep imports organized”.

Эта опция заставляет несчастный билдер при каждом импорте не только сортировать строчки в хедере, но еще и проверять на использование того или иного импорта (к стати иногда он у меня грохал свежие импорты как ненужные). Но это все мелочи :)

Как вылечить смотрим тут:

Лечим импорты


11:48:52, WebService //Flash
Потрошители тоже видят сны

Великий и ужасный Флэш-Потрошитель, как оказалось, тоже иногда видит сны.

Которые на самом деле навеяны войной блогов.

И сны его об индейцах с узелковыми письмами и про мальчиков с косматыми улыбками.

Пятница... чего только не приснится?!


11:48:52, WebService //Flash
Потрошители тоже видят сны

Великий и ужасный Флэш-Потрошитель, как оказалось, тоже иногда видит сны.

Которые на самом деле навеяны войной блогов.

И сны его об индейцах с узелковыми письмами и про мальчиков с косматыми улыбками.

Пятница... чего только не приснится?!


11:45:51, Flash-ripper.com
Флэш-сны: Saffron 13 UML, Шагги Минималист, Инжун Индеец про Flash 12 и флэш-кино с самим собой

Мне приснился сон, из которого я запомнил:
- Что Сэмюэль Аглесиас выпустил свое долгожданное детище и назвал его Saffron 13.
- Что вышла новая Флексапа, позволяющая создавать микро-мультики с самим собой и зашаривать в сеть.
- Что Шаггисмайл сделал минималистичный дизайн сайта.
- Что я выспался.
- Что Инжун — таки индеец и написал про Flash Player 12 узелковое письмо.

Из всего этого сыблось только предпоследнее... а вообще мне очень редко снятся сны, я каждому очень рад.


2007-11-01

21:54:30, Flash-ripper.com
Удобная флекса для точной настройки атрибутов сглаживания шрифта

Если бы Тема Лебедев занимался флэш-программированием, он бы порадовался этому приложению для тонкой настройки антиалиасинга шрифтов (с исходным кодом) и накатал бы еще один замечательный параграф об экранной типографике.

Но поскольку Тема занимается каким-то дизайном (что это?), то придется нам разбираться с тонкостями антиалиасинга надписей самостоятельно.

Как вы знаете, во Flash Player 9 появилась возможность задать текстовому полю специальный режим анти-алиасинга, "advanced". В этом режиме у текстового поля появляются три новых свойства стиля: fontSharpness, fontThickness и fontGridFitType.

Играя этими свойствами, можно добиться самых разных, порой неожиданных надписей. Попробуйте: продвинутая настройка свойств сглаживания для флэш-шрифтов. Демка очень наглядная и ее можно смело заносить в свой инструментарий, как и исходники над ней.


19:04:00, Flash-разработка
Как загрузить библиотеку и затем аттачить из нее клипы
Встал вопрос, как это сделать. Нашел такой код. Надо пробовать.

* * *

Попробовал, работает превосходно. Обожаю AS3.

* * *

Трансформируя вышеприведенный код получаем очень простое решение:

Перед загрузкой указываем лоадеру контекст:
var context:LoaderContext = new LoaderContext(true, ApplicationDomain.currentDomain);
this.loader.load(this.source_url, context);

Затем, уже после того как загрузится swf-ка, мы в любой момент можем сделать следующее:

var movie_class:Class = ApplicationDomain.currentDomain.getDefinition("MovieClass") as Class;
var movie_sprite:Sprite = new movie_class();
this.addChild(movie_sprite);

19:04:00, Flash-разработка
Как загрузить библиотеку и затем аттачить из нее клипы
Встал вопрос, как это сделать. Нашел такой код. Надо пробовать.

14:06:58, Flash-ripper.com
Сколько памяти расходует небольшой класс в ActionScript3

Вчера в обсуждении экономии памяти за счет использования типа int вместо типа Number Вадим Войтюк поднял интересный вопрос: сколько памяти уходит на использование самого класса PointVO, участвовавшего в тестировании?

Я выяснил, сколько памяти отъедают экземпляры класса PointVO. Без PointVO расход пямяти на хранение двух миллионов переменных типа Number составляет 30Мб, что почти в два раза меньше 53Мб — памяти, расходуемой с использованием PointVO.
Время — 618 Мсек против 1226, т.е. в 1.9 раза быстрее без использования класса PointVO.
Чистая разница расхода памяти: 53Мб - 30Мб = 23Мб.

То есть: 23Мб памяти расходуется на хранение одного миллиона экземпляра классов PointVO, каждый из которых имеет два свойства x и y типа Number.

А для типа данных int расход памяти без использования PointVO составил 13Мб, что в три с половиной раза меньше 45Мб для случая с использованием PointVO.
Время — 441 Мсек против 1226, т.е. быстрее в 2.7 раза без PointVO.
Чистая разница расхода памяти: 45 - 13 = 32Мб.

Возникает интересный вопрос: почему в случае с типом int чистая разница расхода памяти составила 32Мб, а в случае с типом Number — всего 23Мб? Возможно, потому, что класс PointVO для хранения переменных x и y типа int использует для них дополнительную обертку вокруг типа Number, как пишет Василий здесь? А массив, значения которого не типизированы, никаких оберток не использует, так? Получается, на два миллиона оберток типа int вокруг типа Number уходит 9 Мб оперативной памяти. То есть приблизительно 5 байт на обертку.

Далее — исходный код теста для интересующихся.


10:20:00, Flash-разработка
Версия подгружаемой SWF
Смотреть 4й байт. Код.

09:41:06, Flash-ripper.com
Client Side 2097, слет пионеров Вебтриноля

Fcuk. Я не вижу возможности попасть 6-7 ноября в Москву на СlientSide2007. А вы, если можете, попадите. Там Дмитрий Поклонский (ссылка?), Иван Дембицкий и Костя Ковалев расскажут про кривые Безье во Flash, про работу с XML и про создание стандалонных Flash-приложений. Будет проведено сравнение современных RIA-технологий (Slight?) и обзор возможностей Adobe AIR. А еще будет много всего не про флэш, читайте программу конференции Client Side 2007 и непременно зайдите в обсуждение у Костантинера, у него там не только с подробностями, но и со ссылкой на бурную дискуссию о вреде пафоса в составе вступительных слов. С чем я не согласен и сейчас выражу свое несогласие.

Мой грамм масла к полезной жирности вступительных слов

Как по мне, так вступительное слово обязано быть пафосным. Окей, пусть оно не будет именно таким. Пусть будет стебным, стремным, страшным или смешным. Но вступительное слово не имеет права быть никаким — тогда пусть его не будет вообще. Если ты, организатор, не горишь идеей собрания — кто будет гореть за тебя?

Желаю всем с пользой провести славное время на ClientSide2007. Зажигай!


00:38:00, Flex 2 & Co
Flare visualization toolkit
Flare - это коллекция ActionScript 3 классов для создания разнообразных интерактивных визуализаций, например, при создании графиков, сложных анимаций, диаграмм и т.п. Flare основан на prefuse, богатом инструменте для визуализаций, написанном на Java. Flare является опенсорсным (BSD) и может спокойно использоваться для коммерческих целей.
Скачать
Демо
Урок
API докуметация

Предыдущие 30 | Следующие 30