Archive for the ‘flash’ Category
Красота!
Вот сижу любуюсь, сегодня на thefwa.com увидел…
http://instantanes.visitprovence.com
Легкий, отзывчивый интерфейс, все летает. Все сделано тщательно, почти идеально. Сама по себе концепция интерфейса не новая, но дизайн и воплощение великолепны.
Это именно тот случай, когда flash применен по делу.
Фреймворк или не фреймворк вот в чем вопрос
Писать ли flash сайт на фреймворке или мучаться самостоятельно?
На самом деле нет никакого вопроса. Для меня по крайней мере, как для начинающего в этом деле:
Если вы начинающий - Конечно, НЕ фреймворк.
Конечно, надо первые проекты писать с чистого листа, чтобы на собственной шкуре понять необходимость использования шаблонов проектирования, чтобы понять как эти шаблоны работают, чтобы знать “что у лошадки внутри”. Чтобы понять насколько фреймворки экономят время. Но фреймворки экономят время только для тех, кто ЗНАЕТ.
Честно скажу, приступая к первому коммерческому проекту я понятия не имел как я его завершу, и я пытался сначала подступиться к pureMVC, но потом счел за лучшее отложить это мероприятие и начал читать книжку OReilly ActionScript 3.0 Design Patterns. Это ТО, с чего стоит начинать. По крайней мере оттуда можно вытащить готовые работоспособные конструкции, на которые вполне можно нарастить мясо своего проекта.
Отсюда мораль: сначала все пробуем собственными ручками, потом фреймворки.
Создание скринсейверов для Windows из swf
Мне уже несколько раз приходилось сталкиваться с задачей создания скринсейвера из flash. Раньше я пользовался програмкой Flash screensaver master, все бы ничего, но во-первых она не бесплатная, во-вторых спустя год использования все антивирусы как один начали выть, что в скринсейверах есть spyware, а после перезда на windows 7 я и вовсе ее не смог поставить, т.к. антивирус лихо удалил основной экзешник, опять-таки заподозрив в нем вирус.
Порыскав в сети я обнаружил весьма неплохую альтернативу - Instant Storm.
- Во-первых, это совершенно бесплатная программа (авторы предлагают сделать им добровольный взнос если понравиться).
- Во-вторых она гораздо более функциональна чем вышеназванный предшественник. Главное, что скачивать для использования нужно обязательно только версию 2.0Rc (release candidate), т.к. версия предлагаемая в качестве основной, производит кривые скринсейверы (где-то они работают, а где-то нет).
Итак, чем же мне так понравился Instant Storm?
1. У него есть возможность создавать собственные панели настройки для скринсейвера. В качестве панели настроек можно подсунуть собственный swf. Я пока не исследовал эту часть.
2. Мне очень понравился целиком и полностью настраиваемый инсталлятор, можно задавать свои тексты в диалоге настроек, настраиваются практически любые диалоговые окна, то есть практически все мыслимые параметры можно кастомизировать.
3. 2-я версия поддерживает Flash CS4 (Flash Player 10).
4. Есть внятная онлайновая инструкция и живой форум пользователей, правда на английском.
Я не буду вдаваться в подробности создания скринсейвера, благо процесс этот совершенно элементарный, особенно для людей находящихся в теме.
Несколько слов о том каким должен быть swf для скринсейвера. Слов даже не несколько, оно одно - “любым”. Я скармливал как обыкновенный swf сделанный на таймлайне, так и ролик полностью написанный на ActionScript, да еще и качающий фотографии из папки на жестком диске для своей работы - работает все отлично.
Вобщем к чему все это я? Да вот: очень советую Instant Storm, хорошая штука, денег я парням не платил еще, так хотя бы рекламу им сделаю.
Что нам готовит Flash CS5?
Посмотрел у Ли Бримелоу видео о том, что новенького будет во флеше CS5.
Из запомнившегося:
- Теперь в стандартные библиотеки входит GTween.
- SWFAdress теперь тоже стандартная библиотека и html генерится с ее использованием.
- Появилась целая библиотека заготовок ActionScript кода. При вставке кода можно автоматом цеплять имя инстанса в код.
- Сам код можно редактировать как во флеше, так и во флеш-билдере.
Существенно улучшится работа с текстом. Теперь кроме стандартного текста появился еще один вид текстового объекта в котором можно назначать колонки, а также перетекание текста из фрейма во фрейм. Выглядит все это дело в точности так же как в Индизайне. Собственно про это можно сказать - “Давно уже пора было это сделать!”. Жаль только что этот вид текста пока не будет поддерживается в экшнскрипте.
Появились всякие фенечки типа кистей рисующих паттернами, точная копия арт-браша из иллюстратора. Ну фиг знает… зачем они нужны… Собственно я, например, никогда всерьез не воспринимал флеш как среду для удобного рисования, так, кое-что поправить по мелочи, но создавать там что-то с нуля… увольте, очень уж специфический подход по сравнению с привычным иллюстратором.
Улучшился по мелочи интерфейс, тоже все из разряда “давно пора” - продукт по интерфесу становится все более адобовским и все дальше уходит от сумбура макромедии.
Как сделать из говна конфетку? Processing вам в помощь!
Недавно одному из клиентов потребовалось сваять календарь с некими иллюстрациями. При этом бюджет явно не предусматривал покупку нормальных фотоматериалов. Я крепко призадумался, как из найденного в интернете лоурезного говна сделать приличную вещь. И, неожиданно, вспомнил про Processing.
Если кто не в курсе, это такой движок или платформа, предназначенная для создания интерактивных произведений генеративного искусства (generative art). На этой платформе сделано довольно много модных мультимедийных интерактивных проектов. На сайте есть галерея, все подробности там. Да, и он бесплатный, абсолютно.
Так вот, я решил использовать Процессинг с цель получить примерно такой результат как вы видите на картинке - растеризовать изображение с помощью букв. Все осложнялось тем, что такой скрипт еще предстояло создать…
За основу я взял разработку с сайта complexification.net Джареда Тарбелла box fitting (Thank you Jared!). Но я решил модифицировать алгоритм таким образом, чтобы вместо квадратов использовать буквы. По ходу работы пришлось усовершенствовать алгоритм так, чтобы картинка сохраняла узнаваемость. В оригинальном алгоритме берется цвет из случайного места исходного изображения, затем квадрат начинает расти пока не столкнется с другим растущим квадратом, получается красиво, но структура изображения нарушается. Я же сделал так, что буква растет до тех пор пока перепад яркостей или насыщенности или оттенка находится в заданном коридоре, то есть буквенные пиксели сохраняют структуру изображения.
Алгоритм работает достаточно быстро и можно сразу получить готовое изображение в виде Tiff файла, но как всегда есть НО, это маленькое, но противное НО… - дерьмовое качество отрисовки шрифтов в processing. Плюс к тому, выбор гарнитур небогат, можно использовать только несколько true type шрифтов, вся моя коллекция ps и OpenType шрифтов идет по боку… Внутри процессинга есть несколько разных режимов рендеринга, я перепробовал их все, но увы есть некоторые ограничения по их использованию в данном конкретном случае, так что пришлось смириться с имеющимся результатом. Тем не менее, для полиграфии вполне пристойные картинки получаются.
Естественно, я не смог устоять перед искушением портировать эту штуку на флэш. И я сделал это. Пришлось помучаться, решая проблему производительности, но об этом чуть ниже, а сейчас можно поиграться с letter paint:
Число на панели слева внизу - количество использованных символов. После остановки просчета можно увеличивать изображение и таскать его мышью. И да, приложение тормозное, увы.
Что касается производительности, то выяснилась одна неприятная особенность - если делать все как в оригинальном алгоритме, то ждать придется до второго пришествия. В оригинале, в процессинге, можно видеть как буквы “растут”, и сначала я реализовал именно такую версию, но производительность такого алгоритма во флеше была просто ужасающе низка.
В ходе экспериментов я понял, что огромное время отнимает именно процесс вывода полученного результата на экран, все эти подсоединения к дереву display list’а жрут неимоверное количество времени. Как только я вынес весь процесс за скобки, скорость увеличилась невероятно! Я решил, что будет достаточным показывать результат с некоторой периодичностью, чтобы было ясно, что приложение живо. Поэтому в ходе работы все выглядит и ощущается несколько туповато, реакция прямо скажем не реактивная… зато скорость обсчета вполне вменяемая. Собственно целью этого мероприятия было получения картинки в векторной форме, и это удалось!
Скрипт для процессинга можно скачать здесь: LetterProc02.pde

