Comunidad de diseño web y desarrollo en internet online

objetos

Citar            
MensajeEscrito el 19 Oct 2005 12:19 am
me parece muy interesante el apoyo que dan aqui a personas que estamos aprendiendo, he leido los tutoriales sobre POO y me gustaria saber si me pueden ayudar a entender una cosa:
tengo game = {tileW:30, tileH:30};

si quiero sacar un nuevo objeto a partir de este tendria que hacer: prueba = new game();

pero no me jala, lo que si funciona es prueba = new Object(game);

y ya puedo leer prueba.tileW;

porque? :?

Por bambam

4 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 19 Oct 2005 12:50 am
para construir un objeto en POO debes tener el constructor de dicha clase es decir una funcion dentro de la clase que le de valores a los campos del objeto :wink:

Por Prozac

SWAT Team

1546 de clabLevel

1 tutorial

Genero:Masculino   SWAT

donde se regresa el viento

firefox
Citar            
MensajeEscrito el 19 Oct 2005 03:21 am
Object es un clase de Flash, es una clase dinámica y todas las demas clase de Flash la heredan, si tu quieres crear tu propio objeto debes implementar una clase tuya

ejemplo:

Código :

class miClase{

}


debe estar un archivo aparte .as con el nombre de la clase que contiene, para este caso deberias guardarlo como miClase.as.

ahora para que no te enredes mucho, donde guardaste tu archivo miClase.as debes crear el .fla que usara tu clase y para crear un objeto miClase seria algo asi:

Código :

var miObjeto:miClase = new miClase();



te aconsejo que leas:
Tutorial de programación orientada a objetos en ActionScript 2.0

saludos :)

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 19 Oct 2005 08:58 pm
ah ok ya me quedo claro, entonces yo deberia de hacer lo siguiente:

function game (tileW,tileH){
this.tileW=tileW;
this.tileH=tileH;
}

o de otro modo:

game=function(tileW,tileH){
this.tileW=tileW;
this.tileH=tileH;
}


para que funcione prueba= new game();

Por bambam

4 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 19 Oct 2005 09:13 pm
deberias hacer
class game
{
var Th:Number;
var Tw:Number;

function game(tileW, tileH) // constructor que debe llevar el
{
Th = tileH; // mismo nombre que tu clase
Tw = tileW;
}


}

Por pinocho

78 de clabLevel



Genero:Masculino  

Luna City

firefox
Citar            
MensajeEscrito el 19 Oct 2005 09:13 pm
emmm leiste el tutorial que te recomende :?

Código :

class game{
       //propiedades y/o atributos
       public var tileW:Number;
       public var tileH:Number;

       //constructor de la clase, una funcion
      // llamada igual al nombre de la clase
       function game (tileW:Number, tileH:Number){
             this.tileW = tileW;
             this.tileH = tileH;
       }
       // metodos y eventos de la clase
}


Recuerda que debes guardarlo en un archivo .as con el mismo nombre de la clase, es decir, game.as para este ejemplo

y asi podras hacerlo en tu .fla:

Código :

var miJuego:game = new game(100,100);



Recomendación: acostumbrate a asociarle un tipo de dato(Number, String, etc.) a una variable, te será de mucha ayuda y te evitará posibles dolores de cabeza.

Por último e insisto te recomiendo este tutorial:
Tutorial de programación orientada a objetos en ActionScript 2.0

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 19 Oct 2005 09:41 pm
ya lei el turorial de AS 2 (muchas gracias) ya es un poco diferente a lo que se veia con Flash MX verdad?

Lo que intento es comprender el siguiente codigo:
//aqui se crea un objeto pero sin constructor?
game = {tileW:30, tileH:30};

//luego dentro de ese objeto se agrega un metodo con 2 propiedades?
game.Tile0 = function () { };
game.Tile0.prototype.walkable = true;
game.Tile0.prototype.frame = 1;

//luego se agrega otro metodo con 2 propiedades?
game.Tile1 = function () { };
game.Tile1.prototype.walkable = false;
game.Tile1.prototype.frame = 2;

Por bambam

4 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 19 Oct 2005 09:47 pm
estas trabajando con Flash Mx o Flash Mx 2004?

si es diferente, la programacion orientada a objetos en flash mx (AS 1.0) se simulaba, en AS 2.0 es mas formal.


saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 19 Oct 2005 09:53 pm
estoy trabajando con flash MX

me podrias explicar que esta pasando aqui? te lo agradeceria mucho.

//aqui se crea un objeto con 2 propiedades, pero no tiene constructor?
game = {tileW:30, tileH:30};

//luego dentro de ese objeto se agrega un metodo con 2 propiedades?
game.Tile0 = function () { };
game.Tile0.prototype.walkable = true;
game.Tile0.prototype.frame = 1;

//luego se agrega otro metodo con 2 propiedades?
game.Tile1 = function () { };
game.Tile1.prototype.walkable = false;
game.Tile1.prototype.frame = 2;

Por bambam

4 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 20 Oct 2005 12:45 am
Hola segui leyendo y tratando de entender en Flash MX los objetos:

//********************** PRIMER FORMA************
game = {tileW:30, tileH:30};
//sin necesidad de un constructor
//********************** SEGUNDA FORMA **********
game = new Object();
game.tileW=30;
game.tileH=30;
//constructor object
//********************** TERCER FORMA ***********
function clase() {
this.tileW = 30;
this.tileH = 30;
}
game = new class();
objeto instanciado
//***********************************************
trace(typeof(game));

estoy en lo correcto?

Por bambam

4 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 20 Oct 2005 01:31 pm
Hola, sigo leyendo: es importante para mi entender esto de los objetos ya que estoy tratando de hacer un juego, pero necesito tener estos conceptos claros para poder entender el tutorial.
Me puedes decir si estoy en lo correcto?

*****creamos la "clase" con sus propiedades

function humano() {
this.cCabello = "black";
this.cPiel = "white";
}

*****creamos un objeto a partir de la clase con el constructor "new" ?

jesse = new humano();

*****si quiero agregar una propiedad las 2 opciones son correctas ya que __proto__ es una referencia al metodo constructor "prototype" de la clase que es donde se definen las propiedades y metodos que seran heredados a los nuevos objetos?

1) humano.prototype.cOjos = "green";
2) jesse.__proto__.cOjos = "green";

*****agregamos un metodo a la clase

jesse.__proto__.Hablar = function() {
};
jesse.Hablar.__proto__.lenguaje = "spanish";

***** Creamos nuevo objeto que hereda todas las propiedades, incluso las agregadas ?

bambam = new humano();
trace(bambam.cOjos);
trace(bambam.Hablar.lenguaje);

Salida:

green
spanish

Por bambam

4 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 21 Oct 2005 01:24 am
Agh!

La programación OOP basada en prototipos es horrible; una de las cosas que mas agradeci de Actionscript 2.0

Si quieres una recomendación sincera; pasate a Flash MX 2004 por lo menos, en estas epocas de Flash 8, MX y OOP basada en protos es algo muuuy viejo que no justifica su uso

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

firefox
Citar            
MensajeEscrito el 21 Oct 2005 08:35 pm
O.K. siguiendo tu consejo y el de Maikel voy a empezar a utilizar ActionScript 2.

Tienen razon en que estoy viendo algo obsoleto pero necesito hacer un mapa por el cual desplazarme y me encontre una pagina en donde te enseñan a hacer juegos en flash y a moverte por un mapa dividiendolo en mosaicos (tiles) uds. me podrian recomendar algo para poder hacer lo que necesito?

esta es la liga que me encontre

http://www.tonypa.pri.ee/tbw/tut00.html

Por bambam

4 de clabLevel



Genero:Masculino  

msie

 

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