ActionScript 3.0 para principiantes: lección # 2

Según lo prometido aquí está la segunda lección en ActionScript 3.0! Hoy comenzamos el análisis de un proyecto simple que reproduce el juego o el Tic Tac Toe Tic Tac Toe. Traté de incluir algunas características especiales en este ejemplo, ActionScript 3.0, tratando de dar espacio a la comprensión y no en el estilo. De ello se desprende que si tuviera que escribir el "juego" en realidad, probablemente habría estructurado de manera muy diferente, pero en este caso he intentado mediar entre un programa clásico, con un hermético compacto, más comprensible para los principiantes. He creado una clase de documento único, el procedimiento no es necesario pero es útil para mantenerse en línea con la lección anterior .

Tic Tac Toe

Cargando flash ...

La fuente

Además de los archivos ActionScript (. As) la clase de documento, que comenzará a analizar en detalle aquí, el proyecto está equipado con un estándar de película de Flash (. Fla) que proporciona la interfaz del juego. Todos los archivos necesarios para seguir los comentarios en el código son disponibles aquí .

Diagrama del juego

En esta versión del juego que no se puso el equipo como un adversario, lo que puedes hacer si te sientes como si los lectores. La cuestión, por lo tanto, los suplentes dos jugadores, al igual que estamos jugando en una pizarra o en una hoja de papel. El esquema lógico que seguirá es el siguiente:

Esquema de Tic Tac Toe

Una visión global

e il suo interno: Antes de comenzar el análisis real de que el código es bueno ver los contornos de una clase genérica, compuesto por el package , class , y en su interior:

Esquema de Tic Tac Toe

Documento del fabricante de clase

Como habíamos anticipado la última vez , cuando se enlazan con un documento de Flash - una película - una clase de documento, siendo este último un objeto real para crear una instancia, el sistema de arranque del fabricante.

1
2
3
4
5
6
7
8
9
/ **
* Constructor de la clase
* /
TicTacToe ( ) : void { TicTacToe función pública (): void {
/ / Establecer el modo y las escaleras de las Prácticas alinear
scaleMode = StageScaleMode . NO_SCALE pasantías. scaleMode = StageScaleMode . NO_SCALE
align = StageAlign . TOP_LEFT ; align = pasantías. StageAlign TOP_LEFT.;
Event . ADDED_TO_STAGE , init ) ; addEventListener ( Evento . ADDED_TO_STAGE, init);
}

quando la nostra classe documento è aggiunta allo stage , cioè quando sarà visualizzata! El fabricante, en este caso establece el stage , que es el contenedor dentro de un navegador y añadir la llamada al método de la función / init() cuando el documento se agrega a nuestra clase de stage , es decir, cuando se muestra! Este es un procedimiento estándar que adopto a menudo. En algunos casos, es totalmente innecesario, pero si usted hace uso de los componentes, es decir, los objetos visuales en la interfaz de Flash (por ejemplo, TextArea, TreeView, etc ...), éstas no estarán disponibles (como punteros) hasta que el evento ADDED_TO_STAGE no ha sido liberado! Así que para estar seguro, siempre es una buena práctica a seguir este camino, en previsión de cualquier nuevo lanzamiento.

Para aquellos que poseen una programación orientada a objetos en seco, te recomiendo leer por lo menos las clases, objetos e instancias !

: La función o método, init() que se ha denominado privado (véase Actionscript 3.0: públicos, protegidos, privados e internos ) con la palabra clave private :

1
2
3
4
5
6
7
8
9
10
/ **
* El método se invoca cuando el MovieClip se añade al escenario
*
* @ Param {evento} e = pasó de addEventListener (). Puede ser nulo
* @ Return vacío
* @ Privado
* /
init ( e : Event = null ) : void { private function init (e: Evento = null): void {
initCell ();
}

Por el momento, como se puede ver, esta función hace es llamar a otro, initCell() . A menudo, en el método init() se insertan todas las funciones de inicialización, evitando entrar directamente en el código abierto. Esto puede ser útil en caso de volver a iniciar algunos parámetros. Dado que este es un ejemplo de un juego relativamente simple, puede ser extraño tener esta doble salto casi inútil, pero en otros casos, el método init() puede ser mucho mayor, llamando a una serie de funciones de inicio, como:

1
2
3
4
5
6
7
8
9
init ( e : Event = null ) : void { private function init (e: Evento = null): void {
initBackground ();
initIntro ();
initPlayers ();
initScore ();
initEnemy ();
initSound ();
; start ();
}

. El método init() se invoca (es decir, llamadas) cuando el sistema libera el evento ADDED_TO_STAGE . Por esta razón, se añadió el parámetro e:Event .

Notas de trucos: a menudo puede ocurrir que los métodos (por ejemplo, init() ) que son invocadas por los dos eventos, tanto en el código. Es precisamente por esta razón que el parámetro de este método se establece en e:Event = null . (a meno di “simularlo” con un notevole spreco di energie). De esta manera, de hecho, si alguna vez necesita, puede llamar a init() sin pasar ningún parámetro, ya que no son un evento y luego no pudimos pasar el parámetro e:Event (a menos que "fingir" con considerable pérdida de energía ). Para obtener más información sobre la gestión de los parámetros en ActionScript 3.0, véase también: Temas y variables por defecto en JavaScript, ActionScript y PHP y Actionscript variables de 3.0 Temas ,

Inicialización del juego

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/ **
* Iniciar una serie lineal que representa nuestra red.
* Esta "red" por defecto a cero (0), que especifica que no
* Símbolo (o / x) se llevó a cabo.
* El jugador 1 (o) se le asigna el valor uno (1). Mientras que el jugador 2 (x)
* Asociado con el valor de diez (10). Con este truco, cuando tales
* Suma de los valores de la fila 1 es igual a 3, sabremos quién ganó el jugador 1.
* Si la suma, en lugar de la columna 1 es de 30, y luego ganó el jugador 2 ... y así sucesivamente.
*
* 0 | 0 | 0
* --+---+---
* 0 | 0 | 0
* --+---+---
* 0 | 0 | 0
*
* @ Param vacío
* @ Return vacío
* @ Privado
* /
initCell ( ) : void { initCell función privada (): void {
/ / Array de pre-configurar el juego a cero
, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ; __cell = [0, 0, 0, 0, 0, 0, 0, 0, 0];
/ / Siempre comienza con el jugador (jugador) # 1
__player = 1;
/ / Dibuja la cuadrícula en la pantalla
createGrid ();
/ / Mostrar la pantalla del jugador a su vez (en este caso 1)
= 'PLAYER ' + __player ; . turno_txt text = "jugador" + __player;
/ / Esta variable se utiliza para poner el juego en pausa si es cierto
/ / Comienza el juego
__stop = false;
}

Este método initCell() se encarga de modificar todas las variables y crear todos los objetos en el juego.

Trucos de notas: casi todos los programadores de videojuegos están perfectamente familiarizados con la técnica de mapeo del área de juego en una matriz con una o más dimensiones. Esta técnica, utilizada en el llamado juego de fichas le permite ejecutar una serie de controles en una lógica liberado de gráficos a video. En este caso he usado una sencilla matriz unidimensional consta de nueve elementos que representan el 9 cajas del juego. El hecho de que los elementos de la matriz son secuenciales, en comparación con el 3 x 3, no es un problema como veremos más adelante, pero sólo una cuestión de punto de vista!
Para aquellos que quieran profundizar en el tema interesante, recomiendo la lectura de juegos de piezas base

Todas las variables para uso interno, a nivel mundial de clase, indican el uso de la doble subrayado en el frente. indicano rispettivamente il giocatore attivo e lo stato del gioco. Estos, de hecho, durante el primer borrador de una clase puede entonces ser de dominio público, utilizando su propio encapsulado de OO de programación (ver escribir buen código orientado a objetos en Adobe Flash ). __player y __stop indicar que el jugador activo y el estado del juego.

Por ahora voy a dejar aquí! La próxima vez vamos a analizar el método createGrid() y el resto del juego, si usted tiene preguntas o comentarios sobre esta parte.

4 comentarios para "ActionScript 3.0 para principiantes: lección # 2"

  1. 28 de septiembre 2008 ActionScript 3.0 para principiantes: lección # 3 | Undolog.com :

    [...] Análisis del ejemplo del juego de Tic Tac Toe, presentado en ActionScript 3.0 para principiantes: lección # 2. Llegamos a la función que crea la red de juego: Texto sin formato [...]

  2. 04 de noviembre 2008 Billigflüge :

    A pesar de que no me gusta dedo del pie tic tac, porque el primer jugador siempre gana, si hace su marca en el lugar correcto, el tut es genial! Hay algunos puntos que no me queda claro todavía, pero espero que se traduzca el sitio rápidamente. Saludos cordiales

  3. 11 de noviembre 2008 ActionScript 3.0 para principiantes: lección # 4 | Undolog.com :

    [...] Nuestro código de muestra para el TicTacToe (que se encuentra en su totalidad en Google Code) y comenzar a analizar en [...]

  4. 28 de noviembre 2008 dosa85:

    ontinuo no entienden cómo insertar el código .... puedo copiar y pegar el error, aunque por lo general en el archivo AS ... .... Bha!

Deja un comentario

XHTML PERMISO TAG: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> código de inserción:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL