PDA

Просмотр полной версии : Проблема Blur и больших MovieClip'ов


koIIImarik
15.06.2008, 22:17
Появилась проблема, не знаю, как её решить.

Есть контейнер (читай MovieClip), в который подгружается большое количество контейнеров для картинок, в которые потом загружаются картинки. Но не в этом суть, а суть в том, что если картинок подгружается больше определённого числа то фильтр Blur не хочет применяться к главному контейнеру.

Выяснил, что всё зависит от размеров MovieClip'ов. Допустим в приложенном примере (см. архив .rar) Blur не хочет применяться для клипа шириной от 2870 и больше, а для точно такого же клипа с шириной 2869 работает нормально.

Проверил, всё зависит от бОльшей стороны клипа, а не от площади, если обе стороны будут по 2869, то всё будет работать нормлаьно, а если одна будет больше, то перестаёт работать.

В общем и не знаю что делать, если кто-то сталкивался с этим, просьба, подскажите, что делать.

Или, возможно, кто-то знает ответ, как можно добиться эффекта "не в фокусе" без применения BlurFilter, и чтобы этот эффект можно было программно изменять. Чтобы было понятнее прикладываю картинку с примером того, что мне нужно.

http://www.flashist.ru/images/blur_problem.jpg

P.S.: поиском пользовался, ничего не нашёл, может кто-то подскажет, где искать.

etc
15.06.2008, 22:21
Если быть точным, то цифра равна 2880 пикселей, это ограничение Flash Player на размер одного битмапа, коим и является клип, на который наложен фильтр.

koIIImarik
15.06.2008, 22:58
Ну, на самом деле нет. В приложенном примере цифра составляет именно 2870, а ещё в одном примере, с которого всё собственно и началось, клипы с размерами от 2868 так же не работали нормально с фильтрами.

А вообще, конечно фигово, я так понимаю эту особенность никак нельзя обойти, кроме как либо:

а) Создавать и удалять в нужном месте картинки, таким образом "имитируя" движение галлереи. Чтобы те картинки, которые выходили за область видимости удалялись и не прибавляли к длинне родительского клипа.
б) Накладывать фильтры на сами клипы картинок, так же можно накладывать только на те, которые в поле зрения, а с тех, которые уходят за эти рамки снимать применение фильтра, чтобы зоть как-то уменьшить нагрузку на проц.

Но при варианте б), как я понимаю, тормоза будут жуткие, на столько объектов прийдётся фильтры накладывать, это же хуже, чем на один родительский, да?

iNils
15.06.2008, 23:30
В приложенном примере цифра составляет именно 2870, а ещё в одном примере, с которого всё собственно и началось, клипы с размерами от 2868 так же не работали нормально с фильтрами.Зависит от величины blurX и blurY. Блюр выходит за пределы размеров объекта, поэтому результирующая область используемая фильтром больше размеров клипа. Если скажем блюр выходит на 5 пикселей, то размер клипа не должен быть больше 2870 (5 + 2870 + 5 = 2880)

koIIImarik
15.06.2008, 23:45
Круто, спасибо. Наверное не догадался бы сам.