SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Un mundo lleno de objetos...<br />Si conoces los conceptos de programación de objetos, puedes saltarte estos puntos hasta llegar a la última parte del capítulo.<br />Son muchos y variados los tipos de programación que existen actualmente. Programación estrucuturada, orientada a objetos, lógica, funcional... Cada una con sus pros y sus contras y un sistema propio de funcionaminento.<br />El principio básico de la Programación Orientada a Objetos es que todo aquello que necesitamos para representar nuestros programas son objetos. Y si lo piensas, razón no le falta. En nuestro Pong vamos a necesitar diferentes objetos para jugar: una bola, los Pong contra las que va a rebotar la bola, unos marcadores para llevar la puntuación... Todos ellos objetos. <br />(Anotación informática carente de interés: Bueno, siendo estrictos, no todo en la POO son objetos estrictamente... Debate intenso a la vez que inútil que mantienen defensores de la programación funcional pura frente a los que defienden la orientación a objetos...)<br />Es obvio que no todos los objetos son iguales. Un jarrón no es lo mismo que una pelota, pero un jarrón verde tampoco es exactamente igual a un jarrón rojo. Aquí es dónde interviene, por fin, el concepto de clase.<br />Concepto de Clase<br />Vamos a pasar un poco rápido sobre la teoría, porque cuándo realicemos el ejemplo en ActionScript se verá mucho más claro.<br />En POO, una clase es un tipo de objeto. Todas las pelotas del mundo pertenecen a la clase pelota, y todos los jarrones del mundo a la clase jarrón. Además, cada tipo de objeto tiene unas acciones asociadas (métodos) y unas características propias (atributos).<br />¿Qué es un atributo?<br />Un atributo es una característica del tipo de objeto. <br />En el caso del jarrón, posibles atributos serían: color (así podemos distinguar el jarrón rojo del verde), volumen, contenido...<br />Y en el caso de la pelota: tamaño, velocidad, dirección...<br />¿Qué es un método?<br />Un método es una acción que el tipo de objeto puede realizar.<br />Para el jarrón, posibles métodos serían: rellenar, romper...<br />Para la pelota: golpear, parar, pinchar...<br />¿Cuál es la diferencia entre Clase y Objeto?<br />Una objeto es una instanciación de una clase. En cristiano, cuándo Dios creó el mundo, lo primero que se hizo fue un molde con forma humana. Ese molde era la clase. La clase humano. Y cuándo creó a Adán utilizando ese molde, creó un objeto de la clase humano. Adán es el objeto, humano la clase. Adán lo concreto, humano lo abstracto.<br />Clases en ActionScript 3<br />Vamos a crear nuestra primera (segunda, si contamos el Main.as) clase en ActionScript. Y para empezar, vamos a pensar en uno de los tipos de objeto que vamos a necesitar para nuestro Pong: efectivamente, un Pong. La barrita-mini-pared que subirá y bájara evitando que la pelota sobrepase los límites de nuestro campo.<br />Con el proyecto Pong abierto en FlashDevelop, vamos a crear unas carpetas para organizar nuestro trabajo mejor: click derecho sobre la raíz del proyecto Pong (AS3) -> Add -> New Folder... y lo llamos quot;
miquot;
, y sobre esta nueva carpeta, misma operación y añadimos una subcarpeta llamada quot;
pongquot;
. Y sobre esta carpeta, misma operación, pero en vez de New Folder seleccionamos New Class y la llamamos Pong.as.<br />Por convención, los nombres de las clases se escriben con mayúsculas, mientras que los de las carpetas (paquetes) con minúscula. Ahora ya es un buen momento para explicar el código que aparece.<br />123456789101112131415161718package mi.pong {   /** * ... * @author ASL */public class Pong {   public function Pong() {   }   }   }<br />- package mi.pong: Es el paquete (jerarquía de carpetas) en el que se encuentra la clase alojada (el archivo .as). Es decir, dentro de la carpeta quot;
miquot;
, en la carpeta quot;
pongquot;
. Es importante que el package esté bien especificado para evitar problemas en la compilación.<br />- public class Pong: Definición de la clase Pong.<br />- public function Pong(): Constructor de la clase Pong.<br />Ya han aparecido bastantes cosas nuevas, así que sinteticemos:<br />Definición de paquetes<br />1234package carpeta_raiz.subcarpeta1.subcarpeta2.(...) { // Definición de clases del paquete }<br />Definición de clases<br />1234567891011public class MiClase { // Lista de atributos   public function MiClase()   {    // Definición del constructor   }     // Lista de métodos }<br />¿Y el public qué significa? De momento quédate con la idea de que todo aquello que sea public puede ser referenciado por otros archivos .as.<br />Añadiendo atributos y métodos a nuestra clase Pong<br />Sin más, añadamos caracterísiticas a nuestra clase Pong para convertirla en una clase útil. ¿Qué atributos y métodos podemos añadir a nuestro pong?<br />- Velocidad: atributo para predecir su localización. Además, el pong sólo se mueve verticalmente, así que sólo necesitaremos saber la velocidad en el eje de la y.<br />-Mover: método para poder desplazar el Pong por la pantalla.<br />Definición de variables<br />1var nombre_variable:tipo_variable [= valor_inicial];<br />Los atributos son variables que tienen una visbilidad especificada y que se declaran en el cuerpo de la clase, fuera de todo tipo de función.<br />Visibilidad de atributos y funciones<br />Los tres tipos de visibilidad para atributos y funciones son:<br />- public: Cualquier clase externa puede acceder a ellos.<br />- private: Sólo clases internas pueden acceder a ella.<br />- protected: Sólo clases hijas pueden acceder a ellas. Las clases hijas se explicarán más adelante.<br />Definición de atributos<br />1visibilidad var nombre_atributo:tipo_atributo [= valor_inicial];<br />Definición de funciones<br />1234visibilidad function nombre_atributo([parámteros...]):tipo_devolución { // Cuerpo de la función }<br />El constructor de la clase<br />Consideramos el constructor de clase a aquella función que tiene el mismo nombre que la clase. Cuándo creemos un objeto, el constructor de clase será la primera función en ejecutarse.<br />Pues ahora que sabemos todo esto, vamos a añadir a nuestra clase Pong el atributo velocidad y el método mover.<br />123456789101112131415161718192021222324package mi.pong {   /** * ... * @author ASL */public class Pong { private var vy:Number;   public function Pong() {  trace(quot;
¡Objeto de la clase Pong creado!quot;
); }   public function mover():void{  // Vacío. Aún no sabemos cómo vamos a mover nuestro Pong }   }   }<br />- private var vy:int : Especifica que el atributo quot;
vyquot;
 es del tipo entero (un número redondo negativo o positivo) y además privado. Sólo puede ser visto dentro de la clase Pong.<br />- public function mover():void : Una función pública llamada mover; void es un tipo especial, que indica que la función no devuelve nada.<br />Creando un objeto de la clase Pong<br />Cómo habrás notado, hemos añadido un trace(quot;
¡Objeto de la clase pong creado!quot;
); en el constructor de clase. Este mensaje nos servirá para constatar (a falta aún de una representación gráfica para el pong) que el objeto ha sido creado.<br />Abrimos Main.as y modificamos el código que teníamos por lo siguiente:<br />1234567891011121314151617181920package{ import flash.display.MovieClip; import mi.pong.Pong;   /** * ... * @author ASL */public class Main extends MovieClip {   public function Main() {  var miPong:Pong = new Pong(); }   }   }<br />- import mi.pong.Pong: Si queremos crear un objeto de tipo de Pong, lo primero que hemos de hacer es importar la clase, especificando delante del nombre el paquete en el que está. Si no la importáramos, obtendríamos un error.<br />- var miPong:Pong = new Pong(): new seguido de un constructor nos devuelve un objeto de la clase especificada. Ese objeto se almacena en la variable miPong, que ha sido especificado del tipo Pong. Observa que esto es una variable dentro la función, no un atributo de la clase, y que por eso no se especifica ninguna visibilidad.<br />Ctrl+Enter para probar la película, F2 para ver la salida y ahí estará la prueba viviente de que creamos nuestro objeto de la clase Pong. Algo soso, sí. En el siguiente capítulo mostaremos nuestro pong dentro de la ventana Flash.<br />http://sacheras3.blogspot.com/2011/02/declaracion-de-varibles-en-actionscript.html<br />
As3.tutorial
As3.tutorial
As3.tutorial
As3.tutorial
As3.tutorial
As3.tutorial

Weitere ähnliche Inhalte

Was ist angesagt?

programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
ale8819
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una clase
Isaias Toledo
 
Conceptos poo progra visual
Conceptos poo progra visualConceptos poo progra visual
Conceptos poo progra visual
Libertad25
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
chutas666
 
5.1 estructura de una clase.
5.1 estructura de una clase.5.1 estructura de una clase.
5.1 estructura de una clase.
K Manuel TN
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
UVMVirtual
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
lindacajaperuiz
 

Was ist angesagt? (20)

Jyoc java-cap07 clases y objetos
Jyoc java-cap07 clases y objetosJyoc java-cap07 clases y objetos
Jyoc java-cap07 clases y objetos
 
02 curso poo Clase - Objeto
02 curso poo Clase - Objeto02 curso poo Clase - Objeto
02 curso poo Clase - Objeto
 
03 curso poo Valores por defecto - constructores
03 curso poo Valores por defecto - constructores03 curso poo Valores por defecto - constructores
03 curso poo Valores por defecto - constructores
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Modulo ii de_java[1]
Modulo ii de_java[1]Modulo ii de_java[1]
Modulo ii de_java[1]
 
PROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETO
 
Semana 2 Clases y Objetos en Java
Semana 2   Clases y Objetos en JavaSemana 2   Clases y Objetos en Java
Semana 2 Clases y Objetos en Java
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una clase
 
Programacion Orientada a Objetos IE
Programacion Orientada a Objetos IEProgramacion Orientada a Objetos IE
Programacion Orientada a Objetos IE
 
Conceptos poo progra visual
Conceptos poo progra visualConceptos poo progra visual
Conceptos poo progra visual
 
04 curso poo Herencia
04 curso poo Herencia04 curso poo Herencia
04 curso poo Herencia
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
5.1 estructura de una clase.
5.1 estructura de una clase.5.1 estructura de una clase.
5.1 estructura de una clase.
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionado
 
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓNJAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Programacion orientada-a-objetos
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 

Andere mochten auch

Programacion por sesion ergonomia
Programacion por sesion ergonomiaProgramacion por sesion ergonomia
Programacion por sesion ergonomia
Alma Aguilar
 
Lebenslauf Giuseppina Cè
Lebenslauf Giuseppina CèLebenslauf Giuseppina Cè
Lebenslauf Giuseppina Cè
Giusy Cè
 
trabajo practico numero 5
trabajo practico numero 5trabajo practico numero 5
trabajo practico numero 5
ailen0897
 
Programacion por sesion cadenas de suministro
Programacion por sesion cadenas de suministroProgramacion por sesion cadenas de suministro
Programacion por sesion cadenas de suministro
Alma Aguilar
 
BTL + Mkt Digital Sm Board
BTL + Mkt Digital Sm Board BTL + Mkt Digital Sm Board
BTL + Mkt Digital Sm Board
Haydee Vega
 
Programacion por sesion sistemas integrales para la calidad
Programacion por sesion sistemas integrales para la calidadProgramacion por sesion sistemas integrales para la calidad
Programacion por sesion sistemas integrales para la calidad
Alma Aguilar
 

Andere mochten auch (20)

Praesentation D-A-CH Wissensmanagement Glossar
Praesentation D-A-CH Wissensmanagement GlossarPraesentation D-A-CH Wissensmanagement Glossar
Praesentation D-A-CH Wissensmanagement Glossar
 
Sesiones de ec y danza 4 6
Sesiones de ec y danza 4 6Sesiones de ec y danza 4 6
Sesiones de ec y danza 4 6
 
Programacion por sesion ergonomia
Programacion por sesion ergonomiaProgramacion por sesion ergonomia
Programacion por sesion ergonomia
 
Social media
Social mediaSocial media
Social media
 
Social Media Monitoring und Lokalisierung
Social Media Monitoring und LokalisierungSocial Media Monitoring und Lokalisierung
Social Media Monitoring und Lokalisierung
 
Lebenslauf Giuseppina Cè
Lebenslauf Giuseppina CèLebenslauf Giuseppina Cè
Lebenslauf Giuseppina Cè
 
trabajo practico numero 5
trabajo practico numero 5trabajo practico numero 5
trabajo practico numero 5
 
Presentacion sin titulo (1)
Presentacion sin titulo (1)Presentacion sin titulo (1)
Presentacion sin titulo (1)
 
Revolucion copernicana ¿que hago con mi cetro
Revolucion copernicana ¿que hago con mi cetroRevolucion copernicana ¿que hago con mi cetro
Revolucion copernicana ¿que hago con mi cetro
 
Buenisimo
BuenisimoBuenisimo
Buenisimo
 
Incorporacion de las NNTT cuatro posibilidades de comunicación
Incorporacion de las NNTT cuatro posibilidades de comunicaciónIncorporacion de las NNTT cuatro posibilidades de comunicación
Incorporacion de las NNTT cuatro posibilidades de comunicación
 
Programacion por sesion cadenas de suministro
Programacion por sesion cadenas de suministroProgramacion por sesion cadenas de suministro
Programacion por sesion cadenas de suministro
 
La Vida de Bolívar
La Vida de BolívarLa Vida de Bolívar
La Vida de Bolívar
 
Os.030
Os.030Os.030
Os.030
 
Azpe informatica consejos para elegir tu portátil
Azpe informatica consejos para elegir tu portátilAzpe informatica consejos para elegir tu portátil
Azpe informatica consejos para elegir tu portátil
 
BTL + Mkt Digital Sm Board
BTL + Mkt Digital Sm Board BTL + Mkt Digital Sm Board
BTL + Mkt Digital Sm Board
 
Presentacion Programa Formacion Jovenes Lideres Facilitadores
Presentacion Programa Formacion Jovenes Lideres FacilitadoresPresentacion Programa Formacion Jovenes Lideres Facilitadores
Presentacion Programa Formacion Jovenes Lideres Facilitadores
 
Unionsmarke kpp
Unionsmarke kppUnionsmarke kpp
Unionsmarke kpp
 
Los deportes urbanos
Los deportes urbanosLos deportes urbanos
Los deportes urbanos
 
Programacion por sesion sistemas integrales para la calidad
Programacion por sesion sistemas integrales para la calidadProgramacion por sesion sistemas integrales para la calidad
Programacion por sesion sistemas integrales para la calidad
 

Ähnlich wie As3.tutorial

Manual de macros2 pre
Manual de macros2 preManual de macros2 pre
Manual de macros2 pre
jtk1
 
Gran tutorial-de-macros
Gran tutorial-de-macrosGran tutorial-de-macros
Gran tutorial-de-macros
klayma rivas
 
Macros Excel
Macros ExcelMacros Excel
Macros Excel
Amauta20
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
jent46
 
Que es programación orientada a objeto
Que es programación orientada a objetoQue es programación orientada a objeto
Que es programación orientada a objeto
Jessarin Kitty Cosmic
 
Thalia castro 1101
Thalia castro 1101Thalia castro 1101
Thalia castro 1101
thalis96
 

Ähnlich wie As3.tutorial (20)

Excel con macros
Excel con macrosExcel con macros
Excel con macros
 
Manual de macros2 pre
Manual de macros2 preManual de macros2 pre
Manual de macros2 pre
 
Macros en excel [106 paginas en español]
Macros en excel [106 paginas   en español]Macros en excel [106 paginas   en español]
Macros en excel [106 paginas en español]
 
Excel macros
Excel macrosExcel macros
Excel macros
 
Excel macros
Excel macrosExcel macros
Excel macros
 
Gran tutorial-de-macros
Gran tutorial-de-macrosGran tutorial-de-macros
Gran tutorial-de-macros
 
1. manual macrosexcel
1. manual macrosexcel1. manual macrosexcel
1. manual macrosexcel
 
Macros en excel
Macros en excelMacros en excel
Macros en excel
 
Macros Excel
Macros ExcelMacros Excel
Macros Excel
 
Clase 1 - Programación orientada a Objetos (2).pptx
Clase 1 - Programación orientada a Objetos (2).pptxClase 1 - Programación orientada a Objetos (2).pptx
Clase 1 - Programación orientada a Objetos (2).pptx
 
Prototype-based, object-oriented programming
Prototype-based, object-oriented programmingPrototype-based, object-oriented programming
Prototype-based, object-oriented programming
 
Programacion orientada a obetos
Programacion orientada a obetosProgramacion orientada a obetos
Programacion orientada a obetos
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Clases en visual basic
Clases en visual basicClases en visual basic
Clases en visual basic
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Hgtyj
HgtyjHgtyj
Hgtyj
 
Fasesdedesarrollodeunprograma
FasesdedesarrollodeunprogramaFasesdedesarrollodeunprograma
Fasesdedesarrollodeunprograma
 
Recolección de basura
Recolección de basuraRecolección de basura
Recolección de basura
 
Que es programación orientada a objeto
Que es programación orientada a objetoQue es programación orientada a objeto
Que es programación orientada a objeto
 
Thalia castro 1101
Thalia castro 1101Thalia castro 1101
Thalia castro 1101
 

As3.tutorial

  • 1. Un mundo lleno de objetos...<br />Si conoces los conceptos de programación de objetos, puedes saltarte estos puntos hasta llegar a la última parte del capítulo.<br />Son muchos y variados los tipos de programación que existen actualmente. Programación estrucuturada, orientada a objetos, lógica, funcional... Cada una con sus pros y sus contras y un sistema propio de funcionaminento.<br />El principio básico de la Programación Orientada a Objetos es que todo aquello que necesitamos para representar nuestros programas son objetos. Y si lo piensas, razón no le falta. En nuestro Pong vamos a necesitar diferentes objetos para jugar: una bola, los Pong contra las que va a rebotar la bola, unos marcadores para llevar la puntuación... Todos ellos objetos. <br />(Anotación informática carente de interés: Bueno, siendo estrictos, no todo en la POO son objetos estrictamente... Debate intenso a la vez que inútil que mantienen defensores de la programación funcional pura frente a los que defienden la orientación a objetos...)<br />Es obvio que no todos los objetos son iguales. Un jarrón no es lo mismo que una pelota, pero un jarrón verde tampoco es exactamente igual a un jarrón rojo. Aquí es dónde interviene, por fin, el concepto de clase.<br />Concepto de Clase<br />Vamos a pasar un poco rápido sobre la teoría, porque cuándo realicemos el ejemplo en ActionScript se verá mucho más claro.<br />En POO, una clase es un tipo de objeto. Todas las pelotas del mundo pertenecen a la clase pelota, y todos los jarrones del mundo a la clase jarrón. Además, cada tipo de objeto tiene unas acciones asociadas (métodos) y unas características propias (atributos).<br />¿Qué es un atributo?<br />Un atributo es una característica del tipo de objeto. <br />En el caso del jarrón, posibles atributos serían: color (así podemos distinguar el jarrón rojo del verde), volumen, contenido...<br />Y en el caso de la pelota: tamaño, velocidad, dirección...<br />¿Qué es un método?<br />Un método es una acción que el tipo de objeto puede realizar.<br />Para el jarrón, posibles métodos serían: rellenar, romper...<br />Para la pelota: golpear, parar, pinchar...<br />¿Cuál es la diferencia entre Clase y Objeto?<br />Una objeto es una instanciación de una clase. En cristiano, cuándo Dios creó el mundo, lo primero que se hizo fue un molde con forma humana. Ese molde era la clase. La clase humano. Y cuándo creó a Adán utilizando ese molde, creó un objeto de la clase humano. Adán es el objeto, humano la clase. Adán lo concreto, humano lo abstracto.<br />Clases en ActionScript 3<br />Vamos a crear nuestra primera (segunda, si contamos el Main.as) clase en ActionScript. Y para empezar, vamos a pensar en uno de los tipos de objeto que vamos a necesitar para nuestro Pong: efectivamente, un Pong. La barrita-mini-pared que subirá y bájara evitando que la pelota sobrepase los límites de nuestro campo.<br />Con el proyecto Pong abierto en FlashDevelop, vamos a crear unas carpetas para organizar nuestro trabajo mejor: click derecho sobre la raíz del proyecto Pong (AS3) -> Add -> New Folder... y lo llamos quot; miquot; , y sobre esta nueva carpeta, misma operación y añadimos una subcarpeta llamada quot; pongquot; . Y sobre esta carpeta, misma operación, pero en vez de New Folder seleccionamos New Class y la llamamos Pong.as.<br />Por convención, los nombres de las clases se escriben con mayúsculas, mientras que los de las carpetas (paquetes) con minúscula. Ahora ya es un buen momento para explicar el código que aparece.<br />123456789101112131415161718package mi.pong {   /** * ... * @author ASL */public class Pong {   public function Pong() {   }   }   }<br />- package mi.pong: Es el paquete (jerarquía de carpetas) en el que se encuentra la clase alojada (el archivo .as). Es decir, dentro de la carpeta quot; miquot; , en la carpeta quot; pongquot; . Es importante que el package esté bien especificado para evitar problemas en la compilación.<br />- public class Pong: Definición de la clase Pong.<br />- public function Pong(): Constructor de la clase Pong.<br />Ya han aparecido bastantes cosas nuevas, así que sinteticemos:<br />Definición de paquetes<br />1234package carpeta_raiz.subcarpeta1.subcarpeta2.(...) { // Definición de clases del paquete }<br />Definición de clases<br />1234567891011public class MiClase { // Lista de atributos   public function MiClase()   {    // Definición del constructor   }     // Lista de métodos }<br />¿Y el public qué significa? De momento quédate con la idea de que todo aquello que sea public puede ser referenciado por otros archivos .as.<br />Añadiendo atributos y métodos a nuestra clase Pong<br />Sin más, añadamos caracterísiticas a nuestra clase Pong para convertirla en una clase útil. ¿Qué atributos y métodos podemos añadir a nuestro pong?<br />- Velocidad: atributo para predecir su localización. Además, el pong sólo se mueve verticalmente, así que sólo necesitaremos saber la velocidad en el eje de la y.<br />-Mover: método para poder desplazar el Pong por la pantalla.<br />Definición de variables<br />1var nombre_variable:tipo_variable [= valor_inicial];<br />Los atributos son variables que tienen una visbilidad especificada y que se declaran en el cuerpo de la clase, fuera de todo tipo de función.<br />Visibilidad de atributos y funciones<br />Los tres tipos de visibilidad para atributos y funciones son:<br />- public: Cualquier clase externa puede acceder a ellos.<br />- private: Sólo clases internas pueden acceder a ella.<br />- protected: Sólo clases hijas pueden acceder a ellas. Las clases hijas se explicarán más adelante.<br />Definición de atributos<br />1visibilidad var nombre_atributo:tipo_atributo [= valor_inicial];<br />Definición de funciones<br />1234visibilidad function nombre_atributo([parámteros...]):tipo_devolución { // Cuerpo de la función }<br />El constructor de la clase<br />Consideramos el constructor de clase a aquella función que tiene el mismo nombre que la clase. Cuándo creemos un objeto, el constructor de clase será la primera función en ejecutarse.<br />Pues ahora que sabemos todo esto, vamos a añadir a nuestra clase Pong el atributo velocidad y el método mover.<br />123456789101112131415161718192021222324package mi.pong {   /** * ... * @author ASL */public class Pong { private var vy:Number;   public function Pong() {  trace(quot; ¡Objeto de la clase Pong creado!quot; ); }   public function mover():void{  // Vacío. Aún no sabemos cómo vamos a mover nuestro Pong }   }   }<br />- private var vy:int : Especifica que el atributo quot; vyquot; es del tipo entero (un número redondo negativo o positivo) y además privado. Sólo puede ser visto dentro de la clase Pong.<br />- public function mover():void : Una función pública llamada mover; void es un tipo especial, que indica que la función no devuelve nada.<br />Creando un objeto de la clase Pong<br />Cómo habrás notado, hemos añadido un trace(quot; ¡Objeto de la clase pong creado!quot; ); en el constructor de clase. Este mensaje nos servirá para constatar (a falta aún de una representación gráfica para el pong) que el objeto ha sido creado.<br />Abrimos Main.as y modificamos el código que teníamos por lo siguiente:<br />1234567891011121314151617181920package{ import flash.display.MovieClip; import mi.pong.Pong;   /** * ... * @author ASL */public class Main extends MovieClip {   public function Main() {  var miPong:Pong = new Pong(); }   }   }<br />- import mi.pong.Pong: Si queremos crear un objeto de tipo de Pong, lo primero que hemos de hacer es importar la clase, especificando delante del nombre el paquete en el que está. Si no la importáramos, obtendríamos un error.<br />- var miPong:Pong = new Pong(): new seguido de un constructor nos devuelve un objeto de la clase especificada. Ese objeto se almacena en la variable miPong, que ha sido especificado del tipo Pong. Observa que esto es una variable dentro la función, no un atributo de la clase, y que por eso no se especifica ninguna visibilidad.<br />Ctrl+Enter para probar la película, F2 para ver la salida y ahí estará la prueba viviente de que creamos nuestro objeto de la clase Pong. Algo soso, sí. En el siguiente capítulo mostaremos nuestro pong dentro de la ventana Flash.<br />http://sacheras3.blogspot.com/2011/02/declaracion-de-varibles-en-actionscript.html<br />