Despues de pegarme toda la tarde con esto y hacer pruebas solo con lo basico, veo que si antes de comprobar codigo en las clases lo hago en el swf ya no da el error, aunque no cambie ni una coma y ni siquiera guarde los cambios tras comprobar el codigo... @##&&!!!!!!!!!! ... A veces odio este programa...
¿es un bug muy comun? ¿va mejor en el 8 (uso MX2004)?
La pregunta del import sigue vigente ¿tengo que poner import Observador.as en la clase Objeto y viceversa?
Gracias.


----- Original Message ----- From: "Ivan" <[EMAIL PROTECTED]>
To: "Lista ASnativos" <asnativos@5dms.com>
Sent: Sunday, February 05, 2006 7:20 PM
Subject: [ASNativos] Clase Observer e Interface, import


Hola chicos
estoy haciendo un tipico patron Observer con un Observador.as y un Objeto.as
en la clase Observador, tengo un miembro que añade a una matriz los
elementos que quieren ser avisados asi

function avisame(aQuien):Void{
   // Se añade el nuevo objeto a la lista de objetos observables.
   Mobjetos.push(aQuien)
}

mi problema es que quiero decirle el tipo de dato que va a recibir poniendo
el parametro como aQuien:Object
si pongo Object me va bien, pero claro, es muy generico, yo quiero decirle
que va a ser de tipo Objeto, que ya tengo definido en la clase Objeto.as
pero si lo hago asi, no funciona aQuien:Objeto, me dice que existe un error:

Existe un conflicto entre el nombre de esta clase, 'Observador', y el nombre
de otra clase que se ha cargado, 'Observador'.
    class Observador {


sin embargo, si defino una interfaz llamada Iobjeto.as y le digo a la clase
Objeto que la implemente, si que me deja poner

aQuien:Iobjeto

sin ningun problema.
La pregunta es: ¿por que no puedo poner como tipo de dato un objeto, y si
una interfaz que es implementada por dicho objeto? (hace 4 meses me dicen
eso, y le contesto:" Tu por si acaso" :-)))
   .
   .
   .
.... Lo siento si alguien ha perdido tiempo hasta ahora, pero acabo de ver
que no estaba ahi el fallo, pero no quito lo anterior porque viene bien para
mi pregunta de ahora:
en la clase Objeto tenia una referencia a una funcion estatica de la clase
Observador, y al comentar esa linea ya no me falla, asi que ahi esta el
problema.
Ahora bien, yo querria tener una funcion en la clase Observador que pudiese
ser llamada desde los objetos observados. Para ello, cuando el Observador
llama a los objetos, le paso como parametro "this", para que tengan cada uno
una referencia de su Observador y asi poder poner luego (funcion de cada
objeto)

function avisado(miObservador:Observador){
   miObservador.hacerAlgo()
}

Pero cuando defino miObservador como tipo Observador, me vuelve a dar el
mismo fallo de arriba de los conflictos de nombre. :-(
en el libro de Moock veo que define como tipo de datos otras clases sin
ningun problema.
¿como se pueden hacer estas llamadas de una clase a otra sin problemas?
Y ya puestos una pregunta que creo directamente relacionada con esto: el
comando "import" cuando hay que utilizarlo en una clase y para que sirve
exactamente ¿solo para "ahorrarme" la ruta completa de una clase o es
necesario?
Muuuchas gracias.
PD: Siento el ladrillo, pero no lo se poner con menos palabras.


----------------------------------
Lista ASNativos:asnativos@5dms.com
http://www.5dms.com/listas
----------------------------------


----------------------------------
Lista ASNativos:asnativos@5dms.com
http://www.5dms.com/listas
----------------------------------

Responder a