テ]gel Serrano
Madrid
Ingeniero Informテ。tico por la Universidad Complutense de Madrid.
Actualmente, estudiando el Mテ。ster de Investigaciテウn Informテ。tica de la UCM, y trabajando en la versiテウn 2.0 del proyecto eAdventure.
Diseテアa grテ。ficamente el pong del juego y entiende el concepto de herencia en programaciテウn orientada a objetos. Finalmente, aテアade el pong a la escena.
Esta entrada pertenece a ActionScript 3 – Guテュa para Principiantes.

Antes de explicar el concepto de herencia, vamos a colocar, por fin, nuestro pong en la ventana Flash. Lo primero que necesitamos es una representaciテウn grテ。fica para テゥl. Con la ventana Flash activa: menテコ Insertar -> Nuevo sテュmbolo… En el diテ。logo que nos aparece, elegimos como nombre para el sテュmbolo Pong. Y en el tipo, Clip de pelテュcula. Puedes elegir el diseテアo que quieras. Aquテュ, el que he seguido yo:

1) Dibujamos un rectテ。ngulo con la Herramienta Rectテ。ngulo (R)
2) Con la herramienta de Tansformaciテウn Libre (Q), con Ctrl+Shitf pulsados, clickamos sobre la esquina inferior derecha del rectテ。ngulo y arrastramos hacia arriba, hasta conseguir la forma adecuada.
3) Con todo lo que acabamos de dibujar seleccionado, en la ventana Color (Shift + F9) utilizamos los siguientes valores:

Un テコltimo detalle importante que has de tener en cuenta, es que el grテ。fico ha de estar lo mテ。s centrado posible en el clip de pelテュcula. Si te fijas, una pequeテアa cruz es la que marca este centro. Si tu pong no estuviera centrado, traslテ。dalo de modo que su centro (que se marca cuテ。ndo tienes seleccionada la Heramienta de Transformaciテウn Libre (Q)), quede alineado con el del clip.
Nuestro objetivo es que la clase Pong que tenemos definida en el archivo Pong.as estテゥ asociada a la representaciテウn grテ。fica que le hemos creado. Para ello debemos seguir dos pasos:
1) Especificar, en ActionScript, que la clase Pong tiene una representaciテウn grテ。fica en forma de clip de pelテュcula (MovieClip). Y hacemos esto mediante la herencia de MovieClip en la clase Pong.
package mi.pong
{
import flash.display.MovieClip;
/**
* ...
* @author ASL
*/
public class Pong extends MovieClip
{
private var vy:int;
public function Pong()
{
trace("ツ。Objeto de la clase Pong creado!");
}
public function mover():void
{
// Vacテュo. Aテコn no sabemos cテウmo vamos a mover nuestro Pong
}
}
}
- public class Pong extends MovieClip: Aquテュ estamos especificando que la clase Pong hereda de la clase MovieClip de Flash. Es decir, que Pong, ademテ。s de tener sus atributos y sus mテゥtodos propios, ademテ。s tambiテゥn hereda todas las caracterテュsticas MovieClip, entre ellos, la representaciテウn grテ。fica. MovieClip es la clase que Flash utiliza para las representaciones grテ。ficas con lテュnea temporla.
2) Indicar que el sテュmbolo Pong que hemos creado en Flash estテ。 relacionado con la clase Pong del archivo Pong.as. Para ello, en la ventana Biblioteca, click derecho sobre el sテュmbolo Pong -> Propiedades, y en caso de no estar extendido, pulsamos Avanzado. Ahテュ, selecionamos Exportar para ActionScript. En clase, la clase con la que queremos vincular el sテュmbolo (y su ubicaciテウn en su respectivo paquete) “mi.pong.Pong”, y en clase base, si no estuviera ya, “flash.display.MovieClip”.
Tras estos dos pasos, cada vez que creemos un objeto de la clase Pong, este objeto tendrテ。 asociado el sテュmbolo Pong que creamos al inicio del capテュtulo.
Ahora cobra sentido aquel “extends MovieClip” que aテアadimos a la clase Main. El documento Flash es, en esencia, un clip de pelテュcula, un MovieClip.Y, al igual que con el Pong, a este MovieClip podemos asociarle una clase ActionScript, en este caso, Main.
Por ser Main la clase que representa al MovieClip principal de nuestro archivo Flash, es テゥl quiテゥn controla todo lo que sucede en la parte grテ。fica de la aplicaciテウn. Por eso debe ser en テゥl en el que aテアadamos nuestro pong.
package
{
import flash.display.MovieClip;
import mi.pong.Pong;
/**
* ...
* @author ASL
*/
public class Main extends MovieClip
{
public function Main()
{
var miPong:Pong = new Pong();
addChild(miPong);
miPong.x = stage.stageWidth / 2;
miPong.y = stage.stageHeight / 2;
}
}
}
- addChild(miPong): aテアadimos a nuestra pelテュcula miPong.
- miPong.x = stage.stageWidth / 2: “x” es un atributo heredado desde MovieClip. Indica la posiciテウn, en el eje de las x, del objeto dentro de la pelテュcula. stage.stageWidth indica el ancho de la pelテュcula. Lo dividimos entre 2 para centrar. Anテ。logo para miPong.y.
Si ahora pruebas la pelテュcula, verテ。s a nuestro Pong, en el centro.
La herencia nos permite crear clases generales de las que poder heredar en clases mテ。s concretas. Por ejemplo, podrテュamos tener una clase padre Transporte, con atributos generales como “velocidad” o “precio” y unas clases heredades, mテ。s concretas, como Aviテウn, Tren, Automテウvil…
Para especificar que una clase hereda de otra utilizamos la palabra clave extends:
public class miClase extends ClasePadre
{
// Definiciテウn de clase
}
En capテュtulos posteriores revisaremos esta definiciテウn y todas sus aplicaciones. De momento, nos vale con saber que para poder asociar clases ActionScript con sテュmbolos Flash necesitamos que テゥstas hereden de MovieClip.
| Anterior | テ肱dice | Siguiente |
Hola de nuevo soy el torpe de la clase, sobre Errores
C:\****\****\pong\src\ob\pong\Pong.as, Lテュnea 8 1084: Error de sintaxis: se esperaba leftparen antes de extends.
si le tira un error asi i estais desesperados, porque mirais al codigo y parece bien, o que esis ya a punto de reistalar Flash, (lo pongo por si se encuentra alguien tan torpe como yo) – MIRAR BIEN EL CODIGO
este error tira cuando intentais extender una function , asi que mirar que ponga
public class Pong extends MovieClip{
y no
public function Pong extends MovieClip(){
sinceramente , yo tuve un monton de esos errore en mi tres dillas de aprendisaje de Actionscript, y creo que los volvere a cometer.,
P.S. para autor , donde aprendes Actionscript, recomiendas algun libro bueno?
y una pregunta .
Es posible empiesar ganar dinero en 2 semanas con esto?
que pa mi es como casi urgente.
Hola,
Aprendテュ Action Script 3 siguiendo tutoriales por Internet. La mayorテュa de las veces poniendo en Google lo que querテュa hacer + action script 3 o flash.
Con respecto a lo de ganar dinero en 2 semanas, lo veo improbable. Pero depende de tu capacidad de aprendizaje y de encontrar un cliente que requiera tus servicios, supongo.
Un saludo
Hola Angel:
Muy bueno el tuto, hicistes que se me vaya el miedo a las clases y lo primero que hice despues de leer el tuto, es hacer una aplicacion en flash por medio de clases que desarrolle en el flashdeveloper .
Realmente te agradesco y si tenes mas senialamelos por favor.
Aprovecho esta oportunidad para formularte una pregunta. En la app ya mencionada mando mails desde flash por medio de php, mi problema radica en que debo hacerlo en un idioma diferente al ingles o espaniol y necesito agregar en el php encoding. Alguna ayuda seria muy agradecida.
Que tengas un buen dia
Adrian
Hola, Adriテ。n
Me alegro que te sirviera el tutorial. Me temo que no puede ayudarte con el problema de php. Nunca he hecho nada relacionado.
Un saludo
Hola buenas, llevo como una hora buscando la soluciテウn porque no se ve mi simbolo en pantalla y la verdad es que no entiendo nada. Estテ。 todo correcto e identico a como lo as puesto. Lo テコnico raro que he visto a sido que cuando introduzco “flash.display.MovieClip” en la clase base, me pone que es nativa y no se puede editar.
Esta todo igual a lo que pones, es mas, no me da ningテコn error, pero no sale el simbolo en la pantalla de ejecuciテウn…
Gracias y muy buen tutorial!!
[...] Anterior [...]
[...] Siguiente [...]