Waaaaaaa Xavi te quiero!!! muchisimas gracias por la explicacion :-) sobre
OOP ya sabe por que la he trabajado con C++ y PHP pero en el curro tb me
piden AS y yo en esto toy algo verde como puedes ver, esta es la primera vez
que intentaba hacer algo "serio" con AS y me a servido de mucho, el truco de
poder hacer una clase que sea linkada por el MC y esas cositas :) Muchas
gracias por la esplicacion, es inmegorable y muchisimas gracias por tu
tiempo, si necesitas cualquier cosa sobre PHP, GTK+ C o lo que quieras
avisame sin dudarlo te intentare ayudar igual de bien que lo has hecho tu
:-D
----- Original Message -----
From: "Xavi Beumala" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, November 04, 2003 9:40 AM
Subject: RE: [ASNativos] no mueve ningun MC :-(


> Una de las principales premisas del dise�o orientado a objectos es hacer
> que los objectos sean responsables de s� mismos y de todo lo que tienen
> que hacer. En este caso la distribuci�n de responsabilidades vendr�a a
> ser algo as�:
>       - Localizador se encarga de ACEPTAR y EXPULSAR a un item. EXPULSA
> al que hay en su interior (si lo hay) y le da la orden al que quiere
> entrar para que entre. Todo esto se hace en el m�todo setActualItem(),
> al que se le pasa como par�metro el item que debe entrar en el
> localizador
>
> - Un item, cuando recibe la orden, tiene que ser capaz por s�
> solo de saber moverse. Tiene que saber d�nde ir en todo momento. Para
> saber d�nde tiene que ir tenemos los m�todos MOSTRAR() y VOLVER() que
> simplemente establecen los par�metros de origen y destino. Una vez sabe
> d�nde tiene que ir debe moverse, esto se corresponde con el m�todo
> reposition().
>
> F�jate que lo primero que tienes que tener claro cuando quiras dise�ar o
> ampliar una clase es saber en qui�n recae la responsabilidad.
> Reformulando tu pregunta con los conceptos que acabo de introducir
> ser�a: "C�mo hago para que el LOCALIZADOR me EXPULSE el item que hay en
> su interior?". F�jate que en may�sculas est� el objeto responsable
> (LOCALIZADOR) y la acci�n (EXPULSAR). Pues ahora que ya est� analizado y
> la teor�a clara, pasemos a la pr�ctica.
>
> Hemos quedado que el m�todo que nos permit�a EXPULSAR y ACEPTAR un item
> era setActualItem(item) no? Donde item es el que debe entrar. Pero tu no
> quieres que entre ninguno... Pues entonces le pasamos como referencia:
> null.
>
>
> En definitiva, la clase ya estaba preparada para lo que pides ;-)  Una
> posible implementaci�n:
>
>    1.) Crea un mc en el escenario y le dale nombre de instancia. En mi
> caso 'aaa'. As�gnale este codigo en la linea de tiempo:
> <code>
> aaa.onRelease = function() {
> // Supongo que la instancia del escenario
> // de tu localizador se llama myLocalizador
> myLocalizador.setActualItem(null);
> }
> </code>
>
>
> Se podr�a hacer usando el m�todo getActualItem() de localizador y
> despu�s llamar directamente a los m�todos mostrar() y volver(). Pero
> esto se saltar�a una de las premisas que comentaba al principio: nos
> estar�amos pasando por el forro las distribuci�n de responsabilidades.
>
> Un truquillo para empezar con el dise�o orientado a objecto, y por esto
> he puesto las may�sculas en distintos sitios, es asociar los sustantivos
> con clases o objetos y los verbos con m�todos:
>
> - LOCALIZADOR (sustantivo) --> clase Localizador
> - el localizador debe EXPULSAR - ACEPTAR (verbos) --> m�todo
> setActualItem()
> - PUNTO para localizar (sustantivo) --> clase Item
> |--> el 'para localizar' indica que hay una relaci�n con
> LOCALIZADOR. Pero esto ya te lo dejo a ti
> - un punto debe VOLVER a su sitio inicial o ser MOSTRADO en el
> localizador (verbos) --> m�todos volver() y mostrar()
> - un punto se debe poder REUBICAR (verbo) --> m�todo
> reposition()
>
> Con la distribuci�n de responsabilidades en mente ahora no te deber�a
> costar entender el c�digo.
> Por �ltimo, f�jate que una clase no es tan s�lo una agrupaci�n de
> funciones y propiedades entorno un mismo concepto. Si llevas un poquito
> m�s all� el dise�o te resultar� mucho m�s f�cil dise�ar. Una clase es
> una entidad con responsabilidades propias y con capacidad para llevarlas
> a cabo.
>
> Saludos a todos
> Xavi Beumala
> http://www.code4net.com
>
> > -----Mensaje original-----
> > De: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] En nombre de Ivan Rodriguez
> > Enviado el: martes, 04 de noviembre de 2003 9:06
> > Para: [EMAIL PROTECTED]
> > Asunto: Re: [ASNativos] no mueve ningun MC :-(
> >
> >
> > Xavi una cosita ... como haces para saber que solo hay un
> > item activo?�? habria alguna forma mas facil de hacer esto
> > ... es que se me ocurre algo ... hacer algo similar a lo
> > tuyo, hacer un clase y vincularla a los MC de la pelicula, el
> > caso es ... como saber si hay algun elemento en la posicion
> > del localiazdor .... jeje diras ... que pesado este chaval
> > :-( pos si jeje es que no me gusta hacer las cosas por hacer,
> > me gustaria entenderlo bien :P jeje solo el tema de como
> > hacer que vuelva un MC cuando se selecciona otro ... jeje solo es eso
> >
> > Muchas gracias
> >
> > ----- Original Message -----
> > From: "Xavi Beumala" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Tuesday, November 04, 2003 8:42 AM
> > Subject: RE: [ASNativos] no mueve ningun MC :-(
> >
> >
> > > Con distintos nombres de vinculaci�n y tantos object.registerClass
> > > como items tengas:
> > >
> > > Object.registerClass("item1_mc",item);
> > > Object.registerClass("item2_mc",item);
> > > Object.registerClass("item3_mc",item);
> > > Object.registerClass("item4_mc",item);
> > >
> > > Con esto tienes que tener en la biblioteca los mc's con nombre de
> > > vinculaci�n item1_mc, item2_mc, item3_mc y item4_mc
> > >
> > > Saludos a todos
> > > Xavi Beumala
> > > http://www.code4net.com
> > >
> > > > -----Mensaje original-----
> > > > De: [EMAIL PROTECTED]
> > > > [mailto:[EMAIL PROTECTED] En nombre de Ivan
> > Rodriguez
> > > > Enviado el: martes, 04 de noviembre de 2003 8:38
> > > > Para: [EMAIL PROTECTED]
> > > > Asunto: Re: [ASNativos] no mueve ningun MC :-(
> > > >
> > > >
> > > > Una preguntilla ......
> > > >
> > > > Puedo hacer diferentes MC y vincularlos como item_mc?�
> > esque me dice
> > > > que solo puede haber un identificador unico ... entonces
> > como haria
> > > > para que los demas MC heredesaen el onRelease ...
> > haciendolos todos
> > > > a mano?�
> > > >
> > > > ----- Original Message -----
> > > > From: <[EMAIL PROTECTED]>
> > > > To: <[EMAIL PROTECTED]>
> > > > Sent: Monday, November 03, 2003 5:24 PM
> > > > Subject: Re: [ASNativos] no mueve ningun MC :-(
> > > >
> > > >
> > > > > Hola Ivan,
> > > > > ahora mismo voy un poquito justo de tiempo, pero en
> > cuanto tenga
> > > > > un momento te explico detalladamente lo que no entiendas del
> > > > c�digo que
> > > > > te pas�.
> > > > >
> > > > > La verdad que sin ver exactamente el archivo me resulta dif�cil
> > > > > decirte donde puede fallar, pero se me ocurren varias cosas:
> > > > >
> > > > >   1.) Tienes que darle nombre de vinculaci�n al mc que te
> > > > represente
> > > > > al localizador. En la libreria, boton derecho y vinculaci�n.
> > > > > Tienes que ponerle como nombre 'Localizador'
> > > > >
> > > > >   2.) Para lo que son los items idem pero con nombre de
> > > > > vinculaci�n
> > > > 'item'.
> > > > >
> > > > > Esto corresponde con el primer par�metro del
> > object.registerClass.
> > > > >
> > > > > A priori no veo nada m�s...
> > > > >
> > > > > > Estoy aun con las cosas de antes por que no me sale :-(
> > > > > >
> > > > > > Tengo el siguiente codigo:
> > > > > >
> > > > > > function Localizador() {
> > > > > >  this.addProperty("actualItem", this.getActualItem,
> > > > setActualItem);
> > > > > > this.__actualItem__ = null;  this.init.call(this);
> > > > > > }
> > > > > >
> > > > > > Localizador.prototype = new MovieClip();
> > > > > >
> > > > > > Localizador.prototype.init = function() {
> > > > > >  var i = int(this.provincias.length) ;
> > > > > >  while(i--) {
> > > > > >   trace(eval(this.provincias[i]).Localizador = this);
> > > > > >  }
> > > > > > }
> > > > > >
> > > > > > Localizador.prototype.setActualItem = function(item) {
> > > > > > this.__actualItem__.volver.call(this.__actualItem__);
> > > > > >  this.__actualItem__ = item;
> > > > > > this.__actualItem__.mostrar.call(this.__actualItem__);
> > > > > > }
> > > > > >
> > > > > > Localizador.prototype.getActualItem = function() {  return
> > > > > > this.__actualItem__; }
> > > > > >
> > > > > > function item() {
> > > > > >  this.initX = this._x;
> > > > > >  this.initY = this._y;
> > > > > > }
> > > > > >
> > > > > > item.prototype = new MovieClip();
> > > > > >
> > > > > > item.prototype.mostrar = function() {
> > > > > >  delete this.onEnterFrame;
> > > > > >  this.endX = int(this.Localizador._x);
> > > > > >  this.endY = int(this.Lozalizador._y);
> > > > > >  this.dy = -(this._y - this.endY);
> > > > > >  this.dx = -(this._x - this.endX);
> > > > > >  this.y = this._y;
> > > > > >  this.x = this._x;
> > > > > >  this.reposition();
> > > > > > }
> > > > > >
> > > > > > item.prototype.volver = function() {
> > > > > >  delete this.onEnterFrame;
> > > > > >
> > > > > >  this.dy = -(this._y - this.initY);
> > > > > >  this.dx = -(this._x - this.initX);
> > > > > >
> > > > > >  this.y = this._y;
> > > > > >  this.x = this._x;
> > > > > >  this.reposition();
> > > > > > }
> > > > > >
> > > > > > item.prototype.onRelease = function() {
> > > > > > this.Localizador.setActualItem(this);
> > > > > > }
> > > > > >
> > > > > > item.prototype.reposition = function() {  this.onEnterFrame =
> > > > > > function() {
> > > > > >   this._x += (this.x - this._x)/4;
> > > > > >   this._y += (this.x - this._y)/4;
> > > > > >  }
> > > > > > }
> > > > > >
> > > > > > Object.registerClass("localizador", Localizador);
> > > > > > Object.registerClass("item", item);
> > > > > >
> > > > > > Nose muy bien lo que hace, elcaso es que tengo dos
> > frames, en el
> > > > > > primero tengo ese codigo, en el segundo e creado un
> > componente
> > > > > > llamado
> > > > provincias
> > > > > > el cual es un array que contiene los nombres de los
> > moviclips, y
> > > > > > tengo
> > > > un
> > > > > > movieclip creado, el caso es que no hace absolutamente
> > > > nada :-( y no
> > > > tengo
> > > > > > ni la menor idea de por que :-( si alguien pudiera
> > > > explicarme como
> > > > > > hacer que funcione. .... esque me es bastante urgente :-(
> > > > > >
> > > > > > Muchas gracias
> > > > > >
> > > > > >
> > > > > > Iv�n Rodriguez Espada
> > > > > > _________________________
> > > > > > ALAPLAYA.COM
> > > > > > http://www.alaplaya.com
> > > > > > [EMAIL PROTECTED]
> > > > > > <!-------------------------------
> > > > > > Lista ASNativos:
> > > > > > subscripciones/desubscripciones
> > http://www.sidedev.net/asnativos
> > > > > >
> > -------------------------------->
> > > > > >
> > > > >
> > > > > <!-------------------------------
> > > > > Lista ASNativos:
> > > > > subscripciones/desubscripciones http://www.sidedev.net/asnativos
> > > > > -------------------------------->
> > > > >
> > > >
> > > > <!-------------------------------
> > > > Lista ASNativos:
> > > > subscripciones/desubscripciones
> > > > http://www.sidedev.net/asnativos
> > > > -------------------------------->
> > > >
> > >
> > > <!-------------------------------
> > > Lista ASNativos:
> > > subscripciones/desubscripciones
> > > http://www.sidedev.net/asnativos
> > > -------------------------------->
> > >
> >
> > <!-------------------------------
> > Lista ASNativos:
> > subscripciones/desubscripciones
> > http://www.sidedev.net/asnativos
> > -------------------------------->
> >
>
> <!-------------------------------
> Lista ASNativos:
> subscripciones/desubscripciones
> http://www.sidedev.net/asnativos
> -------------------------------->
>

<!-------------------------------
Lista ASNativos:
subscripciones/desubscripciones
http://www.sidedev.net/asnativos
-------------------------------->

Responder a