Comunidad de diseño web y desarrollo en internet online

correciones a tutorial de un juego de Pong en Actionscript 3

Citar            
MensajeEscrito el 06 Dic 2007 06:21 pm
Primero quiero empezar diciendo que este post es sin ánimos de atacar, ofender o dañar la buena imagen del autor del tutorial, pero creo conveniente hacer algunas observaciones, si alguien puede corregirme de estar equivocado con gusto las aceptaré y rectificaré

en tu tuto Carlos
http://www.cristalab.com/tutoriales/239/creacion-de-un-juego-de-pong-en-actionscript-3

citaré
Todos los valores uint, son números Hexadecimales en formato 0x. Puedes utilizar cualquier color Hexadecimal.

Quería contarte que los uint es en resumen enteros NO negativos de 32 bits (sin signo), y uno (de los tantos) usos es para los valores de color, ya que (aun) no existe colores negativos (espero pronto existan) y NO SOLO para números Hexadecimales en formato 0x. Para una mejor referencia te dejo este link: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/uint.html

luego tu usas:

Código :

var bg:MovieClip = new MovieClip();

Si bien es cierto, funciona, no es correcto ya que has creado un MC solo como contenedor, esto quiere decir que usas la logica de AS2 y no de AS3, y te explico porque:

En tu ejemplo, creas un MovieClip y no usas para nada la linea de tiempo, por ende, consumes recursos innecesarios, esto quiere decir que, si usas AS3, deberías tener un Sprite, que en resumen es un MovieClip sin linea de tiempo, esto, aunque no lo creas, mejora el rendimiento de tu película y ademas, es mas rápido de copilar. Esto se ve muy claramente en los proyectos Flex contra los Proyectos Flash, al crear una clase en Flex para un proyecto AS, verás que te hereda de la Clase Sprite ¿porque? simple, Flex no tiene linea de tiempo ^^

después dice:
La Clase debe ser llamada por medio del cuadro de texto Document Class en el Panel de Propiedades de Flash, ya que el objeto stage no permite el uso de import en una Clase de este tipo.
Para modificar los Parámetros lo puedes hacer directamente desde la Clase.


Bien, aqui hay dos cosas incorrectas:
1. El uso de stage se puede hacer desde cualquier lado, desde un Document Class como también de una clase importada, todo está en como hacer referencia a tu escenario o raíz (no root), para muestra un botón:

en tu FLA:

Código :

var t:miClase = new miClase(this);


en tu archivo miClase.as

Código :

package{
   import flash.display.MovieClip;
   public class miClase{
      public function miClase(aqui:MovieClip){
         trace(true);
         aqui.stage.showDefaultContextMenu = false;
         trace(aqui.stage.stageWidth);   
      }
   }
}

en la ventana de salida

Código :

true
550


2. A tu afirmación "Para modificar los Parámetros lo puedes hacer directamente desde la Clase." estas profesando una mala practica, porque eso sería como decir, en vez de usar clase, usa el código en el FLA, si al final de cuentas, igual meterás mano al código, la idea es que si usas clases estas no sean modificadas y menos por simples y comunes parámetros.

y por último usas:

Código :

timer.addEventListener(TimerEvent.TIMER, playerMovement);
timer.addEventListener(TimerEvent.TIMER, enemyAI);
timer.addEventListener(TimerEvent.TIMER, ballMovement);
timer.addEventListener(TimerEvent.TIMER, checkHit);
timer.addEventListener(TimerEvent.TIMER, scoreHandler);


este... aplicas un Timer a cada método de tu clase? porque? si podrías tener todas agrupadas en una, mira la modifiqué e igual funciona y consume mucho menos recursos:

Código :

var timer:Timer = new Timer(1, 0);
  timer.addEventListener(TimerEvent.TIMER, activar);
  private function activar(event:TimerEvent):void{
      playerMovement()
      enemyAI()
      ballMovement()
      checkHit()
      scoreHandler()
}


y claro en tus métodos puse:

Código :

function ... (event:TimerEvent=null)
le puse null para no modificar mucho tu clase, ya que en este caso iría ya sin parámetros.

acabo de ver: tienes todos tus métodos dentro del constructor :shock: (sin palabras)

Creo que si bien es cierto Clab es una fuente de ejemplos, tips y tutoriales, todos debemos aportar para que AHORA cada entrega sea de mejor calidad, este Tutorial funciona, pero con algunos cambios podría ser aun MEJOR. Y si lo hiciéramos mas orientado a objetos, mejor ;)

Termino este post como lo empecé:
este post es sin ánimos de atacar, ofender o dañar la buena imagen del autor del tutorial
Lo siento Carlos, no me odies, pero tenía que aclararlo, seguimos siendo amigos?

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

firefox
Citar            
MensajeEscrito el 06 Dic 2007 08:33 pm
Es una observación que quería hacer, algunos tutos son muy específicos o, por ejemplo, en photoshop, algunos son muy rústicos o que no sirven para mejorar la calidad de diseños, trucos muy aislados, podría ver una forma de que les den una revisadita antes de postear uno o que salga uno a raíz de una discusión constructiva en el foro (que se coja las aportaciones de un buen hilo)

o que hagan una peregrinación a tierra santa y vean que la gente se pelea por #%$%##$ y que les falta mucho por aprender y que invocen a YAVHE, ALA a PASTAFARI para que ilumine con la humildad infinita y vean la pobreza de su naturaleza humana y mundana.

Amén

Por Querube

56 de clabLevel



Genero:Masculino  

Chiclayo-Perú

firefox
Citar            
MensajeEscrito el 06 Dic 2007 10:47 pm
Siempre he creido que todas las criticas y observaciones son buenas.
Siempre se aprende de ellas. ^^

Por Camuss

498 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Lima City - Perú

firefox
Citar            
MensajeEscrito el 07 Dic 2007 02:09 am

Querube escribió:

Es una observación que quería hacer, algunos tutos son muy específicos o, por ejemplo, en photoshop, algunos son muy rústicos o que no sirven para mejorar la calidad de diseños, trucos muy aislados, podría ver una forma de que les den una revisadita antes de postear uno o que salga uno a raíz de una discusión constructiva en el foro (que se coja las aportaciones de un buen hilo)

o que hagan una peregrinación a tierra santa y vean que la gente se pelea por #%$%##$ y que les falta mucho por aprender y que invocen a YAVHE, ALA a PASTAFARI para que ilumine con la humildad infinita y vean la pobreza de su naturaleza humana y mundana.
Querube, para eso están estos posts. Así podemos corregir los tutos y contenido que haya gracias al apoyo de todos.

Gracias por esto Elder, lo solucionaremos.

Por Ed

BOFH

3662 de clabLevel

1 tutorial
32 articulos

  PDA

Cristalab Backend

firefox

 

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