Foros del Web » Creando para Internet » Flash y Actionscript »

conflictos entre instancias de una misma clase

Estas en el tema de conflictos entre instancias de una misma clase en el foro de Flash y Actionscript en Foros del Web. supongamos que tengo una clase Patinador con este código (me he comido muchas cosas por limpiar código, si queréis los códigos completos lo decís y ...
  #1 (permalink)  
Antiguo 01/05/2011, 15:52
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
conflictos entre instancias de una misma clase

supongamos que tengo una clase Patinador con este código (me he comido muchas cosas por limpiar código, si queréis los códigos completos lo decís y los subo)
Código AS3:
Ver original
  1. package clases {
  2.     public class Patinador extends MovieClip {
  3.         var zona;
  4.         var per;
  5.         var moviendo=0;
  6.         var valor;
  7.         public function Patinador(ancho:int,resto:int):void {
  8.             this.base.addEventListener(MouseEvent.MOUSE_DOWN, pulsa);
  9.             this.btn.addEventListener(MouseEvent.MOUSE_DOWN, coje);
  10.             this.btn.addEventListener(MouseEvent.MOUSE_UP, suelta);
  11.                         this.addEventListener(Event.ENTER_FRAME,refresca);
  12.            
  13.         }
  14.         function pulsa(e:Event):void{
  15.             this.moviendo=1;
  16.             this.btn.x=mouseX-5;
  17.             this.btn.startDrag(false,new Rectangle(0, 0, this.base.width,0));
  18.         }
  19.         function coje(e:Event):void{
  20.             this.moviendo=1;
  21.             this.btn.startDrag(false,new Rectangle(0, 0, this.base.width,0));
  22.             stage.addEventListener(MouseEvent.MOUSE_UP,suelta);
  23.         }
  24.         function suelta(e:Event):void{
  25.             this.btn.stopDrag();
  26.             this.moviendo=2;
  27.         }
  28.         function refresca(e:Event):void {
  29.             this.per=this.btn.x*100/(this.base.width);
  30.         }
  31.     }
  32.    
  33. }


y en el main tengo la siguiente función que se ejecuta a cda frame
Código as3:
Ver original
  1. function refresca(event:Event) {
  2.            
  3.             if(progreso.moviendo==0){
  4.                 var percposicion=posicion*100/duracion;
  5.                 progreso.btn.x=percposicion*progreso.base.width/100;
  6.             }else if(progreso.moviendo==2){
  7.                
  8.                 var rearranque=progreso.per*sonido.length/100;
  9.                 pista.stop();
  10.                 pista=sonido.play(rearranque);
  11.                 progreso.moviendo=0;
  12.             }
  13.            
  14.            
  15.            
  16.         }

bueno tambien tengo esta clase instanciada 2 veces, una como volumen y otra como progreso, el caso es que si toco el volumen no pasa nada pero una vez toco el progreso comienza a fallar.
y da igual que toque pero se modifican las variables de los 2 objetos
es como si tocase las variables de los 2 objetos, no se si estoy cometiendo una blasfemia contra la programación orientada a objetos y no me doy cuenta
  #2 (permalink)  
Antiguo 01/05/2011, 16:03
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: conflictos entre instancias de una misma clase

he encontrado el error mas rápido de lo que esperaba llevaba ya media hora mirando sin ocurrírseme porqué y pensaba que iba para largo...
la linea 22 de la clase(el primer código)
ahora veremos como me apaño sin el releaseOutside de as2
¿porque tienen que qutar algunas cosas super prácticas al evolucionar los lenguajes?

Etiquetas: clase, instancias
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 20:30.