Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/01/2009, 09:59
Avatar de Damin
Damin
 
Fecha de Ingreso: abril-2008
Ubicación: Argentina
Mensajes: 29
Antigüedad: 16 años, 9 meses
Puntos: 0
[AYUDA] Texto difuminado

Que tal, tengo este codigo para que un texto vaya cambiando de color dinamicamente con un efecto difuminado.
La cuestion es que no se como llamar a la accion...

Código:
//SCRIPT PARA CREAR UN DEGRADADO VARIABLE
//VARIABLES PARA CONFIGURAR EL DEGRADADO. Configurar desde aqui
//color que se presenta al principio
color_inicio = new Array(227,200,50)
//color al que se tiende
color_fin = new Array(12,227,50)
//los pasos que se utilizaran para pasar de un color al otro 
pasos = 50
//comportamiento 1=bucle_infinito 2=una_pasada_de_inicio_a_fin 4=una_pasada_de_inicio_a_fin_a_inicio 4=bucle_infinito_con_interrupcion
comportamiento = 4

//No tocar a no ser que se sepa lo que se hace
hexadecimal = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F")
var iteracion = 0
var color_actual = new Array(4)
//calculo el incremento en los que se tiene que hacer el degradado, para el numero de pasos determinado
diferencia = new Array(4)
for (i=0;i<4;i++) 
	diferencia[i] = (color_fin[i] - color_inicio[i]) / pasos

function convierteHexadecimal(num){
	//alert (num)
	var hexaDec = Math.floor(num/16)
	var hexaUni = num - (hexaDec * 16)
	return hexadecimal[hexaDec] + hexadecimal[hexaUni]
}

function degradado(){
	iteracion += 1
	//miro si estoy en el inicio > fin o en el fin > inicio
	if (iteracion < pasos) {
		//estoy al principo
		for (i=0;i<4;i++)
			color_actual[i] = (iteracion * diferencia[i]) + color_inicio[i]
	}else{
		//estoy volviendo
		for (i=0;i<4;i++)
			color_actual[i] = color_fin[i] - ((iteracion - pasos) * diferencia[i])
	}
	//alert(convierteHexadecimal(Math.round(color_actual[0])) + convierteHexadecimal(Math.round(color_actual[1])) + convierteHexadecimal(Math.round(color_actual[2])))
	
	document.fgColor = convierteHexadecimal(Math.round(color_actual[0])) + convierteHexadecimal(Math.round(color_actual[1])) + convierteHexadecimal(Math.round(color_actual[2]))
	
	//la llamo con un retardo
	switch (comportamiento){
		case 1:
			if (iteracion == pasos * 2)
				iteracion = 0
			setTimeout("degradado()",1)
			break;
		case 2:
			if(iteracion < pasos)
				setTimeout("degradado()",1)
			break;
		case 3:
			if(iteracion < pasos * 2)
				setTimeout("degradado()",1)
			break;
		case 4:
			if (iteracion == pasos * 2){
				iteracion = 0
				setTimeout("degradado()",10000)
			}else{
				setTimeout("degradado()",1)
			}
			break;
	}
}

degradado()
</script>
O si alguien tiene algun otro codigo con el mismo efecto, se lo agradeceria!
saludos