Sí, el código no está dentro de los botones, cada botón tiene un nombre de
instancia y se le asigna un código y unas propiedades dependiendo de los datos
del xml
> //********************************************
> clip.onPress = function() {
> trace("pulsado="+this);
> for (var i in this) {
> if (this[i]<>undefined) {
> trace(i+":"+this[i]);
> //this._x=this._x;
> }
> }
> };
> //********************************************
donde clip es el target del botón leido del xml.
Voy a mandar todo el codigo a ver si alguien tiene paciencia de probarlo:
***LA CLASE****
/*
Carga un xml con la info de la promoción y asigna la acciones necesarias a cada
boton del alzado del edificio
*/
class MenuAlzados {
//***VARIABLES**********************************************************************************************
//movieclip donde se encuentran los botones de roll sobre el alzado
private var destino:MovieClip;
//ruta del xml que contiene los datos de la promoción
private var xmlPath:String;
//***CONSTRUCTOR*******************************************************************************************
public function MenuAlzados(xmlPath:String, destino:MovieClip) {
this.destino = destino;
this.xmlPath = xmlPath;
cargarXML();
}
//***MÉTODOS************************************************************************************************
//***********************************************************************************************************
//recorre cada tipolopgia asignando las acciones necesarias a cada botón
private function asignarAcciones(childFicha) {
//trace("childFicha="+childFicha);
var id = childFicha.nodeName;
//trace("id="+id);
var clip:MovieClip = this.destino[id];
//trace("clip="+clip);
var child = childFicha.firstChild;
while (child<>null) {
clip[child.nodeName] = child.firstChild;
//trace(" "+child.firstChild);
//trace(" "+child.nodeName);
child = child.nextSibling;
}
clip.onRelease = function() {
trace("pulsado="+this);
for (var i in this) {
if (this[i]<>undefined) {
trace(i+":"+this[i]);
//this._x=this._x;
}
}
};
}
//**********************************************************************************************************
//carga el xml y lo recorre asignando las acciones necesarias a cada
botón
private function cargarXML() {
var miXML = new XML();
miXML.obj = this;
//trace("xmlPath="+xmlPath);
miXML.onLoad = function() {
//trace("loaded");
var childFicha = miXML.firstChild;
childFicha = childFicha.firstChild.nextSibling;
while (childFicha<>null) {
//trace("childFicha="+childFicha);
this.obj.asignarAcciones(childFicha);
childFicha = childFicha.nextSibling;
}
};
miXML.load(xmlPath);
}
}
//*****************************************************************************************************************************************
***EL XML (promoExample.xml)***
<promoID>
<idTipo1>
<tipoVivienda>Tipo de la vivienda</tipoVivienda>
<Planta>5</Planta>
<Dormitorios>2</Dormitorios>
<Precio>1000000</Precio>
<idPlano>530</idPlano>
</idTipo1>
<idTipo2>
<tipoVivienda>Tipo de la vivienda</tipoVivienda>
<Planta>5</Planta>
<Dormitorios>2</Dormitorios>
<Precio>1000000</Precio>
<idPlano>530</idPlano>
</idTipo2>
<idTipo3>
<tipoVivienda>Tipo de la vivienda</tipoVivienda>
<Planta>5</Planta>
<Dormitorios>2</Dormitorios>
<Precio>1000000</Precio>
<idPlano>530</idPlano>
</idTipo3>
<idTipo4>
<tipoVivienda>Tipo de la vivienda</tipoVivienda>
<Planta>5</Planta>
<Dormitorios>2</Dormitorios>
<Precio>1000000</Precio>
<idPlano>530</idPlano>
</idTipo4>
</promoID>
//******************************************************************************************************
lo que tiene el archivo swf:
var objAlzado=new MenuAlzados("promoExample.xml",botonesAlzado)
stop();
e incluye un movieClip con nombre de instancia "botonesAlzado" y dentro 4
botones con nombres de instancia:idTipo1, idTipo2, idTipo3, idTipo4
-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
nombre de Chema Roldan
Enviado el: jueves, 24 de mayo de 2007 13:28
Para: Lista dedicada a Actionscript
Asunto: Re: [ASNativos] Problemas con trace
Si yo fuese tu, no pondria el codigo dentro de el boton, si no que lo
pondria en la linea de tiempo, ponle a tu boton un nombre de
instancia, por ejemplo "bt_pulsador", y pon el codigo asi:
bt_pulsador.onPress = function()
{
//Tu codigo
}
Prueba, tambien a cambiar el onPress por onRelease (dentro del codigo
del boton), a veces falla, o es menos optimo.
Un saludito!!
El 24/05/07, Bruno Torres <[EMAIL PROTECTED]> escribió:
> ok gracias por probarlo... se habrá vuelto mi flash tarumba?
> Como no entendia nada de lo que pasaba lo primero que hice fue cerrarlo y
> volver a abrir, pero nada, tendré que reinstalarlo? (retórica)
>
> Es todo muy rato, todo esto esta metido en una clase que carga un xml y a
> partir de los datos del xml asigna acciones y propiedades a distintos
> movieclips y botones.....
> Pues me pasa, si pongo un trace en el onLoad del objeto XML, todo se trace
> bien, ahora si //capo ese trace, ya no van los traces de los botones.
> EXTRAÑÍSIMO!!! Estara 'corrupa' mi clase?
>
> A todo esto, estoy compilando para Flash 8 y AS2
>
>
>
> -----Mensaje original-----
> De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> nombre de Ivan
> Enviado el: jueves, 24 de mayo de 2007 12:26
> Para: Lista dedicada a Actionscript
> Asunto: Re: [ASNativos] Problemas con trace
>
>
> Pues copiado y pegado a mi me funciona bien
> A veces me ha pasado que Flash se vuelve tonto, como que no detecta que
> algun codigo ha cambiado, le pones un trace y todo tira ¿?
> Pero a mi tu ejemplo me funciona bien.
> Un saludo.
>
>
>
> ----- Original Message -----
> From: "Bruno Torres" <[EMAIL PROTECTED]>
> To: "Lista dedicada a Actionscript" <[email protected]>
> Sent: Thursday, May 24, 2007 12:13 PM
> Subject: [ASNativos] Problemas con trace
>
>
> Me pasa una cosa rara con los traces, y seguro q es una tonteria. A ver si
> alguien sabe porque ocurre es:
>
> Asigno este codigo a un botón:
> //********************************************
> clip.onPress = function() {
> trace("pulsado="+this);
> for (var i in this) {
> if (this[i]<>undefined) {
> trace(i+":"+this[i]);
> //this._x=this._x;
> }
> }
> };
> //********************************************
>
>
> y cuando lo ejecuto no traza nada, sin embargo si le activo la linea
> this._x=this._x; todo se traza correctamente.
>
> Bueno esto es el problema simplificado, me pasaban cosas raras con los
> traces que a veces salian a veces no, y activaba un trace durante todo el
> proceso de asignacion de acciones y entonces los traces de las acciones
> salian, luego quitaba el trace anterior y ya no salian mas traces, cosas
> raras q no entiendo. En fin he simplifacdo el problema hasta aquí para ver
> si alguien sabe cual es el misterio.
>
> -----------------------------------------------------
> ASNativos
> www.5dms.com
> subscripciones/desubscripciones
> http://asnativos.5dms.com
> -----------------------------------------------------
>
>
> -----------------------------------------------------
> ASNativos
> www.5dms.com
> subscripciones/desubscripciones
> http://asnativos.5dms.com
> -----------------------------------------------------
>
> -----------------------------------------------------
> ASNativos
> www.5dms.com
> subscripciones/desubscripciones
> http://asnativos.5dms.com
> -----------------------------------------------------
>
-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------
-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------