Comunidad de diseño web y desarrollo en internet online

Problema al separar en clases.

Citar            
MensajeEscrito el 01 May 2011 04:36 pm
Hola que tal:
Estoy intentando separar las cosas en clases y tengo un problema simple.

Tengo la clase "jetpack" que sería la clase documento y la clase "player".
En la clase jetpack agrego una instancia de la clase player y eso me funciona sin problemas,el jugador aparece en pantalla arriba a la izquierda.

Pero el eventlistener no parece funcionar,el player no se mueve.
Hice una segunda versión,donde puse el eventlistener en la función player y la función de movimiento fuera de esta y en este caso si se mueve pero el objeto player se mueve como loco.
El player es un movieclip que hice desde el ide de flash y agregué a la biblioteca.
Antes cuando hacía todo en una sola clase no me pasaba esto,también hice anteriormente una prueba de clases separadas pero moviendo "textfields" y todo parecía funcionar bien.
Saludos.

Clase "jetpack" (la clase documento)

Código ActionScript :

package {
   import flash.display.*;
   import flash.events.*;
   
   public class jetpack extends MovieClip 
   
   {
      public function jetpack()
      {
         var miplayer1:player=new player;
         addChild (miplayer1);
      }
      
   }
}


clase player

Código ActionScript :

package 
{
import flash.display.*;
import flash.events.*;
   
public class player extends MovieClip 
   
{
   public function player()
   
   {
      
      this.addEventListener(Event.ENTER_FRAME,moverplayer);
      function moverplayer(e:Event)
      
      {
         this.x=mouseX;
      }
   }
      
}
   
}


clase player,con la funcion de movimiento aparte (la que se "sacude")

Código ActionScript :

package 
{
import flash.display.*;
import flash.events.*;
   
public class player extends MovieClip 
   
{
   public function player()
   
   {
      
      this.addEventListener(Event.ENTER_FRAME,moverplayer);
      
   }

   function moverplayer(e:Event)
      
   {  this.x=mouseX;  }
      
}
   
}

Por Gus__

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 May 2011 08:04 pm
Espera a que haya sido agregado al Displaylist para iniciar el listener al ENTER_FRAME. Lo puedes hacer desde la clase principal llamando a un metodo en vez de usar el constructor o usando el evento ADDED_TO_STAGE desde la misma clase player (No tengo Flash ac{a para probarlo, solo aventuro una hipotesis)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 May 2011 05:14 am
Gracias por tu respuesta,el evento ADDED_TO_STAGE lo tengo que estudiar antes de usarlo.
Lo que si noté es que poner el EVENT_LISTENER en el constructor y el método en una segunda función si funciona.
El problema del temblor no se porque es.

Tengo una segunda duda,agregué un "trace" para seguir la posición del cursor y me sale esto:

La posición del cursor la toma relativamente al player (que es el coso rojo),entonces sale -27 a pesar de que ahí estoy señalando cerca del borde,porque es esto?
Saludos.

Por Gus__

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 May 2011 11:06 am
Justamente porque es relativa, a la izquierda del player es una posición negativa, a la derecha positiva.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.