Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2013, 04:19
Avatar de Albuss
Albuss
 
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Pregunta Desbordamientos de Pila

Buenas!


Cada vez mas, (en la herramienta online que estoy desarrollando), al testeala, veo que muchos métodos de los protoripos no funcionan, y solo los consiguo arreglar si no uso tantas propiedades del prototipo, es decir:

En algunos métodos de prototipo, me ha pasado (mas de dos y tres veces) que al intentar trabajar con muchas propiedades del propio prototipo (lo que seria la clase), no funciona, o bien no logra obtenerlas por referencia (que es como trabaja JS si tengo entendido bien) o tengo un desbordamiento de pila (demasiada información para una función, en este caso método)


Es posible? , la cantidad de propiedades no es muy alta, hablo de quizas 4 o 5.


Ejemplo en codigo de un ultimo caso :


Código Javascript:
Ver original
  1. function ManagementFrames (arrayID,arrayOut,arrayOn,arrayOutFinal){
  2.  
  3. this.ID = arrayID; // Primera cadena array, contiene los string con las id de CSS los divs
  4. this.Out = arrayOut; // Segunda cadena array, contiene los string con las id de CSS los divs que hacen que estos tengan una animacion de "irse"
  5. this.On = arrayOn; // Tercera cadena array, contiene los string con las id de CSS los divs que hacen que estos tengan una animacion de "entrar"
  6. this.OutF = arrayOutFinal; // Primera cadena array, contiene los string con las id de CSS los divs hacen que estos desaparezcan (propiedad display:none)
  7. this.ActualID = 2; // variable que contiene el indice con el que se trabaja, puesto que todas las cadenas siguen el mismo orden
  8.  
  9.  
  10.  
  11.  
  12.     this.ActiveE = function ActiveE(a){
  13.            
  14.                         n = a; // variable que es pasada al llamar la funcion, indica que div del indice entra
  15.  
  16.             document.getElementById(this.ID[n]).className = (this.On[n]);
  17.                
  18.             document.getElementById(this.ID[this.ActualID]).className = (this.out[this.ActualID]);
  19.  
  20.             Desactive=setTimeout(function(){document.getElementById(this.ID[this.ActualID]).className = (OutF[0]);},500);
  21.  
  22.            
  23.     }
  24.    
  25.  
  26. }
  27.  
  28. var ObjectManagementFrames = new ManagementFrames (['atmosferaframelogin','atmosferatransicionador02','atmosferatransicionador','atmosferatransicionador04'],['atmosferaframeloginOut','atmosferatransicionador02Out','atmosferatransicionadorOut','atmosferatransicionador04Out'],['atmosferaframeloginOn','atmosferatransicionador02On','atmosferatransicionadorOn','atmosferatransicionador04On'],['atmosferaOutF']);


En concreto, la parte que se con seguridad que falla es la parte donde setTimeOut inicia una propia función, y por algún motivo no funciona de los que explico arriba (supongo).

Última edición por Albuss; 08/02/2013 a las 04:29