Autor Tema: [TUTORIAL] AS3 desde 0 [LECCION 1]  (Leído 2091 veces)

Desconectado nac

  • PHPer@ Fijo
  • ***
  • Mensajes: 139
  • Karma: 2
    • Ver Perfil
[TUTORIAL] AS3 desde 0 [LECCION 1]
« en: 27 de Junio de 2010, 13:23:06 pm »
Hola, hoy les enseñaré lo más básico de AS3. Supongo que saben sobre los loops y condicionales entonces eso no lo explicaré.

Lección 1
Variables, tipos de variables y todo para empezar
Primer Script
Eventos
Diferencias entre codeo inFrame - inClass
Clases

Lección 2
Próximamente
« Última modificación: 01 de Julio de 2010, 05:33:30 am por nac »

Comunidad PHPeros

[TUTORIAL] AS3 desde 0 [LECCION 1]
« en: 27 de Junio de 2010, 13:23:06 pm »

Desconectado nac

  • PHPer@ Fijo
  • ***
  • Mensajes: 139
  • Karma: 2
    • Ver Perfil
Re:[TUTORIAL] AS3 desde 0 [LECCION 1]
« Respuesta #1 en: 27 de Junio de 2010, 13:32:13 pm »
Variables, tipos de variables y todo para empezar.

Para empezar debes tener algun flash que acepte As3.

Las variables se definen por var, siempre tienen que ir definidas, las variables reconoces MAYÚSCULAS y minúsiculas.
Las principales tipos de variables son:
Citar
String: Un texto cualquiera
Number: Un número
Boolean: True or false
Void: Regresa cualquier tipo
Los tipos de variables son para decirle a flash que va a decirle que enseñe, siempre tenemos que definir el tipo de variable. Pero dejemos esto atrás y vallamos la práctica.
(Esto lo pondremos en el frame 1 y apretando F9)
Código: [Seleccionar]
var miString:String = "Hola soy Nažet y tengo ";
var miNumber:Number = 14;
var miString2:String = " años";
var miBoolean:Boolean = true;

if(miBoolean == true)
{
trace(miString + miNumber + miString2); // Muestra una pantalla que diga Hola soy Nažet y tengo 14 años, pero solo lo muestra si mi variable miBoolean es true
}


Desconectado nac

  • PHPer@ Fijo
  • ***
  • Mensajes: 139
  • Karma: 2
    • Ver Perfil
Re:[TUTORIAL] AS3 desde 0 [LECCION 1]
« Respuesta #2 en: 27 de Junio de 2010, 13:41:23 pm »
Primer script.

Bueno con lo que enseñamos en la otra sección haremos nuestro primer script con un Hola mundo :).

Hoy importaremos una clase de Flash llamada TextField y se importan asi: import
Código: [Seleccionar]

import flash.text.TextField;

var miString:String = "Hola mundo";
var miTexto:TextField = new TextField();

miTexto.text = miString;
miTexto.x = 40;
miTexto.y = 60;

trace("Hay: " + miTexto.length + " letras");

addChild(miTexto);


Aquí creamos un campo de Texto y una variable con un string, luego en su propiedad con .text lo cambiamos, definimos su estancia en la stage, luego hacemos un trace con información y lo agregamos a la stage con addChild()

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[TUTORIAL] AS3 desde 0 [LECCION 1]
« Respuesta #3 en: 27 de Junio de 2010, 17:09:20 pm »
¡Hola!

Con respecto al tutorial de variables, en la línea donde se hace el if comprobando si existe la variable miBoolean, creo que el "== true" está de sobra:

Código: [Seleccionar]
if(miBoolean == true)
¿No es lo mismo poner solo el siguiente código?:

Código: [Seleccionar]
if(miBoolean)
Bueno esa era mi duda :)
Saludos ^^
- Moderador de PHP


Desconectado nac

  • PHPer@ Fijo
  • ***
  • Mensajes: 139
  • Karma: 2
    • Ver Perfil
Re:[TUTORIAL] AS3 desde 0 [LECCION 1]
« Respuesta #4 en: 28 de Junio de 2010, 03:05:00 am »
Si, esque lo habia olvidado pero sirve igual :)

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[TUTORIAL] AS3 desde 0 [LECCION 1]
« Respuesta #5 en: 28 de Junio de 2010, 03:10:33 am »
Muy bueno el tutorial, entendi todo ya que eso está en la mayoría de lenguajes de programación. Espero el otro tutorial.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado nac

  • PHPer@ Fijo
  • ***
  • Mensajes: 139
  • Karma: 2
    • Ver Perfil
Re:[TUTORIAL] AS3 desde 0 [LECCION 1]
« Respuesta #6 en: 28 de Junio de 2010, 05:58:22 am »
Que bien que lo hayas entendido :), el siguiente tutorial será mucho mejor, con ejemplo y creo que alguna tarea :D

Desconectado nac

  • PHPer@ Fijo
  • ***
  • Mensajes: 139
  • Karma: 2
    • Ver Perfil
Re:[TUTORIAL] AS3 desde 0 [LECCION 1]
« Respuesta #7 en: 29 de Junio de 2010, 04:17:12 am »
Eventos.

Hoy les enseñaré los eventos en AS3.

Empezemos con supongo el evento que mas les gusta. El del mouse, CREO que en AS2 los eventos iban por on() pero aquí no puedes escribir dentro de un MC, entonces tienes que escribirlo asi: miMC.addEventListener(); , entonces el evento del Mouse se importa así: import flash.events.MouseEvent; , entonces si queremos que al picar un objeto que crearemos a continuación, el código sería asi:
Código: [Seleccionar]
import flash.display.Sprite;
import flash.events.MouseEvent;

/*
Dibujaremos un circulo que X sea la mitad de la Stage por en ancho e Y sea la mitad de
la Stage por la altura
*/

var miCirculo:Sprite = new Sprite;
miCirculo.graphics.beginFill(0xAA0000,1);
miCirculo.graphics.drawCircle(stage.stageWidth/2,stage.stageHeight/2,50);

/*
Crearemos el evento.
*/

miCirculo.addEventListener(MouseEvent.CLICK,cuandoClick);
function cuandoClick(e:MouseEvent)
{
trace("Haz clickeado a el circulo");
}

// Agregamos a la escena

addChild(miCirculo);

Explicaré el código:

Primeras líneas: Importamos las clases necesarias.

De la línea 9 a 11:
Código: [Seleccionar]
var miCirculo:Sprite = new Sprite;
miCirculo.graphics.beginFill(0xAA0000,1);
miCirculo.graphics.drawCircle(stage.stageWidth/2,stage.stageHeight/2,50);
Primero creamos la variable que será de tipo Sprite (dibujos) y le decimos graphics.beginFill(color,opacidad), donde la opacidad 1 es el 100% y el color envez de poner # como se hace en HTML se pone 0x.

Bueno el addEventListener va asi: addEvenListener(Evento,funcion). La funcion tambien puede ser interna.
Código: [Seleccionar]
miCirculo.addEventListener(MouseEvent.CLICK,cuandoClick);
function cuandoClick(e:MouseEvent)
{
trace("Haz clickeado a el circulo");
}
Aquí le decimos que cuando el usuario haga Click lo mande a la función cuandoClick, y bueno en la función tenemos que poner una variable (puede ser cualquiera pero yo siempre pongo e porque se me hace más cómodo pero podrías poner H o HOLA si lo deseas) y bueno creo que si se leyeron los otros tutoriales ya sabrán lo demas :D.

TAREA:
Hacer un contador de clicks. Cuando uno entregue la tarea pongo el siguiente tutorial.

Más eventos:
http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/events/package-detail.html

Pueden preguntar si lo desean de los demás eventos :).





Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[TUTORIAL] AS3 desde 0 [LECCION 1]
« Respuesta #8 en: 29 de Junio de 2010, 04:39:24 am »
Bueno, ahora no tengo acá el flash debido a que ando en Linux, pero creo que el código de la tarea sería algo así:

Código: [Seleccionar]
import flash.display.Sprite;
import flash.events.MouseEvent;

/*
Variable del contador
*/

var clicks = 0;

var miSprite:Sprite = new Sprite;
miSprite.graphics.beginFill(0xAA0000,1);
miSprite.graphics.drawCircle(stage.stageWidth/2,stage.stageHeight/2,50);


miSprite.addEventListener(MouseEvent.CLICK,sumarClick);
function sumarClick(e:MouseEvent)
{
clicks++;
trace("Total de clicks: " + clicks);
}

// Agregamos a la escena

addChild(miSprite);

Bueno, espero que sea así :)
Saludos ^^
- Moderador de PHP


Desconectado nac

  • PHPer@ Fijo
  • ***
  • Mensajes: 139
  • Karma: 2
    • Ver Perfil
Re:[TUTORIAL] AS3 desde 0 [LECCION 1]
« Respuesta #9 en: 29 de Junio de 2010, 04:41:20 am »
Si!, estubo muy bien. Ahora va el siguiente tutorial :), me alegra que porlomenos alguien se interese :D

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[TUTORIAL] AS3 desde 0 [LECCION 1]
« Respuesta #10 en: 30 de Junio de 2010, 13:43:34 pm »
Yo me los leo todos los días  :-[

Saludos

Desconectado nac

  • PHPer@ Fijo
  • ***
  • Mensajes: 139
  • Karma: 2
    • Ver Perfil
Re:[TUTORIAL] AS3 desde 0 [LECCION 1]
« Respuesta #11 en: 01 de Julio de 2010, 04:25:06 am »
Diferencias entre codeo inFrame - inClass

Hola, bueno este "tutorial" va a ser MUY sencillito, ya que son unas funciones básicas y eso. Pues sin más vueltas, vallamos al grano:

(Les recuerdo que no se mucho de Clases, solo se escribirlas y ni tanto, así que perdónenme si mi habla es muy sosa)

Codeo inFrame: Es el código que está dentro de un frame, este codeo sirve para cuando estamos haciendo pequeños scripts sea más rápido y no tengamos que importar nada.
Ventajas:
- Facilidad de escritura, no se necesitan los atributos public, static,private, etc..
- Aquí no se como explicarlo asi que les daré un ejemplo: Si hago un juego puedo ir codeando cada nivel en cada Frame.
- Más accesibilidad, solo aprietas una tecla y ya puedes escribir

Desventajas:
- Sin atributos
- Para volver a hacer algo tendrías que escribir denuevo todo el código.
- Es MUY difícil escribir grandes scripts, no digo que no se pueda sino que es muy complicado.
- Muy difícil de encontrar de entender, si pierdes una línea destruyes todo, o si no la encuentras.
- No puedes compartir con lo demás tu Script y si lo haces muchos te pedirán que si lo puedes pasar a Clase (por experiencia).
- Muy complicado aveces entenderlo, me pasa que cuando estoy haciendo un script en InFrame me pierdo y me desconcentro por tantas líneas sin ordenar.

Bueno y el inClass es inverso a lo que escribí.
De nuevo pido una disculpa por lo básico de este tutorial, se que esperaban super definiciones pero lamentablemente no estudio ni POO ni nada por el estilo y me las arreglo como puedo :).

Suerte y si desean poner sus dudas aquí estoy, y recuerden que lo que hace a un gran maestro es la práctica (:

Desconectado nac

  • PHPer@ Fijo
  • ***
  • Mensajes: 139
  • Karma: 2
    • Ver Perfil
Re:[TUTORIAL] AS3 desde 0 [LECCION 1]
« Respuesta #12 en: 01 de Julio de 2010, 05:21:30 am »
Clases

Hola, en este tutorial veremos lo BÁSICO de las clases. Empecemos.

Bueno en las propiedades (CTRL + F3) vemos la imagen que tenemos a continuacion y escribiremos nuestra clase que guiará todo el flash, yo por costumbre siempre la pongo en la carpeta com y la llamo main, entonces escribiremos com(por la carpeta).main(por el archivo) que quedaría asi: com.main (Cuando guardemos el archivo main.as lo pondremos en una carpeta creada y llamada com). Y luego picaremos el lapicito que está señalado con rojo.


Y nos saldrá un código parecido a esto:
Código: [Seleccionar]
package com { // El paquete y com significa la carpeta donde se encuentra

import flash.display.MovieClip; // Importamos para que se pueda poner de clase madre (Tiene que ser MovieClip)


public class main extends MovieClip { // Bueno esta es la clase y se extiende a un MovieClip


public function main() { // El constructor
}
}

}

Y empezamos con lo bueno :D, crearemos una clase que dibuje según unas Arrays:

1. Creamos un nuevo archivo (CTRL + N y clase de ActionScript 3.0) y lo nombramos Draw, que tambien lo pondremos en la carpeta com, entonces no deverá quedar algo parecido a esto:
Código: [Seleccionar]
package  com{
import flash.display.MovieClip;

public class Draw extends MovieClip {

public function Draw() {


}

}

Y empezaremos definiendo el constructor, ( public function Draw() { ) y le pondremos 2 parametros, que será la figura que a la vez es un Array y el tamaño de la figura, entonces quedará asi: public function Draw(figura:Array,tamFig:Number) { , y después crearemos 2 variables num que será el tamaño de la Array y tam que será el igual a tamFig (esto lo hago para más comodidad al momento de programar y no estar escribiendo tamFig), ya que tenemos esto el código deverá quedar algo así:
Código: [Seleccionar]
package  com{
import flash.display.Sprite;
import flash.display.Stage;
import flash.display.MovieClip;

public class Draw extends MovieClip {

public function Draw(figura:Array,tamFig:Number) {
var num:Number = figura.length;
var tam:Number = tamFig;


}

}

Ahora haremos 2 fors que dividirán la figura por el tamaño exacto.
Código: [Seleccionar]
for(var i = 0; i < num;i++)
{
for(var a = 0; a < num;a++)
{}
}

Ahora viene lo GUENO GUENO,  creamos un cuadrado que será un Sprite y una variable que será el color base (los colores son hexadecimales y se pone el prefijo 0x y el color), yo escoji blanco entonces quedaría asi: v
Código: [Seleccionar]
ar cuadro:Sprite = new Sprite
var micolor = 0xFFFFFF
, luego hacemos un if que le dice a Flash si el resultado de figura es 1 pon otro color (Olvidé decir que sera una variable de 0,1) y quedaría asi:
Código: [Seleccionar]
if(figura[a][i] == 1) {micolor = 0x000000;} (el if debe ir dentro del for de a) y para terminar hacemos el divideo de los cuadrados matemáticamente (que genio me siento) y lo agregamos a la "stage".
Código: [Seleccionar]
var operacion:Number = (tam/num)*2;
var tamCuad:Number = (num/10)*2;
cuadro.graphics.beginFill(micolor,1);
cuadro.graphics.drawRect((i*operacion),(a*operacion),operacion,operacion);
addChild(cuadro);
Entonces todo el código quedaría asi:
Código: [Seleccionar]
package com{
import flash.display.Sprite;
import flash.display.MovieClip;

public class Draw extends MovieClip {

public function Draw(figura:Array,tamFig:Number) {
var num:Number = figura.length;
var tam:Number = tamFig;
for(var i = 0; i < num;i++)
{
for(var a = 0; a < num;a++)
{
var cuadro:Sprite = new Sprite();
var micolor = 0xFFFFFF;
if(figura[a][i] == 1)
{
micolor = 0x000000;
}
var operacion:Number = (tam/num)*2;
var tamCuad:Number = (num/10)*2;
cuadro.graphics.beginFill(micolor,1);
cuadro.graphics.drawRect((i*operacion),(a*operacion),operacion,operacion);
addChild(cuadro);
}
}
}

}

}

Ahora volvamos a la Clase main, donde pondremos lo siguiente dentro del constructor: (Crearemos un dibujo de un corazoncito porque estoy enamorado)
Código: [Seleccionar]
var miFigura:Array = new Array();
miFigura = [
[0,1,0,1,0],
[1,1,1,1,1],
[1,1,1,1,1],
[0,1,1,1,0],
[0,0,1,0,0]
]; // Esta es una multiArray y cada Array (dividido por []) es una línea del dibujo y cada 0 ó 1 es un cuadrito.
var clDraw:Draw = new Draw(miFigura,20) // Asi llamaremos a nuestra clase Draw :)
addChild(clDraw) // Esto agrega a la stage nuestro corazoncito :)

Y ya está :D, ahora si le dan CTRL + ENTER les saldra algo asi:

:), pongan sus dudas.

Aquí termina la lección uno de este tutorial :), ojalá que les haya servido y si quieres ayudar para la 2da lección ve a este tópico: Ayuda :)

------------------------------------------------------------------------------------------
Tarea de regalo: Hagan alguna figurita :D y posteenla :P, yo hice una tortuga :D
Código: [Seleccionar]
miFigura = [
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0],
[0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,1],
[0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,0,0,1,0,1],
[0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1],
[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0],
[0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,0],
[0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0],
[0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0],
[1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0],
[0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],
[0,0,0,1,0,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0],
[0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0],
[0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
];
Que aburrido estoy :P


« Última modificación: 01 de Julio de 2010, 06:10:54 am por nac »