Foros del Web » Programando para Internet » Javascript »

Error instaciando unos objetos

Estas en el tema de Error instaciando unos objetos en el foro de Javascript en Foros del Web. Hola estoy tratando de crear ventanas flotantes en javascript y no puedo instanciar los objetos de manera independiente, les dejo el codigo: Esta es la ...
  #1 (permalink)  
Antiguo 27/08/2010, 15:59
 
Fecha de Ingreso: noviembre-2009
Mensajes: 42
Antigüedad: 14 años, 5 meses
Puntos: 0
Pregunta Error instaciando unos objetos

Hola estoy tratando de crear ventanas flotantes en javascript y no puedo instanciar los objetos de manera independiente, les dejo el codigo:

Esta es la clase:

Código Javascript:
Ver original
  1. Min.Ventana={
  2.     ventana: window,
  3.     ancho: window.screen.width,
  4.     alto: window.screen.height,
  5.        
  6.     moverCapas: function(el){
  7.         this.naveador=Min.Navegador.obtenerNavegador();
  8.         this.elemento=el;
  9.         this.comenzarMovimiento=function(){
  10.             elMovimiento=document.getElementById(this.elemento);
  11.             elMovimiento.style.position="relative";
  12.             elMovimiento.onmousedown=function(event){
  13.                 cursorComienzoX=event.clientX+window.scrollX;
  14.                 cursorComienzoY=event.clientY+window.scrollY;
  15.                 document.addEventListener("mousemove",enMovimiento, true);
  16.                 document.addEventListener("mouseup",finMovimiento, true);
  17.                 elComienzoX=parseInt(elMovimiento.style.left);
  18.                 elComienzoY=parseInt(elMovimiento.style.top);
  19.                 function enMovimiento(event){
  20.                     var xActual, yActual;
  21.                     xActual=event.clientX+window.scrollX;
  22.                     yActual=event.clientY+window.scrollY;
  23.                     elMovimiento.style.left=(elComienzoX+xActual-cursorComienzoX)+"px";
  24.                     elMovimiento.style.top=(elComienzoY+yActual-cursorComienzoY)+"px";
  25.                     elMovimiento.style.opacity="0.4";
  26.                     evitaEventos(event);
  27.                 }
  28.                
  29.                 function finMovimiento(){
  30.                     document.removeEventListener("mousemove", enMovimiento, true);
  31.                     document.removeEventListener("mouseup", finMovimiento, true);
  32.                     elMovimiento.style.opacity="1";
  33.                 }
  34.                
  35.                 function evitaEventos(){
  36.                     event.preventDefault();
  37.                 }
  38.             }
  39.         }
  40.         this.getId=function(){
  41.             return this.elemento;
  42.         }
  43.     }
  44. }

Este es el HTML

Código HTML:
Ver original
  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. <title>Ventanas</title>
  4. <link href="framework.css" rel="stylesheet" type="text/css" />
  5. <script src="framework.js"></script>
  6.     Min.DOM.DOMCompleto(function(){
  7.         var obj = new Min.Ventana.moverCapas('formulario');
  8.         obj.comenzarMovimiento();
  9.         obj.getId();
  10.         var obj2 = new Min.Ventana.moverCapas('formulario2');
  11.         obj2.comenzarMovimiento();
  12.         obj2.getId();
  13.     });
  14. </head>
  15. <div class="formulario" id="formulario" style="top:0px;left:0px;">
  16.     <div class="titulo" id="titulo" style="top:0px;left:0px;cursor:move">
  17.         <span class="logo"><img src="images/zebra.gif" /></span>
  18.         <span class="label">Mi Formulario</span>
  19.         <span class="accion">
  20.         <img src="images/minimizar.jpg" />
  21.         <img src="images/max.png" />
  22.         <img src="images/cerrar.jpg" />
  23.         </span>
  24.      </div>
  25. </div>
  26.  
  27. <!-- ############### -->
  28.  
  29. <div class="formulario" id="formulario2" style="top:0px;left:0px;">
  30.     <div class="titulo" id="titulo2" style="top:0px;left:0px;cursor:move">
  31.         <span class="logo"><img src="images/zebra.gif" /></span>
  32.         <span class="label">Mi Formulario</span>
  33.         <span class="accion">
  34.         <img src="images/minimizar.jpg" />
  35.         <img src="images/max.png" />
  36.         <img src="images/cerrar.jpg" />
  37.         </span>
  38.      </div>
  39. </div>
  40.  
  41. </body>
  42. </html>
  #2 (permalink)  
Antiguo 27/08/2010, 16:59
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Error instaciando unos objetos

no puedo hacer pruebas con el codigo que has mostrado porque esta incompleto. ahora bien, analizando lo que tienes... en la linea 10 declaras una variable que contiene la referencia al elemento a mover. pero esta variable esta declarada como global de modo que cada vez que invocas el metodo comenzarMovimiento esta variable cambia de valor. ¿que implicaciones tiene? que en el evento onmousedown haces referencia a esa variable y la variable siempre contiene el ultimo elemento definido. solucion, declara la variable como local con el prefijo var. asumo que es ahi donde esta el problema.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:38.