Comunidad de diseño web y desarrollo en internet online

Botones + Descripcion en XML

Citar            
MensajeEscrito el 05 Ene 2011 12:27 pm
Hola amigos, tengo el siguiente problema:

- Quiero crear un selector dinamico de opciones en flash, el cual, al pulsar una de las opciones, me ponga todas las caracteristicas en una especie de cartel situado en la parte inferior.

En plan extracutre sería algo tal que así:

OBJETO A OBJETO B OBJETO C OBJETO D
______________________________________________________________

DATO1
DATO2
DATO3
DATO4
______________________________________________________________

El caso es que todo esto se genera a partir de un doc XML el cual crea hijos con este formato:
<packs>
<pack nombre="basico" descripcion="# Pack pensado para el lanzamiento de un nuevo producto o evento" caracteristicas="# Portada # Hasta 4 secciones # Formulario de contacto # Hasta 8 fotografías por sección # Sin limite de texto " precio="250" mantenimiento="10"/>
</packs>


Bueno, pues yo en mi script he logrado generar con un objeto tipo XML dentro de un bucle for, cada OBJETO seleccionable, pero aqui tengo el problema, ya que cuando haga click en uno de ellos quiero enviarle los valores al objeto que muestra datos y siempre me da mal resultado:

_root["objeto"+i].onPress=function(){
_root["muestraDatos"].dato1=objetoXML.firstChild.childNodes[i].dato1;
}

Siempre me coje para la i en el onPress el valor 4. He de decir que en realidad son 4 los OBJETOS que se crean porque en mi codigo tengo 4 hijos en el XML, pero en cada iteración me debería de poner el valor que tiene i en ese momento, y sin embargo me pilla siempre el valor 4.

Este es mi codigo original:

var opcionesXML:XML = new XML();
opcionesXML.ignoreWhite = true;
opcionesXML.onLoad = function (sucess:Boolean) {
if (sucess) {
var opciones:Array = this.firstChild.childNodes;
for(i = 0; i < opciones.length; i++) {
_root.attachMovie("paquete", "pack"+i, _root.getNextHighestDepth());
_root["pack"+i]._x =(i * 125);
_root["pack"+i]._y = 5;
var letras:String = opciones[i].attributes.nombre;
var letrasArray:Array = letras.split("");
_root["pack"+i].naranja=letrasArray[0].toUpperCase();
_root["pack"+i].blanca=letrasArray[1];
_root["pack"+i].estampa=letras;
//Todo eso era para rellenar el formato de los objetos, aqui empieza el tema:

_root["pack"+i].onRollOver= function(){
this.gotoAndPlay(27);
}
_root["pack"+i].onRollOut= function(){
this.gotoAndPlay(42);
}
//El onRollOver y el onRollOut los hace guay, pero este es el que no rula:

_root["pack"+i].onPress=function(){
_root["cartel"].descripcion=opciones[i].attributes.descripcion;
}
}

}
else {
trace("Error al Leer archivo XML");
}
}
opcionesXML.load("xml_gen.php");


Por si cabe alguna duda, en el escenario ya tengo el movieclip cartel con sus propiedades y todo marcadas.
Perdonen por el tostonazo y gracias de antemano !!!!

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 05 Ene 2011 03:33 pm
En realidad el indice se pierde, tienes que copiarlo al timeline del objeto, sería:

Código ActionScript :

_root["pack"+i].nr = i
_root["pack"+i].onPress=function(){
  _root["cartel"].descripcion=opciones[this.nr].attributes.descripcion;
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos



Ultima edición por solisarg el 06 Ene 2011 11:37 am, editado 1 vez

Argentina

firefox
Citar            
MensajeEscrito el 06 Ene 2011 03:26 am
Muchisimas gracias, era tal y como decias, pero fijate que en tu post no pusiste el guion bajo al "_root" en las 2 primeras lineas, lo digo por si a alguien le sucede lo mismo que lo ponga bien.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox

 

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