Вы читаете журнал [info]fla_master

flaMaster's journal

flash flex photo 2D-art

fla_master

kotik

Navigation

Май, 23, 2012

BitmapData с полупрозрачными пикселами и события мышки

В избранное Поделиться
kotik
Одна из геймдев-контор предлагает выполнить тестовое задание на AS3. Задача вратце такова: есть BitmapData с альфа-каналом; нужно сделать так чтобы изображение работало как кнопка при наведении курсора на полностью непрозрачные пикселы, при этом все изображение должно плавно подсвечиваться по внешнему контуру. Поскольку гуру геймдева признали моё решение нубовским :), я пожалуй, выложу его здесь - вдруг кому не столь притязательному пригодится. Учтите, в природе существует гораздо более элегантное решение, но i have no idea.

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

Вторая касается фильтра Glow, который, если применить его к изображению, делает полупрозрачные пикселы внутри изображения сплошной светлой зоной. Также, если изображение подготовлено с включенным антиалиайзингом, внешняя его граница часто содержит полупрозрачные пикселы, которые фильтр Glow с включенным knockout успешно вычитает, оставляя некрасивый зазор между изображеним и зоной свечения.

Руководствуясь принципом «возложить на плеер все что можно на него возложить», а не заморачиваться какой-нибудь перманентной проверкой по onEnterFrame прозрачности пиксела под курсором, я заделал слоеный пирог, каждый слой под свою проблему. Описание слоев, какой за что отвечает, дано в комментах. В качестве tween-движка заюзан TweenMax, но это не существенно.

Посмотреть

Исходник

Апрель, 4, 2012

(без темы)

В избранное Поделиться
kotik
В середине 90-х компания Duracell (между прочим, бренд Duracell принадлежит Procter&Gamble, а до этого маркой владели Kraft Foods и Gillette) запустила рекламу своих батареек с героями Puttermans. Семейка пластиковых игрушек должна была конкурировать на экране с зайчиками Energizer. Игрушек играли люди, одетые в костюмы из блоков вспененной резины, покрытой полиуретаном, в масках из латекса. Вообщем, как люди они уже не воспринимались, но и как игрушки тоже, и за пластилиновую анимацию тоже не сошли. В результате рекламную кампанию свернули, но YouTube все помнит :)



Март, 16, 2012

(без темы)

В избранное Поделиться
kotik
Если есть пара свободных минут, напишит мне буковками что-нибудь, пожалуйста:
http://fla-master.net/apps/vkontakte/letters/

Ноябрь, 8, 2011

(без темы)

В избранное Поделиться
kotik
Случайно наткнулся на блог наикрутейшего чувака по имени Robert Lyons: http://vimeo.com/rlyons/videos/sort:date

Он анимационный и видеохудожник, создававший видео-спецэффекты в то время когда еще не были доступны всякие майи, тридэмаксы и виреи. Самое главное - под роликами краткое объяснение как это было снято. В том числе, как сделано "Четвертое измерение" Збига Рыбчински. И кое-что для MTV. Эти ролики хочется смотреть. Аналоговые, теплые.

Апрель, 11, 2011

(без темы)

В избранное Поделиться
kotik
Немного про зарплаты Flash-developer'ов: http://hh.ru/article.xml?articleId=2160

Ноябрь, 3, 2010

Советский фотошоп

В избранное Поделиться
kotik

Сентябрь, 29, 2010

(без темы)

В избранное Поделиться
kotik
Приятная новость. 6/10 Adobe открывает виртуальный музей AMDM. Во главе музея — Tony Oursler, которого я всячески уважаю еще со времен Little Wonder.

http://www.adobemuseum.com/

Июнь, 9, 2010

(без темы)

В избранное Поделиться
kotik
Узелок на память: как вставлять Sprite в список отображения при использовании схемы Spark

Май, 27, 2010

Мемоизируй это!

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

А по мелочи можно воспользоваться мемоизацией, то есть, запоминать результат функции, и при вызове ее с тем же параметром не высчитывать все по-новой, а выдать результат из памяти. Алгоритм на AS3 нашелся здесь.

Сначала готовится "мемоизированная" версия функции. При первом просчете она отрабатывает как обычная. В последующих (с тем же агрументом!) результат просто берется с полочки.

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

Июль, 21, 2009

(без темы)

В избранное Поделиться
kotik
Когда есть возможность показать, а не рассказывать — нужно показывать. Желательно, в сравнении. Чем, скажем, просто баннер отличается от баннера «с наворотами»? На мой взгляд, хороший баннер способен создать атмосферу, пускай на долю секунды. Вот для таких неискушенных клиентов быстро накидал пару баннеров, одинаковых по содержанию, но разных по исполнению. Magic стоит денег, не так ли?
Разработано LiveJournal.com