Flex и RIA блоги
2008-01-27 |
Лучшие Flex-приложения рунета — все в одном Костя Ковалев придумал собрать все флекс-приложения рунета в одном месте. Сейчас это просто запись в блоге, в комментариях которой можно указать флекс-проект. А в перспективе это превратится в серьезный ресурс, отображающий флекс-потенциал рунета. Хорошо было бы иметь такую информацию под рукой, чтобы заказчикам показывать? Конечно! Так что не ленитесь, идите и делитесь своими ссылками. |
Встречаем Adobe Flash Media Server 3! Меня очень удивило то, что новость о том, что вышел так давно ожидаемый FMS3, не вызвала бурю эмоций. Лично я намучался с разными опенсорсными решениями с их постоянными ошибками и недоработками. Поэтому твердо решил переходить на нормальную платформу с приличной поддержкой. Итак, что мы имеем?
Более подробно о том, что же представляет собой новая линия продуктов Flash Media Server, можно почитать здесь. |
Встречаем Adobe Flash Media Server 3! Меня очень удивило то, что новость о том, что вышел так давно ожидаемый FMS3, не вызвала бурю эмоций. Лично я намучался с разными опенсорсными решениями с их постоянными ошибками и недоработками. Поэтому твердо решил переходить на нормальную платформу с приличной поддержкой. Итак, что мы имеем?
Более подробно о том, что же представляет собой новая линия продуктов Flash Media Server, можно почитать здесь. |
2008-01-25 |
Релиз Flash Media Server 3! Да, совершилось - и это уже не анонс, релиз Неограниченное число пользователей и неограниченный пропускной канал P.S. Обязательно попробую связку FMS 3 и Flash Lite 3 :) |
Новые события в классе NetStream Если открыть описание класса NetStream на LiveDocs, то можно увидеть свежие правки в документации, датированные вчерашним днем (24.01.2008) — там они отмечены красным шрифтом. |
Silverlight vs. Adobe Flash vs. Adobe Flex Google говорит, что флэш — по прежнему царь горы. Чаще всего Flash и Flex ищут в Индии и СНГ! А вот Silverlight чаще всего ищут в городе Redmond и в Китае. Детали — по клику:
Используйте эту ссылку, чтобы сравнить результаты со скриншотом через месяц, год, и т.д. Silverlight против Adobe Flash против Adobe Flex — по ЯндексуПульс блогосферы за год по запросам silverlight, adobe flash и adobe flex Виджет 1. Поисковая активность в Yandex по терминам "silverlight", "adobe flash" и "adobe-flex" (cегодня). Кстати, кто ставил апдейт Windows c Silverlight и перезагружался после? Не было странностей? |
Локализация флекс-приложений — лицом к людям Знаете ли вы, что во Flex 3 локализация приложений стала лучше в разы? Что теперь флекс-приложение может быть скомпилировано под основной язык и подгружать языковые ресурсы для других языков на лету? Что локализуются не только фразы, но и даты, валюта, и т.д. и т.п.? Я упустил эти моменты, а вот Junik — не прошла мимо и написала для нас отличную заметку о локализации во Flex 3. Спасибо тебе, Юля! Update: Вы уверены, что используете во Flex Builder все возможности кодирования? А знаете ли, что делает шорткат Ctrl + Shift + P? |
Список рунетовских Flex-приложений
Все это можно оставлять в комментах в формате:
Цифра 1 означала, что это подпадает под первую категорию. 2 - под вторую. Если под обе, то можно написать так:
Но обычно 1 влечет за собой 2. Писать можно в комментах, и тогда этой полезной инфой могут воспользоваться все. Либо писать в приват через форму на этом сайте. Заранее спасибо! |
Ожидаем выход FDT 3.0 Enterprise Как стало известно, мы скоро сможем познакомится с Enterprise-версией FDT 3.0 - популярной среды разработки Flash, а теперь еще и Flex - приложений. По словам разработчиков, в новой версии будет очень мощный отладчик и невероятно удобная система рефакторинга. Первая версия (без поддержки MXML) ожидается уже в марте 2008 года, а финальный релиз запланирован на 2-3 квартал 2008 года.
|
Ожидаем выход FDT 3.0 Enterprise Как стало известно, мы скоро сможем познакомится с Enterprise-версией FDT 3.0 - популярной среды разработки Flash, а теперь ещё и Flex - приложений. По словам разработчиков, в новой версии будет очень мощный отладчик и невероятно удобная система рефакторинга. Первая версия (без поддержки MXML) ожидается уже в марте 2008 года, а финальный релиз запланирован на 2-3 квартал 2008 года. |
2008-01-24 |
Параметры командной строки ASDoc -doc-classes path-element [...] - cписок документируемых классов. Эти классы должны располагаться в директории с исходным кодом. Этот параметр используется по умолчанию. -doc-namespaces uri manifest - список URI (пространства имен), классы которых должны быть документированы. Эти классы должны располагаться в директории с исходным кодом. Необходимо указать URI и место размещения файла, определяющего содержимое пространства имен. -doc-sources path-element [...] - список документируемых файлов. Если в списке указана директория, происходит рекурсивная обработка ее файлов. -exclude-classes string - список классов, которые не будут включены в документацию. Необходимо указывать имя каждого усключаемого класса. Аналогично работает тег @private, указанный при комментировании класса - класс не документируется. -exclude-dependencies true/false - определяет, будут ли документироваться зависимости, найденные компилятором. Если указано true - зависимости вводимых классов не будут документироваться. По умолчанию false. -footer string - текст в нижней части HTML-страницы. -left-frameset-width int - целое число, устанавливающее ширину левого фрейма страницы документа. Можно менять это значение с тем, чтобы подстроить фрейм под ширину имен пакетов классов. По умолчанию 210 пикселей. -main-title "string" - текст в верхней области HTML-страницы. По умолчанию "API Documentation". -output string - директория, в которой будут размещаться файлы документации. По умолчанию "asdoc-output". -package name "description" - текст, документирующий пакет классов. Этот параметр можно указывать повторно для описания множества пакетов классов. Например: asdoc -doc-sources my_dir -output myDoc -package com.my.business "Contains business classes and interfaces" -package com.my.commands "Contains command base classes and interfaces" -templates-path string - путь к директории с шаблонами ASDoc-документации. По умолчанию, используются шаблоны, размещенные в поддиректории "asdoc/templates" каталога, где установлен ASDoc. Директория содержит файлы HTML, CSS, XSL и файлы изображений, используемы для создания документации. -window-title "string" - текст на верхней панели окна интернет-браузера. По умолчанию "API Documentation". Типичная строка для генерирования ASDoc-документации: asdoc -doc-sources "Путь к файлам исходного кода" -main-title "Название проекта" -output "Каталог с документацией"
|
В войне браузеров смертельный урон нанесен веб-стандартам На главном сайте веб-дизайнеров A List Apart появилась статья о том, что IE8 будет поддерживать специальный мета-тег X-UA-Compatible для корректного рендеринга страниц, созданных ранее для браузеров типа IE6 / IE7. Вот так вы говорите, что сайт создан для IE7:
Видя такой код в начале html-документа, IE8 будет обрабатывать доку особым образом — в режиме работы IE7. Это очень разумный ход, друзья. Молодцы все-таки эти парни из Майкрософт. Теперь веб-дизайнеры, вместо того, чтобы переделывать свои старые сайты из-за их несовместимости с новым браузером могут просто вставить одну строчку кода — и сайт будет работать, как ни в чем не бывало. Друзья! Это долгожданный свет в конце интернета, если у интернета есть конец. Я подготовил по этому поводу краткую утреннюю речь. Обращение корпорации Microsoft к веб-дизайнерамДорогие наши веб-дизайнеры, AJAX-разработчики и все, кто работает с HTML! Наша компания, Microsoft совсем скоро выпускает браузер IE8, который таки умеет рендерить HTML. Есть лишь одна маленькая проблемка: мы не знаем, как будут отображаться в нем ваши сайты, сделанные под предыдущие версии IE. Точнее, мы знаем, но вам лучше этого не видеть, а чтобы вы этого и не видели, нужно как можно скорее вставить во все ваши сайты такой специальный мета-тег "X-UA-Compatible", который будет говорить: "страница создана для IE7". И наш славный IE8 сможет прочесть это мета-тэг, и сможет отрендерить страницу своим встроенным IE7 (да, в каждом блистательном IE8 есть частичка славного IE7).В общем-то, это наша проблема здесь, в Microsoft. Мы что-то слышали об обратной совместимости ПО, но там было много букв. И мы решили, что вас больше, вы умнее, и можете лучше нас решать такие проблемы. Извините. Мы сдаемся. Все свободны. А, не забудьте обновить код во всех своих сайтах. Да здравствуют веб-стандарты! Попытка спокойно разобраться с X-UA-CompatibleCмущает не столько само нововведение, сколько явный прогиб главного сайта по веб-стандартам в сторону IE. Об этом в тексте сказано много раз фразами типа "IE will support", "our group decided to recommend for IE8, and we hope to see it implemented in other browsers". Друзья, это попытка провалить веб-стандарты.С другой стороны, это очень крутое нововведение: сейчас верстальщикам приходится не только применять html-хаки для преодоления несовместимости браузеров, но и обновлять хаки на старых страницах (я скажу еще раз, что именно поэтому ненавижу хаки во веки веков, это все продажа мозга в розницу). Сейчас же веб-дизайнерам предлагают "легкое" решение проблемы несовместимости разных версий IE: набор старых хаков, упакованных в одну строку кода. Только вот проблему эту создавали не веб-дизайнеры. И решать ее дожен не каждый дизайнер, а одна компания — производитель кривых браузеров. Интересно будет посчитать, сколько времени в общей сумме будет потрачено верстальщиками всего мира на новые танцы с дудками вокруг IE8. И сколько времени понадобилось бы нескольким пряморуким программерам, чтобы решить эту проблему несовместимости централизовано на уровне браузера. Даешь сиюминутную выгоду. Василий Пупкин, торжествуй, и никогда не устанавливай правильные браузеры. Пока писал, слушал: 1. Net Pistols - God Save The Microsoft, 2. Net Pistols - Anarchy in The Web. Update 1: W3C опубликовала черновик HTML 5. |
Сеятели воздуха выходят из закрытой беты
Сейчас на Pownce более 150 000 пользователей. Каждому из них в разделе Download предлагают скачать AIR-клиент для рабочего стола, чтобы обмениваться сообщениями без захода на сайт. Неплохой толчок к развитию воздушной технологии с учетом того, что этот сервис с большой скоростью набирает обороты после открытия. Сервис основан тремя персонами — Кевином Роузом (Kevin Rose), Ли Калвер (Leah Culver) и Дэниэлем Бурка (Daniel Burka). Кевин и Дэниэль в свое время сделали сервис Digg. Кстати, у Pownce есть API и вокруг него уже есть проекты. |
2008-01-23 |
Adobe CoCoMo Private Beta — доступ желающим открыт Я писал, что приглашаются желающие для участия в приватном тестировании Adobe CoCoMo. Там же объяснялось, что CoCoMo — это движок для онлайн-сотрудничества, реализованный в виде клиент-серверного Flex-фреймворка: набор flex-компонентов плюс веб-сервисы. Можно увидеть простую демонстрацию его работы в блоге создалетей CoCoMo. Вчера мне пришло письмо из Адоби. В нем сообщалось, что я принят в эту программу. Для подтверждения моего участия предложили пройти на сайт Adobe Prerelease для регистрации. Сделано; ответили обещанием выслать ссылку для собственно доступа к программе. Сегодня увидел в почте эту ссылку, прошел по ней, получил доступ. К чему пишу: если вам это интересно — поучаствуйте. Я же постараюсь написать о своих впечатлениях от этой штуки. |
RAFPUG-2: Обмен стилями и потенциально совместимые командыСтиль разработчикаЗнакомства и встречи на RAFPUG-2 привели ко многим интересным беседам и нескольким потенциальным проектам. Но, что для меня даже более важно, я получил ощущение стиля некоторых братьев по технологии. Это расширяет как круг моих собственных возможностей, так взаимодействие с другими разработчиками. Да, я уже что-то знал о вас по сети, и, как оказалось, картина в целом были верная, но ничто не заменит живой беседы.С опытным разработчиком casual-игр Ильей Курылёвым во время перерыва возникла идея небольшого совместного проекта (не игрового, но интересного мне и ему). После RAFPUG, уже в ресторане il Patio было обсуждение других конкретных задач, озвучивались идеи по поводу их решения. В частности, Таня '0xffffff' Белая подняла вопрос создания аватар-чата человеком, не знающим серверного программирования. В беседе Женей Потапенко было видвинуто предположение, что можно для этого попробовать недавно отданный в Open Source Adobe BlazeDS. И похоже, теперь у меня на два проекта больше. Вернусь к заголовку. Обмен идеями и новые проекты — это очень хорошо. Но формирующееся во время беседы ощущение стиля собеседников — это нечто большее. Именно здесь открываются новые перспективы взаимодействия людей. Становится яснее, к каким методам решения задач склоняется тот или иной человек. Расширяется собственное профессиональное видение, появляется возможность сравнить свои методы с методами других и обогатиться их опытом. Короче говоря, становится ясно, с кем бы ты захотел работать, а с кем — не очень, а с кем — ни в коем случае, а с кем — обязательно нужно замутить что-то вместе, больно человек правильный. Одно плохо — этого было мало. Нужно больше. Нужно ехать на RAFPUG с четкой целью людей посмотреть, себя показать и — не шифроваться, говорить о реальных проблемах. Потому что хорошее понимание стиля других разработчиков — путь к образованию эффективных команд, состоящих из совместимых разработчиков. Новые проектные командыКогда собирается новая команда, очень важно, чтобы ее участники были максимально притерты друг к другу по рабочим показателям: от удобного каждому графика работы до способа расстановки фигурных скобок в коде. По этой причине люди предпочитают сотрудничать с уже знакомыми им коллегами. Но это сужает выбор при создании команд. Поэтому нужно знакомиться поближе (в том числе и с незнакомыми деятелями), чтобы иметь больший выбор для сотрудничества. Нужно знать как можно больше людей в своей отрасли: где они живут, во сколько просыпаются и умеют ли работать с SVN. Да, и как именно они раставляют фигурные скобки. Резюмируя: чтобы создать сплоченную команду, люди должны как можно лучше знать друг друга, а отличный способ узнать своих поближе — это и есть встречи типа Russian Adobe Flash Platform User Group. Есть еще один вариант, скорее дополняющий данный, нежели конкурирующий с ним: речь идет об интерактивных профилях разработчиков, об этом в следующем посте данного цикла. |
Inside RIA - сайт от O’Reilly RIApedia.com сообщает о том, что O’Reilly запустил сайт посвященный RIA. Что там сейчас есть? Сейчас там есть посты с блогов RIA разработчиков (на пример, Andre Charland, Andrew Trice, Rich Tretola). Пишут люди о дизайне и разработке RIA приложений, и о том какие есть “стандарты” для RIA. Выбор постов по интересующей тематике есть в хедере Всем приятного использования и надеюсь пополнения “буржуйских” ресурсов умными статьями и постами от наших гуру-шамано-евангелистов |
Отлов событий из Item Renderer'ов Многие знают, что ячейки таких компонент, как Основная задача item renderer’а - представить произвольный визуальный способ отображения и редактирования данных. То есть если речь идет об изменении данных, то renderer это делает самостоятельно. Замечу об отличии item renderer’а от item editor’а с точки зрения редактирования данных: item editor предоставляет механизм некой сессии редактирования данных, обладающей сложным устройством и возможностью отмены редактирования. Но это тоже отступление от нашей генеральной мысли об орехах. Я хочу рассказать о таком варианте использования рендереров, как генерация некоторого события, которое не обязательно влечёт за собой изменение данных, ассоциированных с конкретным рендерером. Простейший пример - некоторая кнопка, о нажатии на которую мы хотим знать. Как перехватить это событие? Сложный вопрос. В общем, есть разные варианты. Например, используя ключевые слова Я предлагаю использовать способ, базирующийся на бабблинге событий в визуальных объектах, о котором я недавно писал. Итак, будем основываться на примере с List’ом и item renderer’е с кнопкой. Будем использовать простейший XML в качестве data provider’а: Code:
Тогда наш простой рендерер будет выглядеть так: Code:
При нажатии на кнопку мы генерим событие с бабблингом. Но как это использовать? Есть два основных способа:
Первый способ прост. Мы ловим бабблинг снаружи обрабатываем его: This text is replaced by the Flash movie.
Можно посмотреть в отдельном окне (исходники доступны по правой кнопке). Пример прост: при нажатии на кнопку в первом List’е удаляется соответствующая строка. Во втором же List’е меняется метка на кнопке (и это, теоретически, вполне можно сделать изнутри рендерера). Как мы видим, главный класс приложения прост. Но он требует от нас двух вещей: подписываться на события с помощью Кстати, способ с бабблингом требует одного условия: имя события (тип) не должно совпадать ни с одним из имен событий нашего List’а. Приложение, реализующее второй способ, выглядит аналогично. Также по правой кнопке доступны исходники. Рендерер мы оставили без изменений. Мы лишь добавили простой кастомный класс события и соответствующую константу для нашего события в нем. Это событие отражено в метаданных нашего расширенного List’а. Оно не перекрывается с именем события, которое «пузырит» наш рендерер. Также в нашем List’е мы видим отключение дальнейшего бабблинга события от рендерера (чтобы оно никому уже не помешало) с использованием ![]()
А также можно увидеть формирование валидного события. Все просто. И, как следствие, упростился код главного класса приложения и стал много нагляднее. Когда использовать эти способы? Первый способ хорошо подходит для прототипирования. Он быстрый и простой. Второй же способ лучше использовать при создании коммерческого приложения, особенно если речь идет о командной разработке. Примерно так. Можно задавать вопросы, делиться своими способами, критикой приведенных итд. Милости прошу в комменты. Ну и напоследок предлагаю скачать готовый проект приведённого примера (Flex Builder 3 beta 3). |
VIVA_INDIA, или будте внимательны когда описываете события Есть класс который диспатчит событие и есть желание получить удобство написания кода когда подписываемся на события этого класса. Для этого делаем так: Класс события: package com.the33cows.somepackage
{ import flash.events.Event; public class SomeEvent extends Event } Класс: package com.the33cows.somepackage
{ import flash.events.EventDispatcher; [Event(name=“vivaIndia”, type=“com.the33cows.somepackage.SomeEvent”)] public class SomeEventDispatcher extends EventDispatcher теперь при наборе кода получаем такое: что есть очень приятно). Я всегда себе задавал вопрос почему, адоб использует именно такую конструкцию [Event(name=”vivaIndia”, type=”com.the33cows.somepackage.SomeEvent”)] по-моемому было бы логичнее использовать [Event(name=”VIVA_INDIA”, type=”com.the33cows.somepackage.SomeEvent”)] т.е. прямую ссылку на константу хранящую конкретное название события, а не само название события, но так не найдя на него ответа, решил, что так нужно и парсер “умный”, он сам на лету привязывает конкретную константу с именем события к этому тегу. Оказалось парсер безумно туп! У меня образовалось событие в названии которого были несколько прописных букв подряд для наглядного примера: public static const VIVA_INDIA : String = “VIVA_INDIA_OMG”; для него метатег выглядел так [Event(name=”VIVA_INDIA_OMG”, type=”com.the33cows.somepackage.SomeEvent”)] на что я в ответ получил:
Справедливо как для 2.0.1 так и для 3 го билдера Будьте счастливы и кодируйте с миром ). |
Дотошный смотритель от StomperNet — или Adobe AIR в действии "Гляделка" (или "Scrutinizer" в оригинале) — это AIR-приложение от самих StomperNet — "самих", потому как авторитет этих людей в среде интернет-маркетинга огромен. На них молятся манимейкеры всей планеты; а русский перевод и транскрипция их очередного популярного видео "Назад в будущее — Перспективы Web 2.0" вышел очень быстро. Что же это за приложение такое, Scrutinizer? Это помощник тем, кто хочет вдумчиво сконструировать свой сайт, чтобы пользователям в удовольствие и авторам польза. Гляделка работает так:![]() В основу работы Scrutinizer заложен один из принципов работы глаза — а именно разделение поля зрения на центральное и периферийное. Технически, это приложение имеет всего две ключевые функции: Эти две базовые функции открывают широкий спектр применений Гляделки: от изучения поведения пользователя на сайте (для тестировщиков интерфейсов) до исследования контраста страниц (для веб-дизайнеров). Читайте "10 способов использования Гляделки". А установить это чудо мысли можно отсюда. Что в этом важно для меня и для флэш-индустрии вообще? Scrutinizer иллюстрирует простую идею: новое и клевое быстро возникает там, где появилась возможность легко модифицировать старое. В данном случае старым был браузер без блюра. Домашнее задание: найдите в браузере недостающую функцию, реализуйте ее в AIR-приложении с помощью его встроенного HTML-компонента, станьте мегапопулярными и заодно немного заработайте. Update 1: Похоже, ребята стащили мышку Mus2 у студии Лебедева и вставили ее в картинку. |
Какая CMS у сайта THE FWA? Все таки я думаю, что идельной CMS для Flash сайта, сделать невозможно, так как любой flash-сайт всегда со своей особенной архитектурой. Под одну гребенку flash-сайт мерить нельзя. Конечно это спорный вопрос :) На эти мысли на меня навела Или вот… У group94 тоже есть своя CMS, грубо заточенная под свои проекты, такие как фотогалерии, портфолио… Я думаю, идельным вариантом для Flash-студии, будет создание своей Flash CMS, ориентированная на те проекты, которыми она занимается… P.S. Забаваня |
Условная компиляция с mxmlc версии 3.0 Будущий релиз Flex 3 породил массу статей, посвященных новшествам и изменениям как в самом фреймворке, так и в новой версии Flex Builder. На этом фоне без внимания остались изменения, произошедшие в компиляторах, поставляемых в комплекте с Flex 3 SDK. Сегодня я предлагаю исправить эту несправедливость. |
Юбилей one-face.ru! У проекта one-face.ru юбилей — к ним присоединился 100 участник с чем их и поздравляем! |
Protected: Юбилей one-face.ru! |
2008-01-22 |
Русской Альтернативой заинтересовались большие люди из NY В Америке уже прознали, что российские парни затеяли крутой флэш-проект и поспешили познакомиться: люди из OddCast, Нью-Йорк в гостях у команды Alternativa Game, Пермь. "Оддкастеры" занимаются многим, в том числе и онлайн-аватарами — делают это хорошо. Я так понимаю, увидев волковский параллакс-беспредел с трехмерной девушкой они просто не имели шанса усидеть на месте. Хехе, а я ведь тоже втихаря еще с прошлого года изготавливаю генератор персонажей, хоть и не столь шикарный, как у Оддкаста ;-) Чую: скоро об Альтернативе напишет Райан Стюарт! |
RAFPUG-2: виртуалов не существует Друзья, это первая часть моего отчета о "RAFPUG-2". Теперь никаких лоликов. Пишу о собственнных впечатлениях, благо есть уже несколько хороших отчетов. Связанность флэш-сообществаНа встрече RAFPUG-2 присутствовало 87 человек. Я задаюсь вопросом: скольких из них я знаю и со сколькими я успел пообщаться? Racer, Junik, Таня Белая, Pirrest (мы вместе ехали из Харькова), Костя Ковалев, Саша Гахов, SlonVsapogah, Maar, Артемий Малков, Юра Яровой, Денис Коляко, Leo, BlooDHounD, IV, Нокс, Дифлюкс, Женя Потапенко, Александр Козловский, Влад Январев, prof, Илья Курылёв — всего немногим более 20 человек. Формально, я пообщался с четвертью присутствующих. И руки тянутся написать о каждом отдельный пост: замечательно то, что каждый из вас оказался таким, каким он выглядит в сети, с подавляюще частым отклонением в лучшую сторону. Друзья, давайте выглядеть чаще и больше! А вот с некоторыми я не успел даже раззнакомиться — очень жалею. Но у меня возникают новые вопросы: сколько флэш-разработчиков вообще в рунете? А скольких флэшеров знает каждый из этих флэшеров? Иными словами, каковы внутренние связи флэш-сообщества, и насколько оно связно вообще. Как хорошо флэш-сообщество знает само себя и насколько осознает себя как сообщество? Часто флэшеры уникальны по складу ума. Флэшеры — это группа, цельность которой оказывает на нее саму большее влияние, чем в случае с другим группами. Более того, флэшеры — это весьма маргинальное образование, что заметно по отношению адептов других технологий к технологии Flash. Связность флэш-сообщества — это продуктивная, объединяющая сила (в том числе и как вакцина от сильверлайтов), в переспективе приводящая к образованию новых команд разработчиков. Вывод такой — нужно больше знакомиться и взаимодействовать. Да, еще больше. Дружить блогами и не только. Итак, первый эффект от RAFPUG-2 — это встреча с теми, кого знал уже
давно. Второй эффект — это знакомство с новыми людьми, в том числе с
несколькими людьми из Флексиса — компании, благодаря которой состоялось это
событие, как и образование данной официальной группы вообще. Без
сомнения отмечаю высокую степень организованности этого коллектива, мероприятие было проведено четко: чего стоят хотя бы фото, подробно иллюстрирующие маршрут к месту встречи! Еще факт: даже я, заявивший о своем приезде
практически в последний момент, получил свой бейджик с именем,
ником и названием своей компании. Так держать, Flexis! Тема следующей записи — стили работы и образование новых команд. Кстати, как будет лучше для вас — мой отчет небольшими порциями (размером с данную, около семи штук) или отчет в виде одного длинного текста? |
Еще о событиях в ActionScript![]() Если кто-то помнит, на первой встрече Русскоязычной Группы Пользователей Flash-платформы (RAFPUG) я рассказывал о событиях в ActionScript 3. Как краевед могу сказать, что тема событий в ActionScript далеко не так тривиальна, как это может показаться на первый, второй и третий взгляд. Работая с ними довольно долго, можно тем не менее иногда обнаружить что-то новое, сделать новые выводы и найти применения старым вещам. В частности, в том докладе я сказал некоторую лажу и во всем зале меня никто не поправил Там я сказал, что event flow (поток событий) работает только для визуальных объектов и только для интерактивных событий мыши и клавиатуры, генерируемых Flash-плеером. На основании этого я продемонстрировал пример с искусственным бабблингом (фазой пузырька). И сделал слегка неверные выводы. На самом деле, на практике все гораздо проще. И мой тот пример вполне работоспособный, но более актуальный для невизуальных объектов, либо для того, чтобы объекты генерировали целевую фазу (target phase) и фазу пузырька (bubbling phase) одновременно. Речь идет о делегировании события. Для простой же фазы пузырька в визуальных объектах практически ничего не надо, и сейчас я это проиллюстрирую. В изначальном утверждении про визуальные объекты и поток событий все правильно если рассматривать под потоком событий все три фазы (capture, target и bubbling). Но фаза пузырька (bubbling) работает и так, сама по себе. Рассмотрим пример: This text is replaced by the Flash movie.
Пример сделан в виде просто AS-проекта для наглядности. Исходники можно посмотреть тут. Скачать проект можно тут. Что мы видим на данном примере. Есть корневой
Обработка события видна в текстовом поле. Весь секрет Естественно, это просто иллюстрация. В реальности неплохо бы сделать кастомный класс события, соответствующие константы итд. Гарантирую, что это может сильно облегчить вам жизнь. |
О том, как Flash Player воспроизводит видео MP4, Quicktime, и даже музыку из вашего iPod. Все говорят, "Вот, Flash Player воспроизводит кучу видео-кодеков". А давайте проверим? Первым делом лезем в Гугл и по первой же ссылке попадаем на Flash-Ripper. Прочитав, первое желание пойти и посмотреть этот "Арал Балкан: FAQ по Adobe Flash Player H.264 support". Вопросы нас интересующие:
В ответах находим интересную ссылку: http://www.debit.nl/video/. Здесь на странице, SWF воспроизводит видео MOV. Ага, раз у нас играется, значит с плеером всё в порядке. К слову, это видео H.264. Попробуем воспроизвести этот файл своими средствами. Создаем в Flash CS проект AS3 с FLVplayback. Вызываем: flv_playback.play("http://www.debit.nl/video/BookofSecrets720p.mov") Локальная политика безопасности - только интернет, запускаем опубликованый HTML, смотрим. Пошла загрузка. Молчание. Скачиваем MOV, пытаемся воспроизвести локально. Компилируем, запускаем. Выкидывает исключение: VideoError: 1005: Invalid xml: URL: "Video/BookofSecrets.mov" No root node found; if url is for an flv it must have .flv extension and take no parameters Аналогичные действия с AS2 - проектом вообще вызывали ошибки и зависания. Значит FLVPlayback не может воспроизводить другие видео-файлы. По совету коллеги, создаю Flex-проект и перетаскиваю компонент VideoDisplay. В свойствах source указываем URL и - вуаля, всё играется. Локальный файл не позволяет воспроизвести политика безопасности. Но с этим мы боремся легко (гугл рулит) - добавляем параметр -use-network=false в Project -> Properties -> Flex Compiler -> Additional compiler arguments.Возникает вопрос - были утверждения: что Flash Player 9 MovieStar может легко воспроизвести видео любым способом, даже непосредственно самим проигрывателем, и старые проекты откомпилированные еще под 7-ю версию не будут иметь проблем. А почему же не получается? Почему только флекс-компонент VideoDisplay способен воспроизвести такое видео? Что же не так? * * * Попробовал пример из Flash CS3 Help Actionscript 3.0 Components для класса Video. Воспроизводит! Для него вопрос снимается. * * * А вот компонент Media Display Actionscript 2.0 наш MOV не воспроизводит. |
2008-01-21 |
Новый проект As3Eval As3Eval - это библиотека, позволяющая динамически компилировать некоторый ecmascript внутри плеера. Она находится сейчас в стадии разработки, поэтому применять ее в реальных проектах врядли получится. Библиотека состоит из портированного es4 "esc" компилятора, доступного из проекта Tamarin. Демо В закладке Eval UI можно увидеть сгенерированный байткод. Также можно вставить дамп (hexdump -C) свфки и дизассемблировать его. Исходный код SWC |
Не работает скрипт в TimeLine. Нашлось объяснение. AS3 Наткнулся на решение проблемы описаной мной здесь. На Labs.Adobe.com смотреть обсуждение "stop() not being called within movieclip". Ответ на вопрос звучит так: Did you apply the Flex 2.0.1 patch for Flash CS3? The problem you are describing is fixed in that patch. |
Флексипедия восстановлена. Фуххх! Я прошу прощения у всех, кто за время поломки вики не мог получить доступ к важной информации. Мне стоило сразу обратиться к профессионалу. Извините. Большущее спасибо тем, кто указывал мне на проблемы с вики и напоминал о них по почте и в блогах. |