Comunidad de diseño web y desarrollo en internet online

Aprendiendo a programar en AS3

Citar            
MensajeEscrito el 08 Sep 2010 10:36 am
Me gustaría aprender a programar correctamente en as3,ya que aprendí solo a trabajar esta programación y hay varias cosas básicas que debería saber.Os comento cuales son mis dudas,y si existe algun tutorial o manual básico donde se explique los siguiente os lo agradeceré:

1.Cuando empiezo a trabajar,coloco en public class todas mis variables,y luego en public function el resto de cosas como los listeners,funciones...
Pero, traves de otras páginas,he visto que tambien se puede colocar en public function los listeners,y luego fuera de esta funcion principal,colocar funciones privadas.¿Alguna de estas dos maneras son correctas?¿que ventajas tiene una frente a la otra?

2.Por ultimo,otra cosa que me condiciona a la hora de empezar a programar,es la precarga principal.Solo conozca una manera de hacer una precarga principal en as3,y lo aprendi de este tutorial(http://www.yporqueno.es/blog/as3-precargar-la-pelicula-principal).Este tutorial me oblida a dejar la public class limpia,colocar en public function(this.addEventListener(Event.ADDED_TO_STAGE, init);) y luego en una function privada(init) el resto de la programación.Este metodo me da muchos errores como(ypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.)

saludos

Por muse

50 de clabLevel



 

msie7
Citar            
MensajeEscrito el 08 Sep 2010 01:04 pm
BuenAS:

Deberías echarle un vistazo a algún libro de OOP (programación orientada a objetos) para fijar conceptos de lo que es una clases, sus métodos, propiedades, ambito de cada uno, etc. Para empezar echa un vistazo al capítulo de la ayuda de Flash Dedicado a la OOP, y más concretamente el apartado dedicado a las clases en AS3:

Clases

Con respecto al segundo pto, una clase suele tener la siguiente estructura:

Código ActionScript :

package
{
   import flash.display.Sprite;
   
   public class MiClase extends Sprite
   {
      private var propiedadA:Number;
      public var propiedadB:Number;
      
      public function MiClase()
      {
         super();
      }
      
      private function metodoA():void
      {
         
      }
      
      private function metodoC():void
      {
         
      }
      
      public function metodoC():void
      {
         
      }
   }
}


y la que tú tienes imagino que añade al constructor algo así:

Código ActionScript :

package
{
   import flash.display.Sprite;
   import flash.events.Event;
   
   public class MiClase extends Sprite
   {
      private var propiedadA:Number;
      public var propiedadB:Number;
      
      public function MiClase()
      {
         super();
         if (stage)
            init()
         else
            addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
      }
      
      private function init(event:Event=null):void
      {
         if (event)
            removeEventListener(Event.ADDED_TO_STAGE, init);
      }
      
      private function metodoA():void
      {
         
      }
      
      private function metodoC():void
      {
         
      }
      
      public function metodoC():void
      {
         
      }
   }
}


El constructor es el método que se llama igual que la clase, en este caso MiClase, y no se tipifica; o sea no se le añade a la función el típico ":TipoDeDato".

En principio, si tu clase tiene un "aspecto" similar a la anterior, no debería dar problemas. Si has variado algo, como por ejemplo, añadir código fuera de un método (un método es una función dentro de una clase, nada más ;) ) esto NO SE PUEDE HACER; cualquier código que escribas debe ir DENTRO de un método.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 09 Sep 2010 09:46 am
Muchisimas gracias por tomarte tu tiempo Lukánicos.Lo que me ocurre es que conozco varios conceptos de as3 de leerme en tutoriales ,pero no tengo una visión general de todo.Voy a probar con la ayuda de flash a ver que tal.Antes de nada,me gustaria quitarme una duda que tengo atragantada y que seguro que es muy simple de responder.¿Cuando se utiliza public function o private function?

Gracias de nuevo

un saludo

Por muse

50 de clabLevel



 

msie7
Citar            
MensajeEscrito el 09 Sep 2010 10:08 am
Hola Muse:

Creo no equivocarme si te digo que cuando se crea una clase, puedes efectivamente crear funciones publicas y privadas.

Las públicas son accesibles desde fuera de la clase, por ejemplo si quieres que te devuelvan el resultado de un cálculo matematico, por ejemplo.

Las privadas solo son accesibles desde dentro de la clase, por lo que no son accesibles desde el "exterior" del .as

Un saludo

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 09 Sep 2010 11:59 am
BuenAS:

Añadir a lo comentado por grescafe, y a efectos prácticos de crear una clase: sigue la regla de hacer privados TODOS los métodos/propiedades que crees, y cuando necesites que otra clase pueda acceder a un método/propiedad la haces pública.

Da la impresión, cuando empiezas, que puede ser conveniente hacerlo al revés (o sea, declararlo todo público), y esto suele dar más problemas que otra cosa, ya que, por ejemplo, hacer que una propiedad pase de privada a pública en un momento dado no te va a suponer mayor problema; ahora bien, si te das cuenta que una propiedad pública debería ser privada -y tienes muchas clases que se refieren a ella-, preparate, que se avecina trabajo :)

Además de public y private, encontrarás en AS3 los ámbitos (atributos) internal (cuando la propiedad/método solo puede ser accedido por otras clases de su MISMO paquete) y protected (cuando la propiedad/método sólo puede ser accedido por sus subclases).

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 09 Sep 2010 12:04 pm
Genial,perfectamente explicado,son cosas basicas que tengo que tener claras,sino me va ser complicado.

Gracias grescafe y Lukánicos

Por muse

50 de clabLevel



 

msie7
Citar            
MensajeEscrito el 17 Ago 2012 03:22 pm
hola que tal disculpen tengo un problema al cargar un swf sobre otro swf se eliminan los botones que tenia en el otro si me podrian ayudar se los agradeceria.

Por karlin

0 de clabLevel



 

chrome

 

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