Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   BitmapData & ColorMatrixFilter вернуть цвет (http://www.flasher.ru/forum/showthread.php?t=152895)

stanley 24.03.2011 15:44

BitmapData & ColorMatrixFilter вернуть цвет
 
применяю фильтр
Код AS1/AS2:

var rect:Rectangle = new Rectangle(0, 0, picWidth,picHeight);
var pt:Point = new Point(0, 0);
 
var arr:Array = [ 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 CMfilter:ColorMatrixFilter = new ColorMatrixFilter(arr);
 
bitmapData.applyFilter(bitmapData, rect, pt, CMfilter);

изображение становится серым - обесцвеченным
пытаюсь вернуть цвет так
Код AS1/AS2:

var rect:Rectangle = new Rectangle(0, 0, picWidth,picHeight);
var pt:Point = new Point(0, 0);
 
var arr:Array = [ 1.0, 0.0, 0.0, 0.0, 0.0,
                0.0, 1.0, 0.0, 0.0, 0.0,
                0.0, 0.0, 1.0, 0.0, 0.0,
                0.0, 0.0, 0.0, 1.0, 0.0];
 
var CMfilter:ColorMatrixFilter = new ColorMatrixFilter(arr);
 
bitmapData.applyFilter(bitmapData, rect, pt, CMfilter);

и не получается!!

если б был бы просто bitmap то применил фильтр
Код AS3:

var arr:Array = [ 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 CMfilter:ColorMatrixFilter = new ColorMatrixFilter(arr);
 
var myFilters:Array = new Array();
myFilters.push(CMfilter);
clip.filters = myFilters;

и убрал фильтр очистив массив фильтро
Код AS3:

clip.filters = new Array();

а вот с BitmapData не пойму как

i.o. 24.03.2011 15:49

а с BitmapData применяется безвозвратно. Клонируйте перед применением, если нужно потом возвращать.

stanley 24.03.2011 16:12

да вот не получается заранее - закладывается в движок paperVision3D и потом уже не найти соответствующего bitmapData

nOobCrafter 24.03.2011 16:40

с помощью TweenLite \ TweenMax можно обесцвечивать обьекты и возвращать им цвет назад, правда не знаю как это работает конкретно в отношении битмапдаты

cr0w312 24.03.2011 21:16

применяйте фильтр не к битмапдате а к слою(new VPlayer:ViewportLayer) и при наведении мышкой переносите объект в слой, и удаляйте из слоя при мауслив или маусаут.

vovs31217221 25.03.2011 20:51

Цитата:

Сообщение от cr0w312 (Сообщение 983581)
применяйте фильтр не к битмапдате а к слою(new VPlayer:ViewportLayer) и при наведении мышкой переносите объект в слой, и удаляйте из слоя при мауслив или маусаут.

Если в PV3D, значит не MouseEvent.MOUSE_OUT, а InteractiveSceneEvent3D.OBJECT_OUT

cr0w312 25.03.2011 21:00

Цитата:

Сообщение от vovs31217221 (Сообщение 983869)
Если в PV3D, значит не MouseEvent.MOUSE_OUT, а InteractiveSceneEvent3D.OBJECT_OUT

не всегда, все зависит от ситуации, если есть к примеру куб а фэйсы его покрыты материалом мувиклип, на мувики вполне себе можно повесить маусаут, и все будет гут.

sequrefor 25.03.2011 21:09

эта тема больше подходит для раздела API приложений и сред

stanley 30.03.2011 13:57

Цитата:

Сообщение от sequrefor (Сообщение 983875)
эта тема больше подходит для раздела API приложений и сред

нет здесь просто интересует как обработать bitmapData

а слушатели вешаются на Plane
Код AS3:

p.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, releaseFunction );
p.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, overFunction );
p.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, outFunction );

хотя все ударились в тематику paperVision
и тогда вопрос

Цитата:

применяйте фильтр не к битмапдате а к слою(new VPlayer:ViewportLayer) и при наведении мышкой переносите объект в слой, и удаляйте из слоя
как осуществлять перенос туда и обратно?!


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

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