Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   проблема с удалением фильтра, хелп! (http://www.flasher.ru/forum/showthread.php?t=158117)

stweet 15.06.2011 16:07

проблема с удалением фильтра, хелп!
 
Код AS3:

var bitData:BitmapData = new BitmapData(loader.content.width,
                                        loader.content.height,
                                        false,
                                        0);
bitData.draw(loader.content);
bitData.applyFilter(bitData,
                        new Rectangle(0, 0, 50, 50),
                        new Point(),
                        new ColorMatrixFilter([ 
                                0.3, 0.6, 0.1, 0.0, 0.0,
                                0.3, 0.6, 0.1, 0.0, 0.0,
                                0.3, 0.6, 0.1, 0.0, 0.0,
                                0.0, 0.0, 0.0, 1.0, 0.0]));
 
var bitmap:Bitmap = new Bitmap(bitData);
 
sourse.push(bitmap);

есть вот такой фрагмент, тут(как вы видите) я накладываю на картинку фильтр, т.е. делаю чёрно-белой.
Мне нужно что бы при наведении курсора на картинку фильтр отключался.
Делаю так:
Код AS3:

sourse[0].filters = null; // так было указанно в справке AS3.

ноль эмоций. Есть ещё какойнибудь способ реализовать мою задачу?

alatar 15.06.2011 16:17

Между методом BitmapData#applyFilter и свойством DispalyObject#filters нет никакой связи. Используйте DispalyObject#filters / DispalyObject#transform, если надо добавлять и удалять фильтры.

stweet 15.06.2011 16:21

Спасибо.
Чёт я малость не воткнул, а как в моём случае поступить???

alatar 15.06.2011 16:23

http://help.adobe.com/ru_RU/FlashPla...xamplesSummary
http://help.adobe.com/ru_RU/FlashPla...xamplesSummary

tsarapkabel 15.06.2011 16:24

Ты применяешь одну и ту же BitmapData как начальное и конечное изображение. Таким образом, при использовании applyFilter, старая BitmapData затирается. Есть 2 варианта решения:

1) Задействовать ещё одну BitmapData. То есть создать
Код AS3:

var bitData:BitmapData = new BitmapData(loader.content.width, loader.content.height, false, 0);
var bitData2:BitmapData = new BitmapData(loader.content.width, loader.content.height, false, 0);
//А затем делать
bitData.applyFilter(bitData2...

2) Как сказал alatar использовать
Код AS3:

bitmap.filters = [new ColorMatrixFilter...

Тогда сработает sourse[0].filters = null

stweet 15.06.2011 16:31

Огромное спасибо народ!

Цитата:

Сообщение от tsarapkabel (Сообщение 1003905)

2) Как сказал alatar использовать

Код AS3:

bitmap.filters = [new ColorMatrixFilter...

Тогда сработает sourse[0].filters = null

Вот этот оказался самым удобным =)
Ещё раз, спасибо за помощь!


Часовой пояс GMT +4, время: 14:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.