Pull to refresh

Сумасшедший ColorMatrixFilter.

Reading time 1 min
Views 1.9K
Игрался сегодня с фильтрами и битмапдатой и случайно обнаружил баг (баг ли?) в FlashPlayer 9.

Попробуйте в каком-нибудь из проектов, где динамически перерисовывается BitmapData, применить к ней фильтр flash.filters.ColorMatrixFilter со следующей матрицей:

var cmf:ColorMatrixFilter=new ColorMatrixFilter([1,0,0,0,8000,
0,1,0,0,8000,
0,0,1,0,8000,
0,0,0,1,0])


Это приведет к сумасшедшему результату в сочетании с BlurFilter. Передавать нужно именно 8000 в массив по указанным индексам. Почему 8000? Потому что в хелпе по BitmapData я наткнулся на информацию о том, что в пределах от -8000 до 8000 на процессорах Intel Pentium3 и старше используется ускорение для проведения вычислений. Ну, я и не задумываясь вставил это значение по индексу [4]. Если сделать хотя бы на единицу больше, то эффект пропадет.

Думаю, что это, все-таки баг на уровне плеера.

Посмотреть результат можно по ссылке ниже.

*ВНИМАНИЕ!* Если вы страдаете эпилепсией, то флешку лучше не смотреть. Я вас предупреждал.

Посмотреть можно тут (нужно подвигать мышью, для демонстрации эффекта).

Исходник этого можно взять отсюда.

UPD: в адоуб отписан багрепорт
Установлено, что глюк проявляется не на всех марках процессоров и не на всех ОС.
Tags:
Hubs:
+36
Comments 98
Comments Comments 98

Articles