Comunidad de diseño web y desarrollo en internet online

variables, objetos, constructores y clases...me lo explican?

Citar            
MensajeEscrito el 15 Oct 2006 05:42 pm
Buenas a todos despues de un tiempecito sin aparecer por aqui jeje. Veo que sigue la cosa tan bien como siempre^^ pero bueno me dejo ya de saludos voy al grano.

Estoy intentando meterme en el ActionScript de una forma menos chapuzera de como lo hago ahora, peeero como que hay cosas que no termino de entender, por ejemplo no tengo claro que es y en que se diferencian estos terminos: variable, objeto, constructor y clase.

Si me lo pueden explicar se lo agradeceria porque yo no me termino de enterar, donde mas me lio es en las declaraciones, ejemplo:

Código :

var my_sound:Sound = new Sound();
my_sound.loadSound("http://www.helpexamples.com/flash/sound/song1.mp3", true);


Aqui se crea una variable my_sound de tipo Sound, hasta aqui perfecto...pero lo de new Sound(); ...que es?

Por noctam

Claber

197 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Oct 2006 06:22 pm
El new Sound indica que la variable my_sound sirve para controlar sonidos.
Saludos

Por nestorrente

1010 de clabLevel

10 tutoriales

 

Vigo

firefox
Citar            
MensajeEscrito el 15 Oct 2006 06:41 pm
pero eso no se lo indicas al declarar el tipo de variable con :Sound ?

....creo que si me lo explicais desde el principio me aclarare mejor ^^U

Por noctam

Claber

197 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Oct 2006 07:16 pm
Si eso se traduce literalmente al español quedaría así:

var my_sound:Sound = new Sound();

Nueva variable, "my_sound" es un sonido y es igual a un sonido nuevo.

my_sound.loadSound("http://www.helpexamples.com/flash/sound/song1.mp3", true);

En "my_sound", cargar un sonido de la dirección "http://www.helpexamples.com/flash/sound/song1.mp3".

No estoy del todo seguro de lo que true signifique :oops: pero es lo mismo.


^^ Espero que esta pseudo-traducción te sea útil. :wink:

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

msie
Citar            
MensajeEscrito el 15 Oct 2006 07:31 pm
Gracias Herman por la traducción, pero sigo sin tener claro que es cada cosa.

Tengo claro que var my_sound es una declaracion de una variable que se llama my_sound,

que :Sound indica que la variable es de tipo Sound, es decir, sonido (esto supongo que se indica para que AS sepa cuales son los metodos que se pueden usar con esta variable).

Pero sigo sin tener claro que es new Sound();

Ademas sigo sin tener claro que es objeto,constructor, clase, etc..

Una manita pofavooo :(

Por noctam

Claber

197 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Oct 2006 07:50 pm
Aunque parezca repetir información, el new Sound es necesario.

Creo que lo que vos querés saber es porqué se usa new Sound si ya especificamos anteriormente que la variable es un sonido.

La verdad es que, si ponemos:

var mi_variable:TipoDeVariable;

No estamos diciendo que mi_variable sea un sonido, estamos diciendo que sólo puede ser un sonido. No sé si me explico correctamente.

Probá esto y vas a entender un poco mejor como es esto de declara variables:

Código :

var texto1:String = "Algo";
trace (texto1);
texto = true;


En la ventanita te va a aparecer "algo" por el trace y un aviso de error por intentar asignar un valor booleano en una variable que solo acepta cadenas.

Para finalizar hacé esto (por separado, no en el mismo archivo):

Código :

var texto1:String;
trace (texto1);


Vas a ver que la variable es undefined. El dos puntos y el tipo de variable especifican que valor se espera y no el tipo de variable, es decir, texto1, en este caso no es igual a nada. Es igual a un valor indefinido. La diferencia es enorme.


Espero haber sido claro

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

msie
Citar            
MensajeEscrito el 15 Oct 2006 07:58 pm
Ahhhh....... Me olvidaba de tus otras preguntas.


Clase es una serie de funciones reutilizables que se ubican en un archivo .as y se importan al archivo en el que se las quiera utilizar. No se ubican en el .fla jamás, nunca, never por ningún motivo (espero haber puesto suficiente énfasis en esto :lol: ).

Dentro de la clase, hay una función que se denomina constructora, que tiene el mismo nombre que la clase y que se ejecuta al instanciar la clase (no sé si el término instanciar es el correcto, pero creo que se entiende lo que quiero decir).

Un objeto, es eso, un objeto con propiedades. Yo no los uso más que para los listeners :? .


No sé a qué te referís con "etc.", tendrías que ser más específico. :P

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

msie
Citar            
MensajeEscrito el 15 Oct 2006 10:17 pm
etc = etcetera xD es como si pusieras puntos suspensivos, ya sabes...

jeje pensaba que eso era internacional pero ya veo que no ^^

en fin volviendo al tema, me vais a llamar pesao, pero sigo sin verlo claro

comprendo los ejemplos que me pones. En el primero defines la variable y le das un valor al mismo tiempo, comprendo que no se le pueda dar un valor boleano porque la variable es de tipo cadena, hasta aqui perfecto.

En el segundo ejemplo entiendo tb que de un valos indefinido porque no le hemos dado ningun valor a la variable que hemos definido.

Pero sigo sin comprender porque al definir una variable hace falta el new sound();, que es lo que te indica esto?

de nuevo Herman gracias por volcarte tanto en el tema

Por noctam

Claber

197 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Oct 2006 07:28 pm
Ya sé lo que significa etc. :roll: No soy tan ignorante.
Sólo decía que me interesaba saber a que te referías con etc, porque es una pregunta muy general.


Una pregunta específica es, por ejemplo, para qué demonios sirve new Sound ()

Una respuesta específica es que si no hacés eso, no instanciás el sonido. Entonces, usas un constructor para instanciarlo. En este caso new Sound ().

Ahora bien, te estarás preguntando ¿Por qué quiero instanciar el sonido?

Pues bien, solo se pueden llamar métodos y propiedades de una instancia. Lo que nos da un buen motivo para instanciar el sonido


En español, sería como la diferencia entre hablar de todos los sonidos existentes y hablar de un sonido particular, una instancia del objeto sonido.


Textual de Macromedia.com (si, ya sé que es Adobe.com, pero me quedé en el pasado):


You must use the constructor new Sound to create an instance of the Sound object before calling the methods of the Sound object.


Tadá.....


Espero que hayas entendido.

Si de todos modos no entendés, acá va un consejo:


Tampoco sabés como funcionan los relojes y los seguís usando para ver la hora


Usá el new Sound() aunque no lo entiendas del todo y listo :?

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

msie
Citar            
MensajeEscrito el 16 Oct 2006 08:32 pm
Entonces a ver si lo he entendido:

Código :

var my_sound:Sound = new Sound();
my_sound.loadSound("http://www.helpexamples.com/flash/sound/song1.mp3", true);


Con este codigo lo que hacemos es crear una variable llamada my_sound de tipo Sound y con el constructor new Sound la convertimos en un objeto para que en lugar de asignarle valores le podamos asignar los metodos de la clase Sound que de otra forma no podriamos. Es asi no?

Por noctam

Claber

197 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Oct 2006 09:28 pm

noctam escribió:

Entonces a ver si lo he entendido:

Código :

var my_sound:Sound = new Sound();
my_sound.loadSound("http://www.helpexamples.com/flash/sound/song1.mp3", true);


Con este codigo lo que hacemos es crear una variable llamada my_sound de tipo Sound y con el constructor new Sound la convertimos en un objeto para que en lugar de asignarle valores le podamos asignar ( usar ) los metodos de la clase Sound que de otra forma no podriamos. Es asi no?


los metodos de las clases no las asignan ( solo que tu crearas tu clase ) se usan :wink:

Saludos !

Por alffa

276 de clabLevel



 

Mi casa o mi trabajo...depende (México)

firefox
Citar            
MensajeEscrito el 17 Oct 2006 01:32 pm
Casi....

El concepto lo tenés claro, pero aparte del error que te marcó Alffa, hay otro.

Con el constructor new Sound () no lo convertimos en objeto, lo convertimos en una instancia del objeto Sound.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

msie
Citar            
MensajeEscrito el 17 Oct 2006 10:15 pm
okis, ya entiendo lo que quiere decir cada cosa, parecera una tonteria pero en el momento en el que me atranco en una cosa asi soy incapaz de continuar jeje

Gracias a todos por las aclaraciones

Por noctam

Claber

197 de clabLevel



 

firefox

 

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