thanks juanma

hace un rato que pedro alpera me ha pasado la soluci�n, muy parecida a
esta. la verdad es q no sab�a que al asignar una funci�n al xml mediante
onLoad estaba asignandosela al xml y por tanto, la funci�n trabajaba
dentro de �l y this. se refiere al xml en si y no al mc que lo contiene

cada dia que pasa flipo... como he estado yo programando hasta ahora
como para encontrarme todas estas cosas en 2 semanas??

thanks a todos :)

marc

-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
En nombre de juanma
Enviado el: s�bado, 09 de agosto de 2003 3:37
Para: [EMAIL PROTECTED]
Asunto: Re: [ASNativos] prototipos y XML


El problema es que estas llamando a un m�todo que pertenece al objeto de
la
clase MovieClip desde
el �mbito interno de un objeto XML que se encuentra anidado en el objeto
MovieClip, por eso no recibe la orden.

Cuando haces :

this.plant.onLoad = this.creaQu;

que es lo mismo que:

this.plant.onLoad = function(){
this.creaQu;
}

estas en realidad llamando a un metodo inexistente de this.plant porque
te
encuentras dentro
de su ambito, no sales del objeto XML.

Como los objetos no poseen un metodo _parent que remita al objeto
superior
donde se encuentran anidados, en este caso el objeto XML se encuentra
dentro
de un objeto MovieClip, lo que se hace es crear una propiedad en el
objeto
anidado de este modo:

this.plant._ref=this;
this.plant.onLoad=function(){
this._ref.creaQu();
}

asi cuando utilizamos dentro del Objeto XML this._ref, estamos
remitiendo al
this del objeto Movieclip
y por lo tanto ya puedes llamar al m�todo tranquilamente.

el c�digo quedar�a:

MovieClip.prototype.creaQu = function() {
trace(this.plant.toString());
trace("ok");
}
MovieClip.prototype.veureText = function() {

this.plant = new XML();
this.plant.ignoreWhite = true;
//con esta linea recogemos la referencia
this.plant._ref=this;
this.plant.onLoad=function(){
this._ref.creaQu();
}
this.plant.load("rss.xml");

}

veureText();





----- Original Message -----
From: "Marc, de fumarmata.com" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, August 09, 2003 2:03 AM
Subject: [ASNativos] prototipos y XML


hola, tengo este par de prototipos (sip, simplificados):

MovieClip.prototype.creaQu = function() {
trace(this.plant.toString());
trace("ok");
};
MovieClip.prototype.veureText = function() {
this.plant = new XML();
this.plant.ignoreWhite = true;
this.plant.onLoad = this.creaQu;
this.plant.load("plantillas/veureText.xml");
};
veureText();


el prototipo "veureText" carga un peque�o doc XML, y "creaQu" es el
proto al que llama cuando el XML se ha cargado
pues bien, parece ser que llama a "creaQu" antes de que se haya cargado
el XML (o antes de que est� disponible o alguna cosa as�) ya que el
trace de "creaQu" devuelve un undefined

sin embargo, si quito todos los "this." de dentro de los protos, todo
funciona perfectamente. si llamo a creaQu unos fotogramas despu�s,
tambi�n encuentra el objeto XML

supongo que hay algun principio vital de flash que habr�a que aplicar
aqu� y no conozco... pero habr� cargado mil xml's distintos en mil
proyectos distintos y nunca me hab�a encontrado con esto

�ltimamente flash me da demasiadas sorpresas :/

thanks

marc

<!-------------------------------
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