Podrías hacerlo, efectivamente, usando una clase Tween, lo cual sería más
ortodoxo y apropiado para el caso de que en la aplicación intervengan más
programadores, pero no es absolutamente necesario, pues también podrías
variar los valores del blur , que ahora has puesto fijos en 8, mediante unas
variables relacionadas con la posición de la tarjeta, de manera que al
variar la posición variara con ella el desenfoque, con lo que el código te
quedaría aproximadamente así:
if(this._y > 90 and this._y < 130){
var.BlurY:Number = var.BlurX:Number = this._y / 11;
//(más o menos, prueba con variaciones de esta fórmula)
var calidad:Number=1;
}else{
var calidad:Number=0;
}
var desenfocando:BlurFilter = new BlurFilter(BlurX, BlurY, calidad);
this.filters = [desenfocando];
Salu2
`8¬]
Juan Muro
Post by BIGOTEGenial. A lo bestia es como mejor se entienden las cosas.
Me quedó como te muestro más abajo y funciona perfecto. Lo único que me
quedaría por mejorar (ya sería un lujo) es hacer que la transición en el
enfoque sea más suave, porque cuando sale de esos parámetros de _y,
obviamente vuelve a enfocar o desenfocar abruptamente.
¿Para eso tendría que ver como funciona la clase Tween y modificar
progresivamente el valor de blur?, ¿no?.
if(this._y > 90 and this._y < 130){
var calidad:Number=1;
}else{
var calidad:Number=0;
}
var desenfocando:BlurFilter = new BlurFilter(8, 8, calidad);
this.filters = [desenfocando];
Post by Juan MuroSí, si estás trabajando en as3 es de lo más simple aplicar un filtro de
import flash.filters.BlurFilter;
var desenfocando:BlurFilter = new BlurFilter(blurX, blurY, quality);
miClip.filters = [desenfocando];
en estas líneas debes sustituir los valores que quieras para blurX,
blurY, quality. El primero es el número de pixels de desenfoque
horizontal, el segundo, los verticales, el tercero es la calidad del
desenfoque, es decir el número de veces que aplicaríamos el filtro (todo
ello no es exácto, sino explicado a lo bestia, como hace el Muro
normalmente). No obstante la ayuda de Flash lo explica mucho mejor que
yo.
Salu2
`8¬]
Juan Muro
Post by BIGOTEAhí estuve viendo el ejemplo, pero no es lo que buscaba.
El script hace que las tarjetas roten, se acerquen y alejen, produciendo
así un efecto 3D, pero todo se hace por código a través de funciones que
van cambiando algunos valores (rotación, ángulo, tamaño).
Lo que quiero hacer es que cuando una tarjeta tenga una posición que
esté entre un valor x y un valor y (es decir: cuando se aleje), se
produzca un desenfoque.
¿Se puede aplicar un desenfoque por código?, ¿o tendría que buscar de
crear el efecto por otro lado?, como una máscara o algo así.
Post by Juan MuroLo que muestras está hecho en Flex y Papervision3D. El efecto de
desenfoque puede conseguirse aplicando filtros o mediante la
combinación de capas, que es como lo hacíamos antes. Si quieres
entender el proceso puedes escrutar un ejemplo de desenfoque de
movimiento que existe en www.ffflashhh.com, para Flah MX con
ActionScript1, pero si tienes el código disponible en la web que
indicas solamente hay que leer las clases y extraer conclusiones.
Salu2
`8¬]
Juan Muro
Post by BIGOTESeguramente lo conocen http://rotulosillanes.com/ y tienen el código
fuente, ya que se puede conseguir gratuitamente desde
www.clipdepelicula.com (excelente página).
Mi pregunta es la siguiente: ¿cómo hago ese efecto de desenfoque en
las tarjetas al alejarse?.
__________ Información de ESET NOD32 Antivirus, versión de la base de
firmas de virus 3931 (20090312) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 3931 (20090312) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com