|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2011
Адрес: Таганрог
Сообщений: 21
|
ColorMatrixFilter к BitmapData по событию Over & Out
в цикле осуществляю загрузку картинок в 3Д галлерею
аналог галереи из шаблона 31713 собственно внутренность цикла: var bitmap:Bitmap = loader.getBitmap(galleryImagesCollection[index]); var bitmapHolder:Sprite = new Sprite(); bitmapHolder.addChild( bitmap ); var bfm:MovieMaterial = new MovieMaterial(bitmapHolder); bfm.oneSide = false; bfm.interactive = true; p = new Plane(bfm, picWidth, picHeight, 2, 2); thumbs.push( { pl:p, rotY:Math.random() * 360, rotZ:Math.random() * 360, z:Math.random() * 3000 + 1000 } ); p.rotationY =Math.random() * 360; p.rotationZ = Math.random() * 360; p.z = -2000; p.x = (columNum * picWidth)+(deltaX*columNum); p.y = -lineCor; p.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, releaseFunction ); p.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, overFunction ); p.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, outFunction ); planesHolder.addChild( p ); соттвесвенно: private function overFunction( event:InteractiveScene3DEvent):void { if ( !imageZoomed ) { trace("over X: "+event.target.x); trace("over Y: "+event.target.y); var rect:Rectangle = new Rectangle(event.target.x, event.target.y, event.target.material.bitmap.width, event.target.material.bitmap.height); var pt:Point = new Point(event.target.x, event.target.y); 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); event.target.material.bitmap.applyFilter(event.target.material.bitmap, rect, pt, CMfilter); } private function outFunction( event:InteractiveScene3DEvent):void { if ( !imageZoomed ) { var rect:Rectangle = new Rectangle(event.target.x, event.target.y, event.target.material.bitmap.width, event.target.material.bitmap.height); var pt:Point = new Point(event.target.x, event.target.y); 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); event.target.material.bitmap.applyFilter(event.target.material.bitmap, rect, pt, CMfilter); } } Вопрос1: событие срабатывает конкретно на нужный объект - о чем свидетельствует трейсинг координат но применение фильтра происходит ТОЛЬКО к первой картинке с координатами 0:0. не пойму в чем проблема... Может я не правильно задаю прямоугольник или точку? Картинки получаются по линиям, у второй линии отрицательные координаты по Y. Вопрос2: Вернуть цвета - применить тот же фильтр только с другим массивом - как у меня по OBJECT_OUT? у bitmap понятное дело - просто обнулить массив фильтров - а тут применяется фильтр к BitmapData Последний раз редактировалось stanley; 22.03.2011 в 18:11. Причина: правильная формулировка |
|
|||||
Регистрация: Mar 2009
Адрес: this.x=0;this.y=0;this.z=0
Сообщений: 89
|
попробуй использовать вместо event.target ссылку на 3d объект event.displayObject3D ну и соответственно event.displayObject3D.material
|
|
|||||
Регистрация: Mar 2011
Адрес: Таганрог
Сообщений: 21
|
сначала был такой же результат.
но копнул глубже и решил применять фильтр к новой переменой bitmapData - а потом ее уже присваивать var rect:Rectangle = new Rectangle(0, 0, event.displayObject3D.material.bitmap.width, event.displayObject3D.material.bitmap.height); 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); var bitmapData:BitmapData = event.displayObject3D.material.bitmap; bitmapData.applyFilter(bitmapData, rect, pt, CMfilter); event.displayObject3D.material.bitmap = bitmapData; Разобрался. Осталось только теперь понять как вернуть обратно цветной цвет фильтр с массивом 1, 1, 1, 1 - как писал в первом посте - Не помогает Последний раз редактировалось stanley; 24.03.2011 в 14:19. |
Часовой пояс GMT +4, время: 19:32. |
|
« Предыдущая тема | Следующая тема » |
Теги |
bitmapdata , ColorMatrixFilter , event , Filter , papervision |
Опции темы | |
Опции просмотра | |
|
|