Flex и RIA блоги



2009-08-01

12:01:07, Блог Fuzzle CMS
Выход Fuzzle CMS 2.5

Сегодня мы выложили версию Fuzzle CMS 2.5. Решили, что список нововведений настолько весом, что можно цифру и посильнее поменять :)

Итак, нововведения:

  • Ряд улучшений для SEO (продвижения в поисковых системах)
    • Упрощены имена страниц в Flash-версии (http://fuzzle-cms.ru/app/#/Demo вместо http://fuzzle-cms.ru/app/#/XmAdvPage-main/Demo);
    • Упрощены имена страниц в HTML-версии (http://fuzzle-cms.ru/html/Demo);
    • Можно установить TITLE, KEYWORDS, DESCRIPTION;
    • Упрощена процедура конфигурирования HTML-версии сайта;
    • Поддерживается подключение статистики Google Analytics, (подсчитывает и переходы по внутренним страницам флеш-сайта);
    • Поддерживается подключение других счетчиков;
  • Повышено удобство пользования:
    • В меню администратора встроен «Менеджер страниц» — теперь можно управлять страницами с любого места сайта;
    • Щелкните правой кнопкой на дизайне и выберите пункт «Login» для входа в систему. Поддерживается запоминание логина и пароля;
    • Комбинация Ctrl+Q в редакторе страницы выставляет размер блока по размеру его содержимого (например, по размеру загруженной картинки)
  • Появилась возможность задавать прелоадер для картинок в фотоальбомах. Поддерживается 6 видов прелоадеров с возможностью настроить их цвет, размер и ряд других параметров.

Исправления:

  • Ранее система можно было установить только в корень сайта. Сейчас можно установить в любую подпапку, и все будет работать;
  • Локализована (переведена на русский) панель управления настройками;
  • Ну и еще поправлено много мелких багов :)

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


12:01:07, Блог Fuzzle CMS
Выход Fuzzle CMS 2.5

Сегодня мы выложили версию Fuzzle CMS 2.5. Решили, что список нововведений настолько весом, что можно цифру и посильнее поменять :)

Итак, нововведения:

  • Ряд улучшений для SEO (продвижения в поисковых системах)
    • Упрощены имена страниц в Flash-версии (http://fuzzle-cms.ru/app/#/Demo вместо http://fuzzle-cms.ru/app/#/XmAdvPage-main/Demo);
    • Упрощены имена страниц в HTML-версии (http://fuzzle-cms.ru/html/Demo);
    • Можно установить TITLE, KEYWORDS, DESCRIPTION;
    • Упрощена процедура конфигурирования HTML-версии сайта;
    • Поддерживается подключение статистики Google Analytics, (подсчитывает и переходы по внутренним страницам флеш-сайта);
    • Поддерживается подключение других счетчиков;
  • Повышено удобство пользования:
    • В меню администратора встроен «Менеджер страниц» — теперь можно управлять страницами с любого места сайта;
    • Щелкните правой кнопкой на дизайне и выберите пункт «Login» для входа в систему. Поддерживается запоминание логина и пароля;
    • Комбинация Ctrl+R в редакторе страницы выставляет размер блока по размеру его содержимого (например, по размеру загруженной картинки)
  • Появилась возможность задавать прелоадер для картинок в фотоальбомах. Поддерживается 6 видов прелоадеров с возможностью настроить их цвет, размер и ряд других параметров.

Исправления:

  • Ранее система можно было установить только в корень сайта. Сейчас можно установить в любую подпапку, и все будет работать;
  • Локализована (переведена на русский) панель управления настройками;
  • Ну и еще поправлено много мелких багов :)

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


2009-07-31

20:17:50, Flash-ripper.com
Каковы они — возможные последствия ITSea-2009?

Друзья, участники ITSea / BURAFPUG-2009! В дополнение к уже запланированным докладам, было бы хорошо заиметь еще пару круглых столов, мастер-классов, я-полный-чайник-расскажите-как-сделать-игру-для-вконтакте-сессий, событий, невероятных происшествий и других увлекательных тем для обсуждения.


ITSea-2008. Идет шестичасовой доклад по Alternativa3D. Эта картинка также демонстрирует возможности онлайн-редакторов графики. Она получена из оригинала при помощи только Photoshop.com (функция Decorate).

Забудьте то, что вы видели. Если нам повезет, если Чудо(); случится, то на ITSea-2009 приедут Волков и / или / XOR Бабушкин. Переговоры с Adobe ведутся. А я хочу напомнить вам, что семидневный метатренинг персонально-профессионального роста ITSea-2009 задуман как мероприятие для людей подвижных сознанием и телом, чреватых этим, желающих этого, или же это отвергающих.

Реквестирую ваши ответы в комментариях на любой из этих вопросов:

  1. Все ли вам ясно? Что неясно?
  2. Что вы хотели бы обсудить за круглым столом?
  3. Ответы на какие вопросы вы хотели бы услышать на ITSea?
  4. Что-то накипело? Делитесь накипью. Мы снимем накипь.
  5. Интересует ли вас анимация скелетов и костей?
  6. Важны ли для вас паттерны? Какие именно?
  7. Желаете ли вы Музыку на ITSea? Какого рода?
  8. Что вы вообще желаете от ITSea? Мы исполним.
  9. Интересуют ли вас экскурсии? Куда?
  10. Вам интересно, как пользоваться Text Layout Framework?
  11. Владеете ли вы музыкальными инструментами? Не забудете ли вы их взять?
  12. В котором часу вы обычно ложитесь спать? Когда просыпаетесь?
  13. Пишете ли вы тайно или явно удивительные стихи?
  14. Беспокоит ли вас что-нибудь такое? Обеспокоимся вместе?
  15. Готовы ли вы к встрече с неизбежным? С прекрасным? С ужасным? С морем?
  16. Вы — мастер? Хотите поделиться опытом?
  17. Mate — это:
    — Английское слово для неформального обозначения дружбы?
    — Фреймворк для Flex?
    — Аргентинское слово для обозначения бодрящего напитка?
    — Нечто, любимое героями книг Хулио Кортасара?
    — Все вышеперечисленное?
    — Какая-то-фигня?
  18. Над чем вы работали в последнее время?
  19. Интересно ли вам, как сделать игру для вКонтакте?
  20. У вас есть велосипед? У менядо сих пор нет.
  21. Понимаете ли вы теперь, с какими проходимцами предстоит иметь дело?
  22. Точно понимаете? И что, вообще не страшно?
  23. Ноутбук какой модели мне лучше купить перед поездкой на ITSea? Я серьезно.

В лучший путь, отважные релаксанты!

  • Я настойчиво и повторно реквестирую комментарии.

20:17:50, Flash-ripper.com
Каковы они — возможные последствия ITSea-2009?

Друзья, участники ITSea / BURAFPUG-2009! В дополнение к уже запланированным докладам, было бы хорошо заиметь еще пару круглых столов, мастер-классов, я-полный-чайник-расскажите-как-сделать-игру-для-вконтакте-сессий, событий, невероятных происшествий и других увлекательных тем для обсуждения.


ITSea-2008. Идет шестичасовой доклад по Alternativa3D. Эта картинка также демонстрирует возможности онлайн-редакторов графики. Она получена из оригинала при помощи только Photoshop.com (функция Decorate).

Забудьте то, что вы видели. Если нам повезет, если Чудо(); случится, то на ITSea-2009 приедут Волков и / или / XOR Бабушкин. Переговоры с Adobe ведутся. А я хочу напомнить вам, что семидневный метатренинг персонально-профессионального роста ITSea-2009 задуман как мероприятие для людей подвижных сознанием и телом, чреватых этим, желающих этого, или же это отвергающих.

Реквестирую ваши ответы в комментариях на любой из этих вопросов:

  1. Все ли вам ясно? Что неясно?
  2. Что вы хотели бы обсудить за круглым столом?
  3. Ответы на какие вопросы вы хотели бы услышать на ITSea?
  4. Что-то накипело? Делитесь накипью. Мы снимем накипь.
  5. Интересует ли вас анимация скелетов и костей?
  6. Важны ли для вас паттерны? Какие именно?
  7. Желаете ли вы Музыку на ITSea? Какого рода?
  8. Что вы вообще желаете от ITSea? Мы исполним.
  9. Интересуют ли вас экскурсии? Куда?
  10. Вам интересно, как пользоваться Text Layout Framework?
  11. Владеете ли вы музыкальными инструментами? Не забудете ли вы их взять?
  12. В котором часу вы обычно ложитесь спать? Когда просыпаетесь?
  13. Пишете ли вы тайно или явно удивительные стихи?
  14. Беспокоит ли вас что-нибудь такое? Обеспокоимся вместе?
  15. Готовы ли вы к встрече с неизбежным? С прекрасным? С ужасным? С морем?
  16. Вы — мастер? Хотите поделиться опытом?
  17. Mate — это:
    — Английское слово для неформального обозначения дружбы?
    — Фреймворк для Flex?
    — Аргентинское слово для обозначения бодрящего напитка?
    — Нечто, любимое героями книг Хулио Кортасара?
    — Все вышеперечисленное?
    — Какая-то-фигня?
  18. Над чем вы работали в последнее время?
  19. Интересно ли вам, как сделать игру для вКонтакте?
  20. У вас есть велосипед? У менядо сих пор нет.
  21. Понимаете ли вы теперь, с какими проходимцами предстоит иметь дело?
  22. Точно понимаете? И что, вообще не страшно?
  23. Ноутбук какой модели мне лучше купить перед поездкой на ITSea? Я серьезно.

В лучший путь, отважные релаксанты!

  • Я настойчиво и повторно реквестирую комментарии.

2009-07-30

20:21:45, Flash-ripper.com
Заголовок Второго Уровня


20:21:45, Flash-ripper.com
Заголовок Второго Уровня


18:28:49, Flash-ripper.com
Баги Flash, которые мы в меру сил потрошируем

Это — коллекция багов Flash Player от Флэш Потрошителей. Это черновик. Он дополяняется и уточняется. Комментируйте и критикуйте в комментариях.

Баги Flash Player

Баги Actionscript Compiler

Баги Flash Builder 4 (еще не вышел в релиз)

См. также все баги, найденные Костей Ковалевым

Важная страница по теме: Латентные баги Flash Player: собираем коллекцию уродов

Записи на тему исправления багов Flash

тэг Bugs, тэг JIRA (контент может дублироваться).

Есть баг, важный и злой, и он не попал сюда?

Комментируйте, будем дополнять.


18:28:49, Flash-ripper.com
Баги Flash, которые мы в меру сил потрошируем

Это — коллекция багов Flash Player от Флэш Потрошителей. Это черновик. Он дополяняется и уточняется. Комментируйте и критикуйте в комментариях.

Баги Flash Player

Баги Actionscript Compiler

Баги Flash Builder 4 (еще не вышел в релиз)

См. также все баги, найденные Костей Ковалевым

Важная страница по теме: Латентные баги Flash Player: собираем коллекцию уродов

Записи на тему исправления багов Flash

тэг Bugs, тэг JIRA (контент может дублироваться).

Есть баг, важный и злой, и он не попал сюда?

Комментируйте, будем дополнять.


17:13:21, Flash-ripper.com
Похоже, мы таки достали Adobe с этим вашим Линуксом

Вчера и позавчера за баг ввода UTF-8 на Линуксах FP-40 поступило 15 новых голосов. Спасибо вам за поддержку тут и там! Уверен, что это помогло довести количество голосов со 192 до 207. Таким образом, барьер в 200 голосов был преодолен вчера, и сейчас этот баг — третий в списке по количеству голосов. Мы не знаем, что происходит внутри Adobe, знаем только, что вчера ответственный за исправление бага FP-40 Чарльз Лисс написал:

Quote:
Спасибо вам за голоса и комментарии. В то время, как я хотел бы сообщить вам, когда это будет исправлено, я не могу назвать точной даты. Я могу сказать, что мы исправим это в следующем большом обновлении версии ("major update"). Как только выйдет релиз, вы увидите этот баг в Release Notes как часть этого релиза. Когда это произойдет, я алсо закрою этот баг здесь как исправленный. Я понимаю и ценю вашу фрустрацию и мы усердно работаем, чтобы доставить вам качественный релиз со множеством исправлений и новых возможностей.

Спасибо тебе, Чарльз. Прости, если что не так. Сам понимаешь у нас GNU/Linuxоiди обступили со всех сторон и требуют сатiсфакциi их невiносимой фрустрациi.

А тем временем не надо здесь сидеть сложив на колени руки. Давайте поднимем баг, который достал даже сильнее: голосуем за FP-273, правильное эхоподавление во Flash Player! Ему нужен один голос, чтобы попасть фдисятку. Правда, при этом она обгонит другой баг FP-37, про поддержку AMD64 + Linux...


17:13:21, Flash-ripper.com
Похоже, мы таки достали Adobe с этим вашим Линуксом

Вчера и позавчера за баг ввода UTF-8 на Линуксах FP-40 поступило 15 новых голосов. Спасибо вам за поддержку тут и там! Уверен, что это помогло довести количество голосов со 192 до 207. Таким образом, барьер в 200 голосов был преодолен вчера, и сейчас этот баг — третий в списке по количеству голосов. Мы не знаем, что происходит внутри Adobe, знаем только, что вчера ответственный за исправление бага FP-40 Чарльз Лисс написал:

Quote:
Спасибо вам за голоса и комментарии. В то время, как я хотел бы сообщить вам, когда это будет исправлено, я не могу назвать точной даты. Я могу сказать, что мы исправим это в следующем большом обновлении версии ("major update"). Как только выйдет релиз, вы увидите этот баг в Release Notes как часть этого релиза. Когда это произойдет, я алсо закрою этот баг здесь как исправленный. Я понимаю и ценю вашу фрустрацию и мы усердно работаем, чтобы доставить вам качественный релиз со множеством исправлений и новых возможностей.

Спасибо тебе, Чарльз. Прости, если что не так. Сам понимаешь у нас GNU/Linuxоiди обступили со всех сторон и требуют сатiсфакциi их невiносимой фрустрациi.

А тем временем не надо здесь сидеть сложив на колени руки. Давайте поднимем баг, который достал даже сильнее: голосуем за FP-273, правильное эхоподавление во Flash Player! Ему нужен один голос, чтобы попасть фдисятку. Правда, при этом она обгонит другой баг FP-37, про поддержку AMD64 + Linux...


14:19:10, Flash-ripper.com
Adobe и пираты: двое москвичей уже идут в тюрьму

Так как во всём цивилизованном мире принято платить за программы, с помощью которых люди зарабатывают на хлеб с маслом, Adobe решил сделать это и в России.

Вот что пишут Ведомости. В общем-то рановато, помоему, но всё же пора постсоветским разработчикам покупать программы, а то как-то не совсем честно получается. Нам на фирме приходится покупать абсолютно всё включая winrar, а какой-то Вася Пупки из Москвы, не покупая лицензии, сидя у себя в спальне и не имея никаких расходов на софт, мешает мне и моим коллегам зарабатывать нормальные деньги (это я так, мне на самом деле никто не мешает).

Мой комментарий — Ростислав Сирык

Из статьи в "Ведомостях" следует, что посадили не пользователей, а распространителей ворованного ПО. И все же я думаю, что заключение за решетку — это слишком суровое наказание.


14:19:10, Flash-ripper.com
Adobe и пираты: двое москвичей уже идут в тюрьму

Так как во всём цивилизованном мире принято платить за программы, с помощью которых люди зарабатывают на хлеб с маслом, Adobe решил сделать это и в России.

Вот что пишут Ведомости. В общем-то рановато, помоему, но всё же пора постсоветским разработчикам покупать программы, а то как-то не совсем честно получается. Нам на фирме приходится покупать абсолютно всё включая winrar, а какой-то Вася Пупки из Москвы, не покупая лицензии, сидя у себя в спальне и не имея никаких расходов на софт, мешает мне и моим коллегам зарабатывать нормальные деньги (это я так, мне на самом деле никто не мешает).

Мой комментарий — Ростислав Сирык

Из статьи в "Ведомостях" следует, что посадили не пользователей, а распространителей ворованного ПО. И все же я думаю, что заключение за решетку — это слишком суровое наказание.


03:59:03, Flash-ripper.com
Новая версия haXe поддерживает шесть языков, и C++ тоже

26 июля вышла новая версия платформы haXe за номером 2.04, теперь с поддержкой языка C++. Так что теперь данная платформа поддерживает уже 6 языков:

  1. Actionscript Flash (для Flash Player версий <=8)
  2. Actionscript 3.0 Flash9 (AVM2, for Flash Player версий >= 9)
  3. Javascript
  4. Neko
  5. PHP
  6. И теперь — C++

Можно почитать, как "заставить" все это работать.

haXe на iPhone — инструкция прилагается

А вот в деталях о том, как запустить haxe код на IPhone. В этом релизе haxe появился специальный каталог iphone, в каталоге hxcpp — рядом с win, mac и linux (@deep).

Что же будет дальше?...


03:59:03, Flash-ripper.com
Новая версия haXe поддерживает шесть языков, и C++ тоже

26 июля вышла новая версия платформы haXe за номером 2.04, теперь с поддержкой языка C++. Так что теперь данная платформа поддерживает уже 6 языков:

  1. Actionscript Flash (для Flash Player версий <=8)
  2. Actionscript 3.0 Flash9 (AVM2, for Flash Player версий >= 9)
  3. Javascript
  4. Neko
  5. PHP
  6. И теперь — C++

Можно почитать, как "заставить" все это работать.

haXe на iPhone — инструкция прилагается

А вот в деталях о том, как запустить haxe код на IPhone. В этом релизе haxe появился специальный каталог iphone, в каталоге hxcpp — рядом с win, mac и linux (@deep).

Что же будет дальше?...


2009-07-29

13:28:05, Flash-ripper.com
Есть вопросы к Adobe? Спрашивайте

Вам ответит Ли Бримелоу из Adobe

Как это устроено: вы задаете вопрос в комментариях к этой записи в блоге Ли. Затем Ли садится, все обдумывает и отвечает, а свои ответы записывает на видео. Получившееся видео он публикует у себя в блоге. Если он не сможет ответить на ваш вопрос, то объяснит, почему. Ли просит указывать ваше имя и географическое положение (и то и другое не обязательно, но Ли просил). Сбор вопросов идет до 31 июля 2009 года (пятница) включительно. Не владеете английским? Могу помочь, пишите вопросы сюда.


13:28:05, Flash-ripper.com
Есть вопросы к Adobe? Спрашивайте

Вам ответит Ли Бримелоу из Adobe

Как это устроено: вы задаете вопрос в комментариях к этой записи в блоге Ли. Затем Ли садится, все обдумывает и отвечает, а свои ответы записывает на видео. Получившееся видео он публикует у себя в блоге. Если он не сможет ответить на ваш вопрос, то объяснит, почему. Ли просит указывать ваше имя и географическое положение (и то и другое не обязательно, но Ли просил). Сбор вопросов идет до 31 июля 2009 года (пятница) включительно. Не владеете английским? Могу помочь, пишите вопросы сюда.


2009-07-28

20:35:05, Flash-ripper.com
Как лучше и веселее всего проехать на ITSea / BURAFPUG-2009?

Как проехать к месту проведения ITSea-2009? Легко! Сначала едем поездом до Феодосии. Затем из Феодосии едем на автобусе или маршрутном такси в Коктебель. Автовокзал находится в 10 минутах ходьбы от железнодорожного вокзала. Время пути автобуса или маршрутки — примерно 20-30 минут, стоимость проезда – несколько гривень. Конечно, можно доехать в Коктебель и на обычном такси от вокзала, но стоимость проезда будет в 10-30 раз выше маршрутки или автобуса. Подробнее можно узнать в статье о проезде в Коктебель (спасибо, Ladon).

Итак, мы доехали до Коктебеля. А от него до места нашей дислокации — 15 минут ходу. Вот маршрут от Коктебеля до отеля и контакты хозяев нашей "Избушки". Если будете звонить им, то скажите, что вы — участник конференции, что пройдет 10-17 августа, организатор — Денис Радин.

А как повеселее проехать к месту проведения ITSea-2009?

Конечно же, найдя попутчиков, а для этого можно ответить на пару вопросов в этой форме. Она поможет нам устроить интересный проезд:

В форме что-то упущено? Можно общаться в комментариях Smile

Счастливого пути, и до встречи. Уже до скорой. Осталось всего 12 дней!


20:35:05, Flash-ripper.com
Как лучше и веселее всего проехать на ITSea / BURAFPUG-2009?

Как проехать к месту проведения ITSea-2009? Легко! Сначала едем поездом до Феодосии. Затем из Феодосии едем на автобусе или маршрутном такси в Коктебель. Автовокзал находится в 10 минутах ходьбы от железнодорожного вокзала. Время пути автобуса или маршрутки — примерно 20-30 минут, стоимость проезда – несколько гривень. Конечно, можно доехать в Коктебель и на обычном такси от вокзала, но стоимость проезда будет в 10-30 раз выше маршрутки или автобуса. Подробнее можно узнать в статье о проезде в Коктебель (спасибо, Ladon).

Важное дополнение от крымского резидента Ильи Панина:

На Феодосию зачастую едут поезда с неудобным временем прибытия и отъезда. Как варинат, можно ехать до Симферополя, а там на маршрутке до Коктебеля (или Феодосии), летом они ходят с периодичностью 20-30 минут. Первая официальная маршрутка на Феодосию едет в 4:15, а неофицальная ждет уже с 2:40, пока не насобирает людей, чтобы занять места (может стоять до 3:30). Едет полтора часа. Билет на офицальную стоит ~27 гривен, на неофицальную — до 40.

Итак, мы доехали до Коктебеля. А от него до места нашей дислокации — 15 минут ходу. Вот маршрут от Коктебеля до отеля и контакты хозяев нашей "Избушки". Если будете звонить им, то скажите, что вы — участник конференции, что пройдет 10-17 августа, организатор — Денис Радин.

А как повеселее проехать к месту проведения ITSea-2009?

Конечно же, найдя попутчиков, а для этого можно ответить на пару вопросов в этой форме. Она поможет нам устроить интересный проезд:

В форме что-то упущено? Можно общаться в комментариях Smile

Счастливого пути, и до встречи. Уже до скорой. Осталось всего 12 дней!


19:01:14, Flash-ripper.com
Немного внутренностей глючных выражений switch/case

Недавно мы голосовали за исправление бага ASC-3778, который делает работу с выражениями switch/case не только трудной, но и опасной. Спасибо всем, кто проголосовал! Баг уже набрал 18 голосов, его статус изменился на "Internal Review", и в результате этого "внутреннего рассмотрения" баг посчитали связанным с багом ASC-3644, который имеет приоритет "B - Major Issue", и с ним связано еще 8 проблем. Его устранение запланировано на версию Milestone FP 10.1.

Но самое интересное — это сам багрепорт по багу # 3644. Во-первых, отчет об ошибке сделан сотрудником Adobe Ларсом Хансеном, который тоже фиксит баги плейера. Во-вторых, Ларс разбирает этот баг на низком уровне. Он предлагает скомпилировать код файла switch.as с помощью asc.jar с опцией -optimize, затем сделать дамп (дизассемблировать) получившийся файл switch.abc и уже в файле с результатами дампа switch-abc-nemo440.dump обнаружить, что вместо ожидаемых 8 инструкций case во флэшовом ассемблере получилось 9, то есть на одну больше, чем просили (L2...L10):

162       lookupswitch  	default:L10 maxcase:8 L2 L3 L4 L5 L6 L7 L8 L9 L10

Что и есть проявление бага. Интересно, чорт побери. Даже такому чайнику в ассемблере, как я.


13:28:00, Flash-разработка
Генерим облака
Вот понадобилось мне облака генерить. Изобретать велосипед не будем - прямиком в гугл.
А тут красоты всякой - видимо-невидимо.

Сразу хочу отметить полезный тул: Perlin Noise Explorer. Собственно, кто еще недопонял, что такое perlin noise, может подробно изучить это явление.

Замечательный пейзажик: Actionscript 3.0 perlinNoise method.
Облака с перспективой: Clouds.
Целый движок: Perlin Clouds and Frocessing (with an F).

Без демки, но проверены:
Generating Pseudo Realistic Clouds In Flash (AS3 + Perlin Noise)
Lets make some (perlin) noise!

Не облака:
Забавная пружинка: тут.
Нереальные игры с электричеством: тут.
Красивое облако: тут.
Земля: Papervision3D clouded planet Earth tutorial and source.
Такие вот пузыри: Actionscript 3 blobs / lava lamp effect
Древесные кольца: тут.

Да... Всё красиво, но мне, увы не подошло. Идея такова, что нужно генерировать небольшие клочки облаков, а для этого нужно на полученную текстуру наложить маску, плавно описывающую область. По всей видимости, времени не хватит. Вставлю картинками.

* * *

Решил поступить так. Берем пример Generating Pseudo Realistic Clouds In Flash (AS3 + Perlin Noise). Подстраиваем параметры таким образом, чтобы облака были редкими.
Для большой области, динамический рендер по производительности просто убийственный. Но мы генерируем крупный битмап один раз, не скупясь на качество, и затем, просто скроллим его циклически.

* * *

Сделал еще проще. Полученный битмап не скроллю, а циклически со смещением заливаю им нужную область. Это гораздо удобнее, т.к. метод заливки beginBitmapFill умеет склеивать текстуру самостоятельно при любом смещении. И по производительности это выигрышнее.

* * *

В примере, полученый клип с облаками накладывается с эффектом blendMode = "screen". Для производительности это не есть хорошо. Поэтому, в целях оптимизации, рабочий битмап делаем прозрачным, заливаем белым цветом и копируем в его альфа-канал любой из цветовых каналов сгенерированного битмапа с облаками. Точнее, для генерации perlinNoise используем один канал, который потом и копируем.

13:28:00, Flash-разработка
Генерим облака
Вот понадобилось мне облака генерить. Изобретать велосипед не будем - прямиком в гугл.
А тут красоты всякой - видимо-невидимо.

Сразу хочу отметить полезный тул: Perlin Noise Explorer. Собственно, кто еще недопонял, что такое perlin noise, может подробно изучить это явление.

Замечательный пейзажик: Actionscript 3.0 perlinNoise method.
Облака с перспективой: Clouds.
Целый движок: Perlin Clouds and Frocessing (with an F).

Без демки, но проверены:
Generating Pseudo Realistic Clouds In Flash (AS3 + Perlin Noise)
Lets make some (perlin) noise!

Не облака:
Забавная пружинка: тут.
Нереальные игры с электричеством: тут.
Красивое облако: тут.
Земля: Papervision3D clouded planet Earth tutorial and source.
Такие вот пузыри: Actionscript 3 blobs / lava lamp effect
Древесные кольца: тут.

Да... Всё красиво, но мне, увы не подошло. Идея такова, что нужно генерировать небольшие клочки облаков, а для этого нужно на полученную текстуру наложить маску, плавно описывающую область. По всей видимости, времени не хватит. Вставлю картинками.

* * *

Решил поступить так. Берем пример Generating Pseudo Realistic Clouds In Flash (AS3 + Perlin Noise). Подстраиваем параметры таким образом, чтобы облака были редкими.
Для большой области, динамический рендер по производительности просто убийственный. Но мы генерируем крупный битмап один раз, не скупясь на качество, и затем, просто скроллим его циклически.

* * *

Сделал еще проще. Полученный битмап не скроллю, а циклически со смещением заливаю им нужную область. Это гораздо удобнее, т.к. метод заливки beginBitmapFill умеет склеивать текстуру самостоятельно при любом смещении. И по производительности это выигрышнее.

* * *

В примере, полученый клип с облаками накладывается с эффектом blendMode = "screen". Для производительности это не есть хорошо. Поэтому, в целях оптимизации, рабочий битмап делаем прозрачным, заливаем белым цветом и копируем в его альфа-канал любой из цветовых каналов сгенерированного битмапа с облаками. Точнее, для генерации perlinNoise используем один канал, который потом и копируем.



2009-07-27

13:20:10, Flash-ripper.com
Решение проблемы с вводом кириллицы на Линуксе во Flash Player — своими руками

Среди пользователей GNU/Linux есть пользователи SWF/Flash, это факт. И некоторые из этих пользователей очень любят флэш. Любят так, что не только терпят его поведение, не дающее вводить символы кириллицы в текстовых полях, но и помогают флэшплейеру справиться с этой задачей. Да, речь снова о печально известном баге FP-40, связанному с невозможностью ввода символов UTF-8.

Юрий 'Yzh' Жлоба выпустил патч, решающий проблему ввода кириллицы во Flash Player под Linux. Это уже второй патч, после первого патча от Алексея 'yelbota' Фомкина. Можно пользоваться — работает и в чистом AS, и там, где Flex. Спасибо вам, ребята. Лучи света проникают в сумеречную зону!


09:39:00, Flash-разработка
MPS, MIoC и утро испорчено
Вот так бывает, что приезжаешь в понедельник утром на работу, погружаешь измученное летними выходными тело в кресло, включаешь позёвывая комп, лениво начинаешь кликать последние посты. За окном лето. Чего еще может быть такого нового... Все загорают и купаются.

Но тут мозг натыкается на незнакомые сочетания букв. Таак. Мифы MPS. Явно не про мазду. MPS... MPS, что-то википедия ерунду выдает. Ладно, читаем дальше. Ну пипец, ни одной ссылки, будто и правда все всё знают, а я в мазде. Ага, это редактор. Попался, голубчик. От оно чо - Meta Programming System. Вот и википедия сразу разродилась. Ну в общем всё ясно. Шагай в будущее с MPS первой версии. Для чего оно нужно? Для создания и работы с DSL (опять неоднозначные аббривиатуры - это не про модем, это Domain-specific language - или лучше Предметно-ориентированный язык программирования). Теперь и пост про мифы можно почитать.

Что еще у нас интересного на сегодня? Ага, injun до Swiz добрался. Забавный принцип. Про паззлы понравилось, хоть никогда их и не любил - скучное занятие.
Все похвалили MIoC. Вот, спасибо, для тех кто в мазде - разшифровка (Metadata-driven autowire IoC framework для ActionScript 3). Про IoC знают многие, а вот MIoC - не думаю.

Напоследок. Случился бум Flash+Drupal. Мне так показалось, что пост Flash на Drupal произвел неизгладимое впечатление на Flex Constructor, и в течение последующих 3,5 часов он выдал Flex+Drupal=... C интеграцией flash и CMS сталкивается почти каждый flash-разработчик. На моей практике, сводится она к тому, что либо сервер диктует формат обмена данными, либо это делаю я сам. Второе чаще. Здесь же этот процесс систематизируется и ставится на рельсы, по которым очень скоро покатятся составы, полные готовых drupal-модулей для flash-сайтов, flash-приложений, flash-виджетов и flash-т.п. Идея популяризации Drupal очевидна.

Всё. Утро еще не кончилось, и мозги уже дымятся. А ведь еще завал работы...

09:39:00, Flash-разработка
MPS, MIoC и утро испорчено
Вот так бывает, что приезжаешь в понедельник утром на работу, погружаешь измученное летними выходными тело в кресло, включаешь позёвывая комп, лениво начинаешь кликать последние посты. За окном лето. Чего еще может быть такого нового... Все загорают и купаются.

Но тут мозг натыкается на незнакомые сочетания букв. Таак. Мифы MPS. Явно не про мазду. MPS... MPS, что-то википедия ерунду выдает. Ладно, читаем дальше. Ну пипец, ни одной ссылки, будто и правда все всё знают, а я в мазде. Ага, это редактор. Попался, голубчик. От оно чо - Meta Programming System. Вот и википедия сразу разродилась. Ну в общем всё ясно. Шагай в будущее с MPS первой версии. Для чего оно нужно? Для создания и работы с DSL (опять неоднозначные аббривиатуры - это не про модем, это Domain-specific language - или лучше Предметно-ориентированный язык программирования). Теперь и пост про мифы можно почитать.

Что еще у нас интересного на сегодня? Ага, injun до Swiz добрался. Забавный принцип. Про паззлы понравилось, хоть никогда их и не любил - скучное занятие.
Все похвалили MIoC. Вот, спасибо, для тех кто в мазде - разшифровка (Metadata-driven autowire IoC framework для ActionScript 3). Про IoC знают многие, а вот MIoC - не думаю.

Напоследок. Случился бум Flash+Drupal. Мне так показалось, что пост Flash на Drupal произвел неизгладимое впечатление на Flex Constructor, и в течение последующих 3,5 часов он выдал Flex+Drupal=... C интеграцией flash и CMS сталкивается почти каждый flash-разработчик. На моей практике, сводится она к тому, что либо сервер диктует формат обмена данными, либо это делаю я сам. Второе чаще. Здесь же этот процесс систематизируется и ставится на рельсы, по которым очень скоро покатятся составы, полные готовых drupal-модулей для flash-сайтов, flash-приложений, flash-виджетов и flash-т.п. Идея популяризации Drupal очевидна.

Всё. Утро еще не кончилось, и мозги уже дымятся. А ведь еще завал работы...



2009-07-24

20:59:52, Блог Fuzzle CMS
Специальная цена для фрилансеров

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

Таким образом, с 25 июля по 10 августа (а может, и даже немного дальше) фрилансеры и индивидуальные предприниматели (они же физ. лица) имеют уникальную возможность купить систему управления Flash-сайтами Fuzzle CMS по специальной цене — 12.900 рублей вместо 20.000 для компаний.

Возможности Fuzzle CMS

Возможности Fuzzle CMS

Если наш эксперимент по работе с физлицами пройдет успешно, мы рассчитываем сделать эту практику постоянной.  Кстати, напоминаем, что Fuzzle CMS можно попробовать в демонстрационной версии «онлайн», взять скачиваемую версию, а также получить бесплатный лицензионный ключ на 10 дней. Для особо нетерпеливых доступны видеоролики. Все демонстрационные материалы



20:59:52, Блог Fuzzle CMS
Специальная цена для фрилансеров

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

Таким образом, с 25 июля по 10 августа (а может, и даже немного дальше) фрилансеры и индивидуальные предприниматели (они же физ. лица) имеют уникальную возможность купить систему управления Flash-сайтами Fuzzle CMS по специальной цене — 12.900 рублей вместо 20.000 для компаний.

Возможности Fuzzle CMS

Возможности Fuzzle CMS

Если наш эксперимент по работе с физлицами пройдет успешно, мы рассчитываем сделать эту практику постоянной.  Кстати, напоминаем, что Fuzzle CMS можно попробовать в демонстрационной версии «онлайн», взять скачиваемую версию, а также получить бесплатный лицензионный ключ на 10 дней. Для особо нетерпеливых доступны видеоролики. Все демонстрационные материалы



12:55:08, Flash-ripper.com
Флэш — это Зло

Что можно на такое ответить?

А если эти слова были написаны как заголовок самого первого комментария к вашей статье на drupal.org, подробно рассказывающей о недавно законченной вами книге "Flash with Drupal" для пользователей CMF Drupal? Что бы вы ответили на этот первый комментарий:

Quote:

Флэш есть Зло

Пишет Rainy Day
Я уверен, что эта книга "пойдет", и не сомневаюсь, что Travis [автор] проделал хорошую работу, когда ее писал, но лично я расцениваю Flash ка Зло, используемое преимущественно для показа надоедливой анимированной рекламы. Я понимаю, что есть другие, более достойные случаи использования Flash, но я предпочту видеть их реализованными в виде открытых стандартов, чем в закрытом, проприетарном формате Flash. Флэш алсо не работает хорошо (если вооще работает) на мобильных устройствах, которые являются растущим рынком в сети. Я думаю о приходящих стандартах HTML 5 и CCS 3, и о растущем мобильном рынке. Flash закончит свое существование через пару лет.

Так что я хочу пожелать вашей книге успеха, но лучше бы вы применили свои таланты в другой сфере. Возможно, вы напишете продолжение: "Drupal without Flash", где вы напишете, как использовать открытые стандарты для достижения тех же целей, да еще и так, чтобы это работало на мобильных устройствах? Знаете, такая джедайская версия этой книги? Wink

Извините, но Flash просто нажимает на мое больное место, потому что слишком часто он используется для зла. И я ненавижу проприетарные технологии, ведь уже доступны отличные веб-стандарты. (Я знаю, что Adobe создает шумиху вокруг открытия стандарта Flash, но давайте еще посмотрим, насколько открытым он будет). "*Продукт может отличаться от изображения на упаковке (YMMV)".

Еще раз: что бы вы ответили на это? Вы — автор книги "Flash with Drupal", писали ее целый год, и это — первый отзыв на нее.

Вот — ответ автора книги. Я считаю, что он просто образцовый:

Quote:

Rainy Day, мне очень жаль

Мне очень жаль, что у вас такие ощущения. Но (очевидно) я должен был бы не согласиться. Флэш не зло. Флэш очень полезен, когда применяется правильно и для конкретных требований. Очевидно, ваше недовольство вызвано разработчиками, которые используют флэш для неправильных целей, и у вас есть полное право испытывать это недовольство. Но, пожалуйста, не забывайте, что ЛЮБАЯ технология может быть использована с неправильными целями. Я могу создать надоедливую рекламу, используя только JavaScript и HTML. Вообще, в JavaScript и HTML можно сделать еще более раздражающую рекламу... Я пытаюсь сказать, что ваше недовольство должно быть направлено не на технологию, а на ее конкртеное применение.

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

Также, я не понимаю, почему некоторые люди считают, что если Flash неопенсорсный, то это неуместная технология и она не должна использоваться. Конечно, это все субъективно, но я верю, что Flash сегодня является важной технологией. Это не означает, что я не вижу места для лучшей open source альтернативы в будущем, но на сегодня Flash — самая популярная платформа для мультимедиа и очень мало документации по использованию этой технологии вместе с системами управления контентом. И это знание, от которого каждый может выиграть.

Спасибо за ваше мнение, но я очень надеюсь, что другие не относятся к этому так же.

Travis.


2009-07-23

18:06:51, Flash-ripper.com
Flash на Drupal

В июне 2009 года вышла книга "Flash with Drupal". Ее содержание представляется крайне интересным для тех, кто хочет делать динамические сайты на Flash или Flex, но не хочет, или не умеет писать серверный код. Прочтя эту книгу, вы научитесь создавать флэш-проекты, поддерживаемые мощной, бесплатной, расширяемой и открытой CMF Drupal.

Автор книги — Travis Tidwell. Он уже был у нас в гостях, в записи о популярном модуле FlashVideo для Drupal. Это он его сделал. Он делает много сайтов на Flash, используя Drupal как CMS. Такому человеку хочется верить в вопросе интеграции этих технологий.

Книга "Flash with Drupal" в магазине Packt

Содержание книги "Flash и Drupal"

Глава 1. Введение. Что можно с Flash и Drupal?
Глава 2. Создание приложения “Hello World” во Flash. Асинхронное программирование, вывод контента из Drupal во Flash с помощью модуля Services Module. Бесплатная часть главы.
Глава 3. Flash и CCK. Как добавить собсвенные типы контента во Flash-приложения, используя популярный модуль Content Construction Kit (CCK). Пример приложения: Recipe Flash, для сайта с рецентами. Бесплатная часть главы.
Глава 4. Картинки Drupal во Flash. Как модуль ImageCache для генерации изображений нужного размера.
Глава 5. Аудио Drupal во Flash. Как использовать модуль Drupal'а Audio для вывода аудио-контента во Flash-проигрыватель.
Глава 6. Видео Drupal во Flash. Как расширить проигрыватель, чтобы играть не тлько музыку, но и видео из CMS Drupal.
Глава 7. Гибридный метод, часть 1. Комбинирование Flash и HTML с помощью JavaScript.
Глава 8. Гибридный метод, часть 2. Создание сообщающихся Flash-компонентов.
Глава 9. Flash и модуль Views. Создание медиа-плейера, чей контент строится в Drupal-модуле Views.
Глава 10. Управление пользователями Drupal во Flash. Как применить его к приложению Flash, создав флэш-виджет User Login.
Глава 11. Управление контентом Drupal из Flash.
Глава 12. Как сделать голосовалку во Flash. Суммируем все изученные уроки и создаем механизм пятизвездочной голосовалки во Flash. Изучаем, как создать свой сервис Voting Service и новый виджет на Flash, совместимый с существующим Drupal-модулем FiveStar.

Ссылки:

В качестве оптимистичного заключения

По этой теме появилась инфа на русском! Вот свежий пост от Константин Kohl, где рассказано, шаг за шагом, как построить сайт на Drupal + Flex + PureMVC, на чистейшем русском языке. Автор обещал продолжить эту серию статей.

Напомню, кому пригодится этот пост. Он может пригодиться всем, кто хочет иметь расширяемую и бесплатную CMS для Flash / Flex, не программируя ее на сервере. Учтите, что об этой книге мне сообщил педантичный отморозок, а он не любит лишних движений.

Житуха-то какая начинается, пацаны!


11:50:22, Junik
Ваша ArrayCollection слишком разговорчива?

ArrayCollection является источником множества событий

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

Событие CollectionChange рассылается при каждом изменении коллекции. Например, при удалении двух элементов и добавлении трех, разошлется как минимум 5 событий. А тогда, например, визуальные компоненты, напрямую реагирующие на изменения коллекций (они подписаны на CollectionChange), будут производить слишком много промежуточных действий, хотя их волнует только финальное состояние коллекции. Да и некоторых разработчиков откровенно пугает, что столько неприкаянных ненужных событий бродит по просторам родного и горячо любимого приложения.

А оно тебе надо?

Но перед тем, как с чем-то бороться, призываю все-таки задуматься. Нужно ли с этим бороться? Чем лично тебе мешает частая рассылка событий коллекции? Ведь если мешает чисто “просто так", то паранойя - это, вообще говоря, серьезное заболевание, которое можно лечить.

Мне в голову приходит не так много ситуаций, когда эта проблема должна беспокоить. При адекватной разработке компоненты не реагируют на изменения коллекции молниеносно, обработка происходит в отложенном режиме. Сколько бы раз ни пришло событие, обработка произойдет только в commitProperties, например. Поэтому на работе стандартного RIA это особо не скажется.

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

Если все-таки надо.

Когда посещают мысли что-то с этим делать, то конечно, немедленно хочется воспользоваться методом disableAutoUpdate, который позволяет отменить рассылку событий. Вызвав этот метод, вы можете быть уверены, что никто не узнает об изменениях коллекции.

Метод enableAutoUpdate включит рассылку событий обратно. Обратите внимание, что это приведет к рассылке всех событий, накопленных за время “молчания” коллекции.

Казалось бы все просто. Но тут есть интересная особенность. В зависимости от того сколько раз вы вызвали disableAutoUpdate, столько раз и придется вызвать enableAutoUpdate, чтобы кто-нибудь все-таки узнал об изменениях. Это может быть неудобно, особенно, если учесть, что, например, DataGrid использует эти механизмы сам.

Если вы хотите сами решать, когда сообщать об изменении коллекции, то можно унаследоваться от класса коллекции и переопределить метод enableAutoUpdate таким образом, чтобы рассылка никогда не возобновлялась. Однако это приведет к тому, что коллекция все равно будет сохранять данные о своих изменениях.

Тут есть еще интересная особенность. Вызов метода refresh приводит к рассылке события CollectionChange вне зависимости от того, отключен автоапдейт или нет. Не знаю, баг это или фича, но этот же метод еще и обнуляет массив накопленных за “время молчания” изменений.

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

Bookmark this article at


2009-07-22

20:49:42, Flash-ripper.com
Media 2.0 — Open Source Media Framework для разработчиков

21 июля Adobe выпустила в Open Source разработку Open Source Media Framework (OSMF. Ранее проект носил рабочее название Strobe). Что этот фреймворк собой представляет и чем он может пригодиться нам, профессиональным бездельникам, в смысле, разработчикам?

Open Source Media Framework — открытая, многоуровневая, слабо связанная, гибкая и целостная система для разработки мультимедийных проектов любой сложности, использующих преимущества современной информационной насыщенности и связанности сети, или не использующих. Архитектура AS3-фреймворка OSMF создана специально для работы с медиа-данными любых типов и объемов.

От несложной фотогалереи до многопользовательского видео-портала с подключенной социальной сетью, наноблогами, блекджеком и эффективными менеджерами — вот спектр применения OSMF.

Цели Open Source Media Framework

  • Снизить для разработчиков входной баръер в технологию сетевого видео.
  • Дать набор легко совместимых и расширяемых компонентов, сфокусированных вокруг качества открытого видео-проигрывателя OVP: минимальный стартовый буфер для начала проигрывания, гибкая логика соединения, динамические потоки.
  • Создать стандарт для работы с медиа-информацией, но дать место и нестандартным решениям.
  • Независимость от фреймворков. OSMF написан на AS3, работает во Flash и во Flex проектах.
  • Свести к минимуму избыточность в проекте: оптимизация архитектуры, объема кода, веса SWF-файлов и т.п. Фреймворк OSMF высокогранулирован. Конкретные проекты могут использовать необходимые им гранулы — части OSMF (swc), не таща в проект ненужный код и ресурсы.
  • Интеграция с инструментарием Adobe — от FMS 3.5 до Flash Catalyst и Illustrator.
  • Создать удобные способы подключения медиа-партнеров, поставщиков контента, сервисов монетизации и рекламных служб к медиа-проектам.

Но, как реальный проект на OSMF может выглядеть в жизни?

Пример: разработчик и/или дизайнер создает медиа-плейер во Flex, Flash или Catalyst. Потоковое вопроизведение обеспечивается установленными у поставщиков контента серверами типа Red5 или FMS, а фреймворк дает средства интеграции с разными системами, есть плагины и можно делать свои. Платформа Flash обеспечивает проигрывание видео и других типов контента. Компании типа DoubleClick предоставляют элементы рекламы для показа в заданной позиции видео, плейлиста, или реализующие распределенную рекламную кампанию внтутри медиа-системы, рекламу, которая подстраивается под метаданные. Приложения от компаний типа KickApps помогают встроить плейер в социальные сети типа Facebook. Компании типа Level(3) занимаются синдикацией потоков данных для выдачи их внешним API. И ко всему этому можно подключить еще много разных сервисов и датапровайдеров, да хоть кофеварку на USB.

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

Заканчивая это славное маркетинговое вступление, отметим: некоторые объясняют действия Adobe по открытию исходников OSMF как попытку выиграть в борьбе за стандарты сетевого видео. Не станем спорить, ведь любая здоровая компания стремится быть первой, и при должном усилии и хорошей карме (да-да) становится ею. И тут же мы станем утверждать, что OSMF родился естественным образом, как ответ Flash на современное состояние той экосферы, ключевой частью которой Flash является. Сегодня во Flash — огромное количество медиа-информации и систем управления ею, разработчиков и дизайнеров, библиотек и фреймворков, рекламных сервисов и решений для монетизации, медиа-площадок и поставщиков контента, социальных сетей, систем аггрегирования и рейтинга — всего того, что неоднозначно называется Web 2.0, и в формировании чего Flash Player сыграл и играет важную роль.

Так много всего, как с этим можно работать? Как студии, компании, поставщики контента и разработчики могут применить богатство технологий Веб 2.0 на практике? Используя Open Source Media Framework, а конкретно — интегрируя OSMF в свой проект на необходимом им уровне. Основных уровней интеграции три, и они строятся вокруг трех аспектов архитектуры OSMF.

Три аспекта архитектуры Open Source Media Framework

OSMF реализует три функциональных аспекта как части триединства MVC:

  • Модель: медиа-элемент (IMediaElement).
    Медиа-элементами могут быть видео, аудио, swf-файлы, картинки и другие типы медиа. Элементы являются атомами фреймворка OSMF. Они имеют такие свойства, как тип медиа и жизненный цикл. Также каждый элемент обладает одним или несколькими свойствами признаков (IMediaTrait: "качество", "черта", "особенность медиа").

    Что такое медиа-признак элемента? Это указание на его конкретные характеристики. Примеры признаков: IPlayable (ЯИграбельный), IViewable (ЯВизуальный), IPausible (ЯПаузабельный) и т.д:

    Set #1: [MediaElement] and [IMediaTrait]

    Признаки элемента играют важную роль при работе с ним вашей медиа-системы. Например, у загруженного в ваше приложение видео-элемента обнаружен признак IPlayable. Значит можно показать пользователю кнопки "Play" и другие, реализующие этот признак, ЯИграбельный. Когда видео проиграно до конца, загружается следующий элемент, картинка, у которой нет признака IPlayable, а есть признак IViewable. Значит, теперь можно скрыть или деактивировать кнопки для проигрывания контента, и просто показать картинку. Так мы получаем гибкую подстройку системы под тип медиа-контента.

  • Управление: медиа-композиция (Media Composition, IMediaFactory.
    Медиа-композиция — это набор медиа-элементов. Правила композиции указывают, как ведут себя ее элементы, исходя из их типов, жизненных циклов и признаков. Каждый медиа-элемент композиции может быть отрендерен в определенном медиа-регионе. Композиции могут быть динамическими.
  • Представление: медиа-конфигурация (Media Configuration).
    Медиа-конфигурация является набором медиа-регионов. Каждый из них имеет свойства, типа ширина-высота-играбельность-слушабельность, соответствующие определенным медиа-признакам. Каждый медиа-регион может рендерить медиа-элементы определенного типа. Также задаютья отношения между медиа-регионами, например, их позиционирование и поведение относительно друг друга.

Три уровня интеграции в Open Source Media Framework

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

OOOOOOOo

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

Это один из самых гибких моментов фреймворка OSMF. Вы можете перебирать атомы медиа-элементов, а можете ворочать вселенными медиа-конфигураций. Все зависит от задачи: вы берете из фреймворка нужные элементы и используете. За счет этого оптимизируется также размер SWF. И при этом вы сможете в будущем расшириться на использование других аспектов, когда это понадобится.

Итак, три уровня интеграции вашего проекта с фреймворком OSMF

Уровень 1. Фреймворк Медиа. Строится вокруг медиа-элементов, как правило, однотипных. По большому счету, обычный видео-плейер. Включает в себя, например, открытый видео-проигрыватель OVP, работает с парой поставщиков контента. Есть возможность использовать виджеты рейтинга и рекомендации друзьям. Визуальный интерфейс подстраиваете под себя. Указываете, какие кнопки хотите показать, задаете настройки и т. п. Есть возможность подключения ко второму уровню.

Уровень 2. Фреймворки Медиа + Компоновка. Это уже скорее мультимедиа-проигрыватель, в отличие от проигрывателя однотипных данных, что был на уровне 1. Здесь есть все, что было и на первом уровне, плюс интеграция с метаданными, метками (cue points) и языком разметки презентаций SMIL, что выливается в возможность встраивания в приложение плагинов для монетизации, то есть подключения к статистике, рекламе, рекламщикам, и прочим полезным проходимцам.

Уровень 3. Фреймворки Медиа + Компоновка + Конфигурация. Полномасштабная машина для автоматической сборки и переработки разнообразного контента в лулзы и / или денежную массу. Приложение размечено на медиа-регионы: тут у нас логотип спонсора данного клипа, тут баннер его друзей, а тут виджеты пока неизвестных третьих лиц, но тоже обещали заплатить. В дополнение к уровням 1 и 2 добавляется синдикация контента и динамический интерфейс. Здесь же — ваши плагины и плагины сети партнеров.

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

Пример приложения Open Source Media Framework на Flex, 406 Кб:

 

Source: CompositionPlayer.zip

Пример OSMF-приложения на Flash, 24 Кб:

Source: FlashMediaPlayerTest.zip

Как это выглядит в коде: Flash-проект на OSMF, Actionscript

Ниже приведены важные относительно OSMF части кода из второго примера (Flash), остальное можно скачать и посмотреть (но осталось там немного). Итак, сначала мы создаем два медиа-спрайта типов MediaElementSprite и MediaPlayerSprite соответственно. Первый, MediaElementSprite, рассчитан на отображение медиа-элементов с признаками IViewable и ISpatial, т.е. ЯСмотрибельный и ЯСоСвоимиРазмерами. Годится для использования как во Flash, так и во Flex. Второй, MediaPlayerSprite, умеет автоматически создавать для себя MediaPlayer и проигрывать его содержимое:

package {

		public function FlashMediaPlayerTest()
		{
			elementPlayer = new MediaElementSprite();
			mediaPlayer = new MediaPlayerSprite();
            

Когда мы жмем на кнопку "1. Создать Media Element", вызывается метод onMediaElementTest. Он создает элемент простого типа — ImageElement (картинка типа JPG, PNG, GIF) и присваивает его свойству elementPlayer.element. А elementPlayer не загружает его автоматически, а ждет события, например, нажатия на "2. Загрузи Media Element" чтобы обработать признаки элемента и решить, что с ним делать.

А когда жмем на "3. Создай Media Player", то вызывается onMediaPlayerTest. Он создает элемент типа VideoElement и присваивает его свойству mediaPlayer.element. VideoElement по умолчанию обладает признаками IAudible, IBufferable, IPlayable, ISeekable, ISpatial, и IViewable. Так что наш mediaPlayer автоматически загружает и проигрывает его.

Функция testWrapper переключает отображение на экране наших двух плейеров: elementPlayer и mediaPlayer. А также задает размеры медиа-элемента и указывает его ориентацию, в данном случае это ScaleMode.LETTERBOX, что тоже есть константа из OSMF.

		private function onMediaElementTest(event:Event):void
		{			
			testWrapper(elementPlayer);
			elementPlayer.element = createImageElement();
		}

		private function onMediaPlayerTest(event:Event):void
		{			
			testWrapper(mediaPlayer);
			mediaPlayer.element = createMediaElement();
		}

		private function createImageElement():MediaElement
		{
			return new ImageElement(new ImageLoader(), 
new URLResource("http://webzoom.freewebs.com/sunnycooker/Fun-Panel%20LAS%20Image.JPG"));; 
		}

		private function createMediaElement():MediaElement
		{
			return new VideoElement(new NetLoader(), 
new URLResource("http://flash-ripper.com/tests/osmf-composition-player/video/Bad_Vlad_-_Encyclopedia_Dramatica.flv"));; 
		}
        
		private function testWrapper(wrapper:ScalableSprite):void
		{
			if(currentSprite)
			{
				removeChild(currentSprite);
			}
			 
			wrapper.scaleMode = ScaleMode.LETTERBOX;
			addChildAt(wrapper, 0);			
			currentSprite = wrapper;
			currentSprite.y = 60;
			currentSprite.setAvailableSize(stage.stageWidth, 340);
		}	


Как в коде обрабатываются признаки медиа-элементов

При нажатии на кнопку "2. Загрузи Media Element" происходит работа с признаками элемента MediaElementSprite. Мы определяем, имеет ли данный элемент признак ЯЗагружабельный и если да, то готов ли он к загрузке, и если он готов, то загружаем его:

		
		//MediaPlayer загрузится сам, а вот MediaElement - нет.
		private function load(event:MouseEvent):void
		{	
			if (currentSprite is MediaElementSprite)
			{
				if (elementPlayer.element.hasTrait(MediaTraitType.LOADABLE) &&
(elementPlayer.element.getTrait(MediaTraitType.LOADABLE) as ILoadable).loadState == LoadState.CONSTRUCTED)
				{
					(elementPlayer.element.getTrait(MediaTraitType.LOADABLE) as ILoadable).load();
				}
			}
		}

		private var currentSprite:ScalableSprite;
		
		private var mediaPlayer:MediaPlayerSprite;
		private var elementPlayer:MediaElementSprite;
	}
}        

Как видите, ничего военного в OSMF нет, это всего лишь гениальный по своей архитектуре конструктор. Если этот пример кажется вам простым, то гляньте в исходник флексового CompositionPlayer.zip. В этой вводной статье мы для лаконичности ограничимся малым кодом, а в следующих статьях по OSMF рассмотрим более сложные примеры.

ОК. Я готов положить свою жизнь на алтарь медиапотока. Куда платить членские взносы?

Никуда. Все это я даю вам сегодня бесплатно:

Целую,
Рострошитель

P.S. Продолжим тему в Крыму, на ITSea-2009?


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