Ver Mensaje Individual
  #35 (permalink)  
Antiguo 18/07/2008, 00:33
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Evaluación de expresión... (¿existe "else if"?)

Para mi el error "Class 'Number' has no property or method named '2'" está bastante claro.

Si haces m = parseFloat(loquesea) está claro que m va a ser un valor numérico. Si luego intentas hacer m[2] entonces es cuando te dice que m no tiene una propiedad o método llamado 2. Eso es normal.

Por otro lado, lo que wiggle devuelve exactamente depende de la propiedad donde lo aplicas. En tu caso, lo estás aplicando sobre position (que vale originalmente [219.4, 392.0, 0.0]), y lo que te devolverá es un vector similar: [219.4+/-(0..100), 392.0+/-(0..100), 0+/-(0..100)] (léase +/-(0..100) como "más/menos un número entre cero y cien"). Aclaro que lo que wiggle(f,a) devuelve es un valor entre (valorOriginal - a) y (valorOriginal + a), y hace eso f veces por segundo. Aclaro esto porque no sé de dónde sacas que devuelva valores entre -120 y +120.

Entonces, el primer problema es que no deberías hacer parseFloat de eso.

El segundo problema es que no sé por qué estás intentando usar el wiggle en position para cambiar el valor de opacity, cuando podrías cambiarlo directamente en opacity.

Por último, no creo que debas hacer wiggle(0,xxx) porque la frecuencia 0 querría decir que quieres que el valor cambie 0 veces por segundo. Es decir, nunca.

En mi humilde opinión, deberías:
1. Si no quieres cambiar la posición, dejar vacía la propiedad posición.
2. Si quieres cambiar la opacidad, hacer el wiggle directamente en la opacidad. P.ej. Pones la opacidad a un valor de 50 y luego le pones de código (por ejemplo para 5 veces por segundo):
Código:
wiggle(5,50);